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_prod___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_prod::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
;
32 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
33 fra
.me
.file
= LOCATE_syntax___typing
;
35 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___visit
;
38 fra
.me
.nitni_local_ref_head
= NULL
;
39 fra
.me
.REG
[0] = NIT_NULL
;
40 fra
.me
.REG
[1] = NIT_NULL
;
43 /* syntax/typing.nit:43 */
44 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
45 if (UNTAG_Bool(REGB0
)) {
47 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
48 if (UNTAG_Bool(REGB1
)) {
52 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
56 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
57 if (UNTAG_Bool(REGB0
)) {
58 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
59 if (UNTAG_Bool(REGB0
)) {
60 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 43);
62 CALL_syntax___typing___ANode___accept_typing(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
64 stack_frame_head
= fra
.me
.prev
;
67 static const char LOCATE_syntax___typing___TypingVisitor___scope_ctx
[] = "typing::TypingVisitor::scope_ctx";
68 val_t
syntax___typing___TypingVisitor___scope_ctx(val_t p0
){
69 struct {struct stack_frame_t me
;} fra
;
72 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
73 fra
.me
.file
= LOCATE_syntax___typing
;
75 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___scope_ctx
;
78 fra
.me
.nitni_local_ref_head
= NULL
;
79 fra
.me
.REG
[0] = NIT_NULL
;
81 /* syntax/typing.nit:46 */
82 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____scope_ctx(fra
.me
.REG
[0])!=NIT_NULL
);
83 if (UNTAG_Bool(REGB0
)) {
85 nit_abort("Uninitialized attribute %s", "_scope_ctx", LOCATE_syntax___typing
, 46);
87 fra
.me
.REG
[0] = ATTR_syntax___typing___TypingVisitor____scope_ctx(fra
.me
.REG
[0]);
88 stack_frame_head
= fra
.me
.prev
;
91 static const char LOCATE_syntax___typing___TypingVisitor___flow_ctx
[] = "typing::TypingVisitor::flow_ctx";
92 val_t
syntax___typing___TypingVisitor___flow_ctx(val_t p0
){
93 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
96 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
97 fra
.me
.file
= LOCATE_syntax___typing
;
99 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___flow_ctx
;
100 fra
.me
.has_broke
= 0;
102 fra
.me
.nitni_local_ref_head
= NULL
;
103 fra
.me
.REG
[0] = NIT_NULL
;
104 fra
.me
.REG
[1] = NIT_NULL
;
106 /* syntax/typing.nit:49 */
107 fra
.me
.REG
[1] = fra
.me
.REG
[0];
108 /* syntax/typing.nit:50 */
109 fra
.me
.REG
[1] = ATTR_syntax___typing___TypingVisitor____flow_ctx(fra
.me
.REG
[1]);
110 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
111 if (UNTAG_Bool(REGB0
)) {
113 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 50);
117 stack_frame_head
= fra
.me
.prev
;
118 return fra
.me
.REG
[1];
120 static const char LOCATE_syntax___typing___TypingVisitor___flow_ctx__eq
[] = "typing::TypingVisitor::flow_ctx=";
121 void syntax___typing___TypingVisitor___flow_ctx__eq(val_t p0
, val_t p1
){
122 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} 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___flow_ctx__eq
;
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
;
135 /* syntax/typing.nit:51 */
136 ATTR_syntax___typing___TypingVisitor____flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
137 stack_frame_head
= fra
.me
.prev
;
140 static const char LOCATE_syntax___typing___TypingVisitor___mark_is_set
[] = "typing::TypingVisitor::mark_is_set";
141 void syntax___typing___TypingVisitor___mark_is_set(val_t p0
, val_t p1
){
142 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
145 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
146 fra
.me
.file
= LOCATE_syntax___typing
;
148 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___mark_is_set
;
149 fra
.me
.has_broke
= 0;
151 fra
.me
.nitni_local_ref_head
= NULL
;
152 fra
.me
.REG
[0] = NIT_NULL
;
153 fra
.me
.REG
[1] = NIT_NULL
;
154 fra
.me
.REG
[2] = NIT_NULL
;
157 /* syntax/typing.nit:56 */
158 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
159 REGB0
= CALL_syntax___flow___FlowContext___is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
160 if (UNTAG_Bool(REGB0
)) {
163 /* syntax/typing.nit:57 */
164 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
165 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___sub_setvariable(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
166 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
168 stack_frame_head
= fra
.me
.prev
;
171 static const char LOCATE_syntax___typing___TypingVisitor___mark_unreash
[] = "typing::TypingVisitor::mark_unreash";
172 void syntax___typing___TypingVisitor___mark_unreash(val_t p0
, val_t p1
){
173 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
175 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
176 fra
.me
.file
= LOCATE_syntax___typing
;
178 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___mark_unreash
;
179 fra
.me
.has_broke
= 0;
181 fra
.me
.nitni_local_ref_head
= NULL
;
182 fra
.me
.REG
[0] = NIT_NULL
;
183 fra
.me
.REG
[1] = NIT_NULL
;
184 fra
.me
.REG
[2] = NIT_NULL
;
187 /* syntax/typing.nit:63 */
188 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
189 fra
.me
.REG
[1] = CALL_syntax___flow___FlowContext___sub_unreash(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
190 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
191 stack_frame_head
= fra
.me
.prev
;
194 static const char LOCATE_syntax___typing___TypingVisitor___enter_visit_block
[] = "typing::TypingVisitor::enter_visit_block";
195 void syntax___typing___TypingVisitor___enter_visit_block(val_t p0
, val_t p1
){
196 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
200 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
201 fra
.me
.file
= LOCATE_syntax___typing
;
203 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___enter_visit_block
;
204 fra
.me
.has_broke
= 0;
206 fra
.me
.nitni_local_ref_head
= NULL
;
207 fra
.me
.REG
[0] = NIT_NULL
;
208 fra
.me
.REG
[1] = NIT_NULL
;
209 fra
.me
.REG
[2] = NIT_NULL
;
212 /* syntax/typing.nit:69 */
213 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
214 if (UNTAG_Bool(REGB0
)) {
216 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
217 if (UNTAG_Bool(REGB1
)) {
221 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
225 if (UNTAG_Bool(REGB0
)) {
228 /* syntax/typing.nit:70 */
229 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
230 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
231 /* syntax/typing.nit:71 */
232 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
233 /* syntax/typing.nit:72 */
234 fra
.me
.REG
[0] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
235 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
237 stack_frame_head
= fra
.me
.prev
;
240 static const char LOCATE_syntax___typing___TypingVisitor___base_flow_ctx
[] = "typing::TypingVisitor::base_flow_ctx";
241 val_t
syntax___typing___TypingVisitor___base_flow_ctx(val_t p0
){
242 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
245 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
246 fra
.me
.file
= LOCATE_syntax___typing
;
248 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___base_flow_ctx
;
249 fra
.me
.has_broke
= 0;
251 fra
.me
.nitni_local_ref_head
= NULL
;
252 fra
.me
.REG
[0] = NIT_NULL
;
253 fra
.me
.REG
[1] = NIT_NULL
;
255 /* syntax/typing.nit:75 */
256 fra
.me
.REG
[1] = fra
.me
.REG
[0];
257 /* syntax/typing.nit:76 */
258 fra
.me
.REG
[1] = ATTR_syntax___typing___TypingVisitor____base_flow_ctx(fra
.me
.REG
[1]);
259 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
260 if (UNTAG_Bool(REGB0
)) {
262 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 76);
266 stack_frame_head
= fra
.me
.prev
;
267 return fra
.me
.REG
[1];
269 static const char LOCATE_syntax___typing___TypingVisitor___base_flow_ctx__eq
[] = "typing::TypingVisitor::base_flow_ctx=";
270 void syntax___typing___TypingVisitor___base_flow_ctx__eq(val_t p0
, val_t p1
){
271 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___base_flow_ctx__eq
;
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
;
284 /* syntax/typing.nit:77 */
285 ATTR_syntax___typing___TypingVisitor____base_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
286 stack_frame_head
= fra
.me
.prev
;
289 static const char LOCATE_syntax___typing___TypingVisitor___self_var
[] = "typing::TypingVisitor::self_var";
290 val_t
syntax___typing___TypingVisitor___self_var(val_t p0
){
291 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
294 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
295 fra
.me
.file
= LOCATE_syntax___typing
;
297 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___self_var
;
298 fra
.me
.has_broke
= 0;
300 fra
.me
.nitni_local_ref_head
= NULL
;
301 fra
.me
.REG
[0] = NIT_NULL
;
302 fra
.me
.REG
[1] = NIT_NULL
;
304 /* syntax/typing.nit:79 */
305 fra
.me
.REG
[1] = fra
.me
.REG
[0];
306 /* syntax/typing.nit:80 */
307 fra
.me
.REG
[1] = ATTR_syntax___typing___TypingVisitor____self_var(fra
.me
.REG
[1]);
308 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
309 if (UNTAG_Bool(REGB0
)) {
311 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 80);
315 stack_frame_head
= fra
.me
.prev
;
316 return fra
.me
.REG
[1];
318 static const char LOCATE_syntax___typing___TypingVisitor___self_var__eq
[] = "typing::TypingVisitor::self_var=";
319 void syntax___typing___TypingVisitor___self_var__eq(val_t p0
, val_t p1
){
320 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
322 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
323 fra
.me
.file
= LOCATE_syntax___typing
;
325 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___self_var__eq
;
326 fra
.me
.has_broke
= 0;
328 fra
.me
.nitni_local_ref_head
= NULL
;
329 fra
.me
.REG
[0] = NIT_NULL
;
330 fra
.me
.REG
[1] = NIT_NULL
;
333 /* syntax/typing.nit:81 */
334 ATTR_syntax___typing___TypingVisitor____self_var(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
335 stack_frame_head
= fra
.me
.prev
;
338 static const char LOCATE_syntax___typing___TypingVisitor___top_block
[] = "typing::TypingVisitor::top_block";
339 val_t
syntax___typing___TypingVisitor___top_block(val_t p0
){
340 struct {struct stack_frame_t me
;} fra
;
342 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
343 fra
.me
.file
= LOCATE_syntax___typing
;
345 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___top_block
;
346 fra
.me
.has_broke
= 0;
348 fra
.me
.nitni_local_ref_head
= NULL
;
349 fra
.me
.REG
[0] = NIT_NULL
;
351 /* syntax/typing.nit:83 */
352 fra
.me
.REG
[0] = ATTR_syntax___typing___TypingVisitor____top_block(fra
.me
.REG
[0]);
353 stack_frame_head
= fra
.me
.prev
;
354 return fra
.me
.REG
[0];
356 static const char LOCATE_syntax___typing___TypingVisitor___top_block__eq
[] = "typing::TypingVisitor::top_block=";
357 void syntax___typing___TypingVisitor___top_block__eq(val_t p0
, val_t p1
){
358 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
360 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
361 fra
.me
.file
= LOCATE_syntax___typing
;
363 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___top_block__eq
;
364 fra
.me
.has_broke
= 0;
366 fra
.me
.nitni_local_ref_head
= NULL
;
367 fra
.me
.REG
[0] = NIT_NULL
;
368 fra
.me
.REG
[1] = NIT_NULL
;
371 /* syntax/typing.nit:83 */
372 ATTR_syntax___typing___TypingVisitor____top_block(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
373 stack_frame_head
= fra
.me
.prev
;
376 static const char LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls
[] = "typing::TypingVisitor::explicit_super_init_calls";
377 val_t
syntax___typing___TypingVisitor___explicit_super_init_calls(val_t p0
){
378 struct {struct stack_frame_t me
;} fra
;
380 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
381 fra
.me
.file
= LOCATE_syntax___typing
;
383 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls
;
384 fra
.me
.has_broke
= 0;
386 fra
.me
.nitni_local_ref_head
= NULL
;
387 fra
.me
.REG
[0] = NIT_NULL
;
389 /* syntax/typing.nit:86 */
390 fra
.me
.REG
[0] = ATTR_syntax___typing___TypingVisitor____explicit_super_init_calls(fra
.me
.REG
[0]);
391 stack_frame_head
= fra
.me
.prev
;
392 return fra
.me
.REG
[0];
394 static const char LOCATE_syntax___typing___TypingVisitor___explicit_super_init_calls__eq
[] = "typing::TypingVisitor::explicit_super_init_calls=";
395 void syntax___typing___TypingVisitor___explicit_super_init_calls__eq(val_t p0
, val_t p1
){
396 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} 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_super_init_calls__eq
;
402 fra
.me
.has_broke
= 0;
404 fra
.me
.nitni_local_ref_head
= NULL
;
405 fra
.me
.REG
[0] = NIT_NULL
;
406 fra
.me
.REG
[1] = NIT_NULL
;
409 /* syntax/typing.nit:86 */
410 ATTR_syntax___typing___TypingVisitor____explicit_super_init_calls(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
411 stack_frame_head
= fra
.me
.prev
;
414 static const char LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call
[] = "typing::TypingVisitor::explicit_other_init_call";
415 val_t
syntax___typing___TypingVisitor___explicit_other_init_call(val_t p0
){
416 struct {struct stack_frame_t me
;} fra
;
419 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
420 fra
.me
.file
= LOCATE_syntax___typing
;
422 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call
;
423 fra
.me
.has_broke
= 0;
425 fra
.me
.nitni_local_ref_head
= NULL
;
426 fra
.me
.REG
[0] = NIT_NULL
;
428 /* syntax/typing.nit:89 */
429 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0])!=NIT_NULL
);
430 if (UNTAG_Bool(REGB0
)) {
432 nit_abort("Uninitialized attribute %s", "_explicit_other_init_call", LOCATE_syntax___typing
, 89);
434 REGB0
= ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0]);
435 stack_frame_head
= fra
.me
.prev
;
438 static const char LOCATE_syntax___typing___TypingVisitor___explicit_other_init_call__eq
[] = "typing::TypingVisitor::explicit_other_init_call=";
439 void syntax___typing___TypingVisitor___explicit_other_init_call__eq(val_t p0
, val_t p1
){
440 struct {struct stack_frame_t me
;} 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___explicit_other_init_call__eq
;
447 fra
.me
.has_broke
= 0;
449 fra
.me
.nitni_local_ref_head
= NULL
;
450 fra
.me
.REG
[0] = NIT_NULL
;
453 /* syntax/typing.nit:89 */
454 ATTR_syntax___typing___TypingVisitor____explicit_other_init_call(fra
.me
.REG
[0]) = REGB0
;
455 stack_frame_head
= fra
.me
.prev
;
458 static const char LOCATE_syntax___typing___TypingVisitor___use_if_true_flow_ctx
[] = "typing::TypingVisitor::use_if_true_flow_ctx";
459 void syntax___typing___TypingVisitor___use_if_true_flow_ctx(val_t p0
, val_t p1
){
460 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
464 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
465 fra
.me
.file
= LOCATE_syntax___typing
;
467 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___use_if_true_flow_ctx
;
468 fra
.me
.has_broke
= 0;
470 fra
.me
.nitni_local_ref_head
= NULL
;
471 fra
.me
.REG
[0] = NIT_NULL
;
472 fra
.me
.REG
[1] = NIT_NULL
;
475 /* syntax/typing.nit:95 */
476 fra
.me
.REG
[1] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
477 /* syntax/typing.nit:96 */
478 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
479 if (UNTAG_Bool(REGB0
)) {
481 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
482 if (UNTAG_Bool(REGB1
)) {
486 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
490 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
491 if (UNTAG_Bool(REGB0
)) {
492 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
494 stack_frame_head
= fra
.me
.prev
;
497 static const char LOCATE_syntax___typing___TypingVisitor___use_if_false_flow_ctx
[] = "typing::TypingVisitor::use_if_false_flow_ctx";
498 void syntax___typing___TypingVisitor___use_if_false_flow_ctx(val_t p0
, val_t p1
){
499 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
503 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
504 fra
.me
.file
= LOCATE_syntax___typing
;
506 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___use_if_false_flow_ctx
;
507 fra
.me
.has_broke
= 0;
509 fra
.me
.nitni_local_ref_head
= NULL
;
510 fra
.me
.REG
[0] = NIT_NULL
;
511 fra
.me
.REG
[1] = NIT_NULL
;
514 /* syntax/typing.nit:102 */
515 fra
.me
.REG
[1] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
516 /* syntax/typing.nit:103 */
517 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
518 if (UNTAG_Bool(REGB0
)) {
520 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
521 if (UNTAG_Bool(REGB1
)) {
525 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
529 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
530 if (UNTAG_Bool(REGB0
)) {
531 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
533 stack_frame_head
= fra
.me
.prev
;
536 static const char LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition
[] = "typing::TypingVisitor::is_default_closure_definition";
537 val_t
syntax___typing___TypingVisitor___is_default_closure_definition(val_t p0
){
538 struct {struct stack_frame_t me
;} fra
;
541 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
542 fra
.me
.file
= LOCATE_syntax___typing
;
544 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition
;
545 fra
.me
.has_broke
= 0;
547 fra
.me
.nitni_local_ref_head
= NULL
;
548 fra
.me
.REG
[0] = NIT_NULL
;
550 /* syntax/typing.nit:106 */
551 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0])!=NIT_NULL
);
552 if (UNTAG_Bool(REGB0
)) {
554 nit_abort("Uninitialized attribute %s", "_is_default_closure_definition", LOCATE_syntax___typing
, 106);
556 REGB0
= ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0]);
557 stack_frame_head
= fra
.me
.prev
;
560 static const char LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition__eq
[] = "typing::TypingVisitor::is_default_closure_definition=";
561 void syntax___typing___TypingVisitor___is_default_closure_definition__eq(val_t p0
, val_t p1
){
562 struct {struct stack_frame_t me
;} fra
;
565 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
566 fra
.me
.file
= LOCATE_syntax___typing
;
568 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___is_default_closure_definition__eq
;
569 fra
.me
.has_broke
= 0;
571 fra
.me
.nitni_local_ref_head
= NULL
;
572 fra
.me
.REG
[0] = NIT_NULL
;
575 /* syntax/typing.nit:106 */
576 ATTR_syntax___typing___TypingVisitor____is_default_closure_definition(fra
.me
.REG
[0]) = REGB0
;
577 stack_frame_head
= fra
.me
.prev
;
580 static const char LOCATE_syntax___typing___TypingVisitor___once_count
[] = "typing::TypingVisitor::once_count";
581 val_t
syntax___typing___TypingVisitor___once_count(val_t p0
){
582 struct {struct stack_frame_t me
;} fra
;
585 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
586 fra
.me
.file
= LOCATE_syntax___typing
;
588 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___once_count
;
589 fra
.me
.has_broke
= 0;
591 fra
.me
.nitni_local_ref_head
= NULL
;
592 fra
.me
.REG
[0] = NIT_NULL
;
594 /* syntax/typing.nit:109 */
595 REGB0
= TAG_Bool(ATTR_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0])!=NIT_NULL
);
596 if (UNTAG_Bool(REGB0
)) {
598 nit_abort("Uninitialized attribute %s", "_once_count", LOCATE_syntax___typing
, 109);
600 REGB0
= ATTR_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0]);
601 stack_frame_head
= fra
.me
.prev
;
604 static const char LOCATE_syntax___typing___TypingVisitor___once_count__eq
[] = "typing::TypingVisitor::once_count=";
605 void syntax___typing___TypingVisitor___once_count__eq(val_t p0
, val_t p1
){
606 struct {struct stack_frame_t me
;} fra
;
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___once_count__eq
;
613 fra
.me
.has_broke
= 0;
615 fra
.me
.nitni_local_ref_head
= NULL
;
616 fra
.me
.REG
[0] = NIT_NULL
;
619 /* syntax/typing.nit:109 */
620 ATTR_syntax___typing___TypingVisitor____once_count(fra
.me
.REG
[0]) = REGB0
;
621 stack_frame_head
= fra
.me
.prev
;
624 static const char LOCATE_syntax___typing___TypingVisitor___init
[] = "typing::TypingVisitor::init";
625 void syntax___typing___TypingVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
626 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___typing___TypingVisitor
].i
;
627 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
629 if (init_table
[itpos0
]) return;
630 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
631 fra
.me
.file
= LOCATE_syntax___typing
;
633 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___init
;
634 fra
.me
.has_broke
= 0;
636 fra
.me
.nitni_local_ref_head
= NULL
;
637 fra
.me
.REG
[0] = NIT_NULL
;
638 fra
.me
.REG
[1] = NIT_NULL
;
639 fra
.me
.REG
[2] = NIT_NULL
;
643 /* syntax/typing.nit:112 */
644 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
645 stack_frame_head
= fra
.me
.prev
;
646 init_table
[itpos0
] = 1;
649 static const char LOCATE_syntax___typing___TypingVisitor___get_default_constructor_for
[] = "typing::TypingVisitor::get_default_constructor_for";
650 val_t
syntax___typing___TypingVisitor___get_default_constructor_for(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
651 struct {struct stack_frame_t me
; val_t MORE_REG
[11];} fra
;
656 static val_t once_value_6
; /* Once value */
657 static val_t once_value_7
; /* Once value */
658 static val_t once_value_8
; /* Once value */
659 static val_t once_value_10
; /* Once value */
660 static val_t once_value_11
; /* Once value */
661 static val_t once_value_12
; /* Once value */
662 static val_t once_value_13
; /* Once value */
663 static val_t once_value_14
; /* Once value */
664 static val_t once_value_15
; /* Once value */
665 static val_t once_value_16
; /* Once value */
666 static val_t once_value_18
; /* Once value */
667 static val_t once_value_19
; /* Once value */
668 static val_t once_value_20
; /* Once value */
669 static val_t once_value_21
; /* Once value */
670 static val_t once_value_22
; /* Once value */
671 static val_t once_value_23
; /* Once value */
672 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
673 fra
.me
.file
= LOCATE_syntax___typing
;
675 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___get_default_constructor_for
;
676 fra
.me
.has_broke
= 0;
677 fra
.me
.REG_size
= 12;
678 fra
.me
.nitni_local_ref_head
= NULL
;
679 fra
.me
.REG
[0] = NIT_NULL
;
680 fra
.me
.REG
[1] = NIT_NULL
;
681 fra
.me
.REG
[2] = NIT_NULL
;
682 fra
.me
.REG
[3] = NIT_NULL
;
683 fra
.me
.REG
[4] = NIT_NULL
;
684 fra
.me
.REG
[5] = NIT_NULL
;
685 fra
.me
.REG
[6] = NIT_NULL
;
686 fra
.me
.REG
[7] = NIT_NULL
;
687 fra
.me
.REG
[8] = NIT_NULL
;
688 fra
.me
.REG
[9] = NIT_NULL
;
689 fra
.me
.REG
[10] = NIT_NULL
;
690 fra
.me
.REG
[11] = NIT_NULL
;
695 /* syntax/typing.nit:114 */
696 fra
.me
.REG
[4] = fra
.me
.REG
[0];
697 /* syntax/typing.nit:116 */
698 fra
.me
.REG
[5] = fra
.me
.REG
[4];
699 /* syntax/typing.nit:119 */
700 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___init();
701 /* syntax/typing.nit:120 */
702 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___init();
703 /* syntax/typing.nit:121 */
704 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
705 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
706 if (UNTAG_Bool(REGB0
)) {
707 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 121);
709 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
710 fra
.me
.REG
[8] = REGB0
;
711 /* syntax/typing.nit:122 */
712 fra
.me
.REG
[9] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
713 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
));
714 switch ((&(fra
.me
))->has_broke
) {
716 case 1: (&(fra
.me
))->has_broke
= 0; goto label5
;
718 /* ../lib/standard/collection/array.nit:24 */
719 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
720 if (UNTAG_Bool(REGB0
)) {
722 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
724 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
725 /* syntax/typing.nit:141 */
727 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
728 if (UNTAG_Bool(REGB2
)) {
730 /* ../lib/standard/kernel.nit:230 */
731 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
732 /* syntax/typing.nit:141 */
735 if (UNTAG_Bool(REGB2
)) {
736 /* syntax/typing.nit:142 */
737 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
738 fra
.me
.REG
[9] = fra
.me
.REG
[3];
741 /* ../lib/standard/collection/array.nit:24 */
742 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
743 if (UNTAG_Bool(REGB2
)) {
745 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
747 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
748 /* syntax/typing.nit:143 */
750 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
751 if (UNTAG_Bool(REGB0
)) {
753 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
755 /* ../lib/standard/kernel.nit:237 */
756 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB1
));
757 /* syntax/typing.nit:143 */
758 if (UNTAG_Bool(REGB1
)) {
759 /* syntax/typing.nit:144 */
760 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
761 /* ../lib/standard/collection/array.nit:269 */
763 /* ../lib/standard/collection/array.nit:270 */
764 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
765 if (UNTAG_Bool(REGB2
)) {
767 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
769 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
770 /* ../lib/standard/collection/array.nit:271 */
771 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
772 /* ../lib/standard/collection/array.nit:272 */
774 /* ../lib/standard/collection/array.nit:24 */
775 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
776 if (UNTAG_Bool(REGB2
)) {
778 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
780 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
781 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
782 if (UNTAG_Bool(REGB0
)) {
784 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
786 /* ../lib/standard/kernel.nit:235 */
787 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
788 /* ../lib/standard/collection/array.nit:272 */
789 if (UNTAG_Bool(REGB2
)) {
790 /* ../lib/standard/collection/array.nit:273 */
791 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
792 if (UNTAG_Bool(REGB2
)) {
793 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
795 /* ../lib/standard/collection/array.nit:724 */
796 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
797 /* syntax/typing.nit:146 */
799 fra
.me
.REG
[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
801 fra
.me
.REG
[11] = BOX_NativeString("");
803 fra
.me
.REG
[11] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[11], REGB2
);
804 once_value_6
= fra
.me
.REG
[11];
805 register_static_object(&once_value_6
);
806 } else fra
.me
.REG
[11] = once_value_6
;
807 fra
.me
.REG
[11] = fra
.me
.REG
[11];
808 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[11]);
809 fra
.me
.REG
[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
810 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[11]);
812 fra
.me
.REG
[11] = BOX_NativeString("");
814 fra
.me
.REG
[11] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[11], REGB2
);
815 once_value_7
= fra
.me
.REG
[11];
816 register_static_object(&once_value_7
);
817 } else fra
.me
.REG
[11] = once_value_7
;
818 fra
.me
.REG
[11] = fra
.me
.REG
[11];
819 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[11]);
820 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
821 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*/;
822 if (UNTAG_Bool(REGB2
)) {
824 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 146);
826 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
827 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
829 fra
.me
.REG
[4] = BOX_NativeString("");
831 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB2
);
832 once_value_8
= fra
.me
.REG
[4];
833 register_static_object(&once_value_8
);
834 } else fra
.me
.REG
[4] = once_value_8
;
835 fra
.me
.REG
[4] = fra
.me
.REG
[4];
836 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
837 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[10]);
839 /* ../lib/standard/collection/array.nit:274 */
841 /* ../lib/standard/kernel.nit:238 */
842 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
843 /* ../lib/standard/collection/array.nit:274 */
846 /* ../lib/standard/collection/array.nit:272 */
851 /* syntax/typing.nit:148 */
853 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
854 if (!once_value_10
) {
855 fra
.me
.REG
[6] = BOX_NativeString("Error: Conflicting default constructor to call for ");
857 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
858 once_value_10
= fra
.me
.REG
[6];
859 register_static_object(&once_value_10
);
860 } else fra
.me
.REG
[6] = once_value_10
;
861 fra
.me
.REG
[6] = 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 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
864 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
865 if (!once_value_11
) {
866 fra
.me
.REG
[6] = BOX_NativeString(": ");
868 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
869 once_value_11
= fra
.me
.REG
[6];
870 register_static_object(&once_value_11
);
871 } else fra
.me
.REG
[6] = once_value_11
;
872 fra
.me
.REG
[6] = fra
.me
.REG
[6];
873 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
874 if (!once_value_12
) {
875 fra
.me
.REG
[6] = BOX_NativeString(", ");
877 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
878 once_value_12
= fra
.me
.REG
[6];
879 register_static_object(&once_value_12
);
880 } else fra
.me
.REG
[6] = once_value_12
;
881 fra
.me
.REG
[6] = fra
.me
.REG
[6];
882 fra
.me
.REG
[6] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
883 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
884 if (!once_value_13
) {
885 fra
.me
.REG
[6] = BOX_NativeString(".");
887 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
888 once_value_13
= fra
.me
.REG
[6];
889 register_static_object(&once_value_13
);
890 } else fra
.me
.REG
[6] = once_value_13
;
891 fra
.me
.REG
[6] = fra
.me
.REG
[6];
892 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
893 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
894 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[8]);
895 /* syntax/typing.nit:149 */
896 fra
.me
.REG
[9] = NIT_NULL
;
899 /* ../lib/standard/collection/array.nit:24 */
900 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
901 if (UNTAG_Bool(REGB1
)) {
903 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
905 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
906 /* syntax/typing.nit:150 */
908 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
909 if (UNTAG_Bool(REGB0
)) {
911 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
913 /* ../lib/standard/kernel.nit:237 */
914 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
915 /* syntax/typing.nit:150 */
916 if (UNTAG_Bool(REGB2
)) {
917 /* syntax/typing.nit:151 */
918 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
919 /* ../lib/standard/collection/array.nit:269 */
921 /* ../lib/standard/collection/array.nit:270 */
922 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
923 if (UNTAG_Bool(REGB1
)) {
925 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
927 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
928 /* ../lib/standard/collection/array.nit:271 */
929 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
930 /* ../lib/standard/collection/array.nit:272 */
932 /* ../lib/standard/collection/array.nit:24 */
933 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
934 if (UNTAG_Bool(REGB1
)) {
936 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
938 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
939 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
940 if (UNTAG_Bool(REGB0
)) {
942 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
944 /* ../lib/standard/kernel.nit:235 */
945 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
946 /* ../lib/standard/collection/array.nit:272 */
947 if (UNTAG_Bool(REGB1
)) {
948 /* ../lib/standard/collection/array.nit:273 */
949 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
950 if (UNTAG_Bool(REGB1
)) {
951 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
953 /* ../lib/standard/collection/array.nit:724 */
954 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB2
)];
955 /* syntax/typing.nit:153 */
957 fra
.me
.REG
[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
958 if (!once_value_14
) {
959 fra
.me
.REG
[4] = BOX_NativeString("");
961 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
962 once_value_14
= fra
.me
.REG
[4];
963 register_static_object(&once_value_14
);
964 } else fra
.me
.REG
[4] = once_value_14
;
965 fra
.me
.REG
[4] = fra
.me
.REG
[4];
966 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
967 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
969 if (!once_value_15
) {
970 fra
.me
.REG
[4] = BOX_NativeString("");
972 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
973 once_value_15
= fra
.me
.REG
[4];
974 register_static_object(&once_value_15
);
975 } else fra
.me
.REG
[4] = once_value_15
;
976 fra
.me
.REG
[4] = fra
.me
.REG
[4];
977 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[4]);
978 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
979 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*/;
980 if (UNTAG_Bool(REGB1
)) {
982 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 153);
984 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
985 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[3]);
986 if (!once_value_16
) {
987 fra
.me
.REG
[3] = BOX_NativeString("");
989 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
990 once_value_16
= fra
.me
.REG
[3];
991 register_static_object(&once_value_16
);
992 } else fra
.me
.REG
[3] = once_value_16
;
993 fra
.me
.REG
[3] = fra
.me
.REG
[3];
994 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[10])(fra
.me
.REG
[10], fra
.me
.REG
[3]);
995 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
996 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[10]);
997 /* ../lib/standard/collection/array.nit:274 */
999 /* ../lib/standard/kernel.nit:238 */
1000 REGB1
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB1
));
1001 /* ../lib/standard/collection/array.nit:274 */
1004 /* ../lib/standard/collection/array.nit:272 */
1009 /* syntax/typing.nit:155 */
1011 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
1012 if (!once_value_18
) {
1013 fra
.me
.REG
[6] = BOX_NativeString("Error: there is no available compatible constructor in ");
1014 REGB2
= TAG_Int(55);
1015 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
1016 once_value_18
= fra
.me
.REG
[6];
1017 register_static_object(&once_value_18
);
1018 } else fra
.me
.REG
[6] = once_value_18
;
1019 fra
.me
.REG
[6] = 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 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1022 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1023 if (!once_value_19
) {
1024 fra
.me
.REG
[6] = BOX_NativeString(". Discarded candidates are ");
1025 REGB2
= TAG_Int(27);
1026 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
1027 once_value_19
= fra
.me
.REG
[6];
1028 register_static_object(&once_value_19
);
1029 } else fra
.me
.REG
[6] = once_value_19
;
1030 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1031 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1032 if (!once_value_20
) {
1033 fra
.me
.REG
[6] = BOX_NativeString(", ");
1035 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
1036 once_value_20
= fra
.me
.REG
[6];
1037 register_static_object(&once_value_20
);
1038 } else fra
.me
.REG
[6] = once_value_20
;
1039 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1040 fra
.me
.REG
[6] = CALL_standard___string___Collection___join(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
1041 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1042 if (!once_value_21
) {
1043 fra
.me
.REG
[6] = BOX_NativeString(".");
1045 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
1046 once_value_21
= fra
.me
.REG
[6];
1047 register_static_object(&once_value_21
);
1048 } else fra
.me
.REG
[6] = once_value_21
;
1049 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1050 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1051 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1052 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[0]);
1053 /* syntax/typing.nit:156 */
1054 fra
.me
.REG
[9] = NIT_NULL
;
1057 /* syntax/typing.nit:158 */
1059 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
1060 if (!once_value_22
) {
1061 fra
.me
.REG
[6] = BOX_NativeString("Error: there is no available compatible constructor in ");
1062 REGB2
= TAG_Int(55);
1063 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
1064 once_value_22
= fra
.me
.REG
[6];
1065 register_static_object(&once_value_22
);
1066 } else fra
.me
.REG
[6] = once_value_22
;
1067 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1068 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
1069 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1070 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
1071 if (!once_value_23
) {
1072 fra
.me
.REG
[2] = BOX_NativeString(".");
1074 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB2
);
1075 once_value_23
= fra
.me
.REG
[2];
1076 register_static_object(&once_value_23
);
1077 } else fra
.me
.REG
[2] = once_value_23
;
1078 fra
.me
.REG
[2] = fra
.me
.REG
[2];
1079 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
1080 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1081 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[0]);
1082 /* syntax/typing.nit:159 */
1083 fra
.me
.REG
[9] = NIT_NULL
;
1089 stack_frame_head
= fra
.me
.prev
;
1090 return fra
.me
.REG
[9];
1092 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
){
1093 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1100 static val_t once_value_3
; /* Once value */
1101 static val_t once_value_4
; /* Once value */
1102 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1103 fra
.me
.file
= LOCATE_syntax___typing
;
1105 fra
.me
.meth
= LOCATE_syntax___typing___TypingVisitor___get_default_constructor_for
;
1106 fra
.me
.has_broke
= 0;
1107 fra
.me
.REG_size
= 4;
1108 fra
.me
.nitni_local_ref_head
= NULL
;
1109 fra
.me
.REG
[0] = NIT_NULL
;
1110 fra
.me
.REG
[1] = NIT_NULL
;
1111 fra
.me
.REG
[2] = NIT_NULL
;
1112 fra
.me
.REG
[3] = NIT_NULL
;
1113 fra
.me
.closure_ctx
= closctx_param
;
1114 fra
.me
.closure_funs
= CREG
;
1116 CREG
[0] = clos_fun0
;
1117 /* syntax/typing.nit:123 */
1118 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[2]);
1119 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1120 if (UNTAG_Bool(REGB0
)) {
1123 /* syntax/typing.nit:124 */
1124 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
1125 /* syntax/typing.nit:125 */
1126 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx
->REG
[2])(closctx
->REG
[2]);
1127 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1128 /* syntax/typing.nit:126 */
1129 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
1130 if (UNTAG_Bool(REGB0
)) {
1132 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 126);
1134 /* syntax/typing.nit:127 */
1135 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1136 /* syntax/typing.nit:128 */
1137 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1138 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(closctx
->REG
[3])(closctx
->REG
[3]);
1139 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
1140 if (UNTAG_Bool(REGB1
)) {
1142 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1145 if (UNTAG_Bool(REGB1
)) {
1146 /* syntax/typing.nit:129 */
1148 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
1149 if (UNTAG_Bool(REGB2
)) {
1151 /* ../lib/standard/kernel.nit:230 */
1152 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
1153 /* syntax/typing.nit:129 */
1156 if (UNTAG_Bool(REGB2
)) {
1157 REGB2
= TAG_Bool(1);
1159 REGB1
= TAG_Bool(IS_EQUAL_OO(closctx
->REG
[8],REGB0
));
1160 if (UNTAG_Bool(REGB1
)) {
1162 /* ../lib/standard/kernel.nit:230 */
1163 REGB3
= TAG_Bool((closctx
->REG
[8])==(REGB0
));
1164 /* syntax/typing.nit:129 */
1167 if (UNTAG_Bool(REGB1
)) {
1168 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(closctx
->REG
[3])(closctx
->REG
[3]);
1169 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1170 if (UNTAG_Bool(REGB1
)) {
1171 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 129);
1173 REGB1
= CALL_metamodel___static_type___MMSignature_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1175 REGB3
= TAG_Bool(0);
1180 if (UNTAG_Bool(REGB2
)) {
1181 /* syntax/typing.nit:130 */
1182 closctx
->REG
[9] = fra
.me
.REG
[0];
1183 closctx
->has_broke
= 1;
1186 /* syntax/typing.nit:132 */
1187 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[7])(closctx
->REG
[7], fra
.me
.REG
[0]);
1190 /* syntax/typing.nit:134 */
1192 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
1193 if (UNTAG_Bool(REGB1
)) {
1195 /* ../lib/standard/kernel.nit:230 */
1196 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
1197 /* syntax/typing.nit:134 */
1200 if (UNTAG_Bool(REGB1
)) {
1201 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1202 if (!once_value_3
) {
1203 if (!once_value_4
) {
1204 fra
.me
.REG
[3] = BOX_NativeString("init");
1206 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
1207 once_value_4
= fra
.me
.REG
[3];
1208 register_static_object(&once_value_4
);
1209 } else fra
.me
.REG
[3] = once_value_4
;
1210 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1211 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1212 once_value_3
= fra
.me
.REG
[3];
1213 register_static_object(&once_value_3
);
1214 } else fra
.me
.REG
[3] = once_value_3
;
1215 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1216 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[3]));
1217 if (UNTAG_Bool(REGB1
)) {
1219 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1223 REGB2
= TAG_Bool(0);
1226 if (UNTAG_Bool(REGB1
)) {
1227 /* syntax/typing.nit:135 */
1228 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[6])(closctx
->REG
[6], fra
.me
.REG
[0]);
1229 /* syntax/typing.nit:136 */
1230 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[7])(closctx
->REG
[7], fra
.me
.REG
[0]);
1232 /* syntax/typing.nit:138 */
1233 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[7])(closctx
->REG
[7], fra
.me
.REG
[0]);
1237 stack_frame_head
= fra
.me
.prev
;
1240 static const char LOCATE_syntax___typing___ANode___accept_typing
[] = "typing::ANode::accept_typing";
1241 void syntax___typing___ANode___accept_typing(val_t p0
, val_t p1
){
1242 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1244 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1245 fra
.me
.file
= LOCATE_syntax___typing
;
1247 fra
.me
.meth
= LOCATE_syntax___typing___ANode___accept_typing
;
1248 fra
.me
.has_broke
= 0;
1249 fra
.me
.REG_size
= 2;
1250 fra
.me
.nitni_local_ref_head
= NULL
;
1251 fra
.me
.REG
[0] = NIT_NULL
;
1252 fra
.me
.REG
[1] = NIT_NULL
;
1255 /* syntax/typing.nit:170 */
1256 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1257 /* syntax/typing.nit:171 */
1258 CALL_syntax___typing___ANode___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1259 stack_frame_head
= fra
.me
.prev
;
1262 static const char LOCATE_syntax___typing___ANode___after_typing
[] = "typing::ANode::after_typing";
1263 void syntax___typing___ANode___after_typing(val_t p0
, val_t p1
){
1264 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1266 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1267 fra
.me
.file
= LOCATE_syntax___typing
;
1269 fra
.me
.meth
= LOCATE_syntax___typing___ANode___after_typing
;
1270 fra
.me
.has_broke
= 0;
1271 fra
.me
.REG_size
= 2;
1272 fra
.me
.nitni_local_ref_head
= NULL
;
1273 fra
.me
.REG
[0] = NIT_NULL
;
1274 fra
.me
.REG
[1] = NIT_NULL
;
1277 stack_frame_head
= fra
.me
.prev
;
1280 static const char LOCATE_syntax___typing___AClassdef___accept_typing
[] = "typing::AClassdef::(typing::ANode::accept_typing)";
1281 void syntax___typing___AClassdef___accept_typing(val_t p0
, val_t p1
){
1282 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1285 static val_t once_value_1
; /* Once value */
1286 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1287 fra
.me
.file
= LOCATE_syntax___typing
;
1289 fra
.me
.meth
= LOCATE_syntax___typing___AClassdef___accept_typing
;
1290 fra
.me
.has_broke
= 0;
1291 fra
.me
.REG_size
= 5;
1292 fra
.me
.nitni_local_ref_head
= NULL
;
1293 fra
.me
.REG
[0] = NIT_NULL
;
1294 fra
.me
.REG
[1] = NIT_NULL
;
1295 fra
.me
.REG
[2] = NIT_NULL
;
1296 fra
.me
.REG
[3] = NIT_NULL
;
1297 fra
.me
.REG
[4] = NIT_NULL
;
1300 /* syntax/typing.nit:177 */
1301 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1302 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1303 /* syntax/typing.nit:179 */
1304 if (!once_value_1
) {
1305 fra
.me
.REG
[4] = BOX_NativeString("self");
1307 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
1308 once_value_1
= fra
.me
.REG
[4];
1309 register_static_object(&once_value_1
);
1310 } else fra
.me
.REG
[4] = once_value_1
;
1311 fra
.me
.REG
[4] = fra
.me
.REG
[4];
1312 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1313 fra
.me
.REG
[4] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1314 CALL_syntax___typing___TypingVisitor___self_var__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1315 /* syntax/typing.nit:180 */
1316 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1317 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1318 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1319 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1320 /* syntax/typing.nit:181 */
1321 CALL_SUPER_syntax___typing___AClassdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1322 stack_frame_head
= fra
.me
.prev
;
1325 static const char LOCATE_syntax___typing___APropdef___self_var
[] = "typing::APropdef::(syntax_base::APropdef::self_var)";
1326 val_t
syntax___typing___APropdef___self_var(val_t p0
){
1327 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1330 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1331 fra
.me
.file
= LOCATE_syntax___typing
;
1333 fra
.me
.meth
= LOCATE_syntax___typing___APropdef___self_var
;
1334 fra
.me
.has_broke
= 0;
1335 fra
.me
.REG_size
= 2;
1336 fra
.me
.nitni_local_ref_head
= NULL
;
1337 fra
.me
.REG
[0] = NIT_NULL
;
1338 fra
.me
.REG
[1] = NIT_NULL
;
1340 /* syntax/typing.nit:186 */
1341 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1342 fra
.me
.REG
[1] = ATTR_syntax___typing___APropdef____self_var(fra
.me
.REG
[1]);
1343 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1344 if (UNTAG_Bool(REGB0
)) {
1346 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 186);
1350 stack_frame_head
= fra
.me
.prev
;
1351 return fra
.me
.REG
[1];
1353 static const char LOCATE_syntax___typing___AAttrPropdef___accept_typing
[] = "typing::AAttrPropdef::(typing::ANode::accept_typing)";
1354 void syntax___typing___AAttrPropdef___accept_typing(val_t p0
, val_t p1
){
1355 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1359 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1360 fra
.me
.file
= LOCATE_syntax___typing
;
1362 fra
.me
.meth
= LOCATE_syntax___typing___AAttrPropdef___accept_typing
;
1363 fra
.me
.has_broke
= 0;
1364 fra
.me
.REG_size
= 5;
1365 fra
.me
.nitni_local_ref_head
= NULL
;
1366 fra
.me
.REG
[0] = NIT_NULL
;
1367 fra
.me
.REG
[1] = NIT_NULL
;
1368 fra
.me
.REG
[2] = NIT_NULL
;
1369 fra
.me
.REG
[3] = NIT_NULL
;
1370 fra
.me
.REG
[4] = NIT_NULL
;
1373 /* syntax/typing.nit:191 */
1374 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1375 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1376 /* syntax/typing.nit:193 */
1377 fra
.me
.REG
[4] = NEW_RootFlowContext_syntax___flow___RootFlowContext___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1378 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1379 /* syntax/typing.nit:194 */
1380 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1381 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1382 /* syntax/typing.nit:196 */
1383 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1384 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1385 /* syntax/typing.nit:197 */
1386 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1387 ATTR_syntax___typing___APropdef____self_var(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
1388 /* syntax/typing.nit:198 */
1389 CALL_SUPER_syntax___typing___AAttrPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1390 /* syntax/typing.nit:199 */
1391 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1392 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1393 if (UNTAG_Bool(REGB0
)) {
1395 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1396 if (UNTAG_Bool(REGB1
)) {
1397 REGB1
= TAG_Bool(0);
1400 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1404 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1405 if (UNTAG_Bool(REGB0
)) {
1406 /* syntax/typing.nit:200 */
1407 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1408 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*/;
1409 if (UNTAG_Bool(REGB0
)) {
1411 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 200);
1413 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1414 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1415 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1416 if (UNTAG_Bool(REGB0
)) {
1417 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 200);
1419 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1420 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*/;
1421 if (UNTAG_Bool(REGB0
)) {
1423 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 200);
1425 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[2]);
1427 /* syntax/typing.nit:202 */
1428 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1429 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1430 stack_frame_head
= fra
.me
.prev
;
1433 static const char LOCATE_syntax___typing___AMethPropdef___accept_typing
[] = "typing::AMethPropdef::(typing::ANode::accept_typing)";
1434 void syntax___typing___AMethPropdef___accept_typing(val_t p0
, val_t p1
){
1435 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1437 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1438 fra
.me
.file
= LOCATE_syntax___typing
;
1440 fra
.me
.meth
= LOCATE_syntax___typing___AMethPropdef___accept_typing
;
1441 fra
.me
.has_broke
= 0;
1442 fra
.me
.REG_size
= 5;
1443 fra
.me
.nitni_local_ref_head
= NULL
;
1444 fra
.me
.REG
[0] = NIT_NULL
;
1445 fra
.me
.REG
[1] = NIT_NULL
;
1446 fra
.me
.REG
[2] = NIT_NULL
;
1447 fra
.me
.REG
[3] = NIT_NULL
;
1448 fra
.me
.REG
[4] = NIT_NULL
;
1451 /* syntax/typing.nit:207 */
1452 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1453 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1454 /* syntax/typing.nit:209 */
1455 fra
.me
.REG
[4] = NEW_RootFlowContext_syntax___flow___RootFlowContext___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1456 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1457 /* syntax/typing.nit:210 */
1458 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1459 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1460 /* syntax/typing.nit:212 */
1461 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1462 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1463 /* syntax/typing.nit:213 */
1464 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1465 ATTR_syntax___typing___APropdef____self_var(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
1466 /* syntax/typing.nit:214 */
1467 CALL_SUPER_syntax___typing___AMethPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1468 /* syntax/typing.nit:215 */
1469 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1470 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1471 stack_frame_head
= fra
.me
.prev
;
1474 static const char LOCATE_syntax___typing___AConcreteMethPropdef___after_typing
[] = "typing::AConcreteMethPropdef::(typing::ANode::after_typing)";
1475 void syntax___typing___AConcreteMethPropdef___after_typing(val_t p0
, val_t p1
){
1476 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1480 static val_t once_value_1
; /* Once value */
1481 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1482 fra
.me
.file
= LOCATE_syntax___typing
;
1484 fra
.me
.meth
= LOCATE_syntax___typing___AConcreteMethPropdef___after_typing
;
1485 fra
.me
.has_broke
= 0;
1486 fra
.me
.REG_size
= 4;
1487 fra
.me
.nitni_local_ref_head
= NULL
;
1488 fra
.me
.REG
[0] = NIT_NULL
;
1489 fra
.me
.REG
[1] = NIT_NULL
;
1490 fra
.me
.REG
[2] = NIT_NULL
;
1491 fra
.me
.REG
[3] = NIT_NULL
;
1494 /* syntax/typing.nit:220 */
1495 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1496 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1497 /* syntax/typing.nit:222 */
1498 CALL_SUPER_syntax___typing___AConcreteMethPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1499 /* syntax/typing.nit:223 */
1500 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1501 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1502 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1503 if (UNTAG_Bool(REGB0
)) {
1504 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1505 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1506 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1507 if (UNTAG_Bool(REGB0
)) {
1508 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 223);
1510 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1511 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1512 if (UNTAG_Bool(REGB0
)) {
1514 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1515 if (UNTAG_Bool(REGB1
)) {
1516 REGB1
= TAG_Bool(0);
1519 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1523 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1525 REGB1
= TAG_Bool(0);
1528 if (UNTAG_Bool(REGB0
)) {
1529 /* syntax/typing.nit:224 */
1530 if (!once_value_1
) {
1531 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of function (a 'return' with a value was expected).");
1532 REGB0
= TAG_Int(78);
1533 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
1534 once_value_1
= fra
.me
.REG
[1];
1535 register_static_object(&once_value_1
);
1536 } else fra
.me
.REG
[1] = once_value_1
;
1537 fra
.me
.REG
[1] = fra
.me
.REG
[1];
1538 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
1540 stack_frame_head
= fra
.me
.prev
;
1543 static const char LOCATE_syntax___typing___AConcreteInitPropdef___accept_typing
[] = "typing::AConcreteInitPropdef::(typing::ANode::accept_typing)";
1544 void syntax___typing___AConcreteInitPropdef___accept_typing(val_t p0
, val_t p1
){
1545 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1548 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1549 fra
.me
.file
= LOCATE_syntax___typing
;
1551 fra
.me
.meth
= LOCATE_syntax___typing___AConcreteInitPropdef___accept_typing
;
1552 fra
.me
.has_broke
= 0;
1553 fra
.me
.REG_size
= 5;
1554 fra
.me
.nitni_local_ref_head
= NULL
;
1555 fra
.me
.REG
[0] = NIT_NULL
;
1556 fra
.me
.REG
[1] = NIT_NULL
;
1557 fra
.me
.REG
[2] = NIT_NULL
;
1558 fra
.me
.REG
[3] = NIT_NULL
;
1559 fra
.me
.REG
[4] = NIT_NULL
;
1562 /* syntax/typing.nit:230 */
1563 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1564 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1565 /* syntax/typing.nit:232 */
1566 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1567 CALL_syntax___typing___TypingVisitor___top_block__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1568 /* syntax/typing.nit:233 */
1569 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1570 CALL_syntax___typing___TypingVisitor___explicit_super_init_calls__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1571 /* syntax/typing.nit:234 */
1572 REGB0
= TAG_Bool(0);
1573 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1574 /* syntax/typing.nit:235 */
1575 CALL_SUPER_syntax___typing___AConcreteInitPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1576 stack_frame_head
= fra
.me
.prev
;
1579 static const char LOCATE_syntax___typing___AConcreteInitPropdef___after_typing
[] = "typing::AConcreteInitPropdef::(typing::ANode::after_typing)";
1580 void syntax___typing___AConcreteInitPropdef___after_typing(val_t p0
, val_t p1
){
1581 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
1589 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1590 fra
.me
.file
= LOCATE_syntax___typing
;
1592 fra
.me
.meth
= LOCATE_syntax___typing___AConcreteInitPropdef___after_typing
;
1593 fra
.me
.has_broke
= 0;
1594 fra
.me
.REG_size
= 8;
1595 fra
.me
.nitni_local_ref_head
= NULL
;
1596 fra
.me
.REG
[0] = NIT_NULL
;
1597 fra
.me
.REG
[1] = NIT_NULL
;
1598 fra
.me
.REG
[2] = NIT_NULL
;
1599 fra
.me
.REG
[3] = NIT_NULL
;
1600 fra
.me
.REG
[4] = NIT_NULL
;
1601 fra
.me
.REG
[5] = NIT_NULL
;
1602 fra
.me
.REG
[6] = NIT_NULL
;
1603 fra
.me
.REG
[7] = NIT_NULL
;
1606 /* syntax/typing.nit:238 */
1607 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1608 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1609 /* syntax/typing.nit:240 */
1610 CALL_SUPER_syntax___typing___AConcreteInitPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1611 /* syntax/typing.nit:241 */
1612 REGB0
= CALL_syntax___typing___TypingVisitor___explicit_other_init_call(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1613 if (UNTAG_Bool(REGB0
)) {
1614 REGB0
= TAG_Bool(1);
1616 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1617 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1618 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1619 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1620 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[4]));
1621 if (UNTAG_Bool(REGB1
)) {
1623 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1626 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
1629 if (UNTAG_Bool(REGB0
)) {
1631 /* syntax/typing.nit:244 */
1633 /* syntax/typing.nit:245 */
1634 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1635 /* ../lib/standard/collection/array.nit:24 */
1636 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1637 if (UNTAG_Bool(REGB1
)) {
1639 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1641 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1642 /* syntax/typing.nit:246 */
1643 fra
.me
.REG
[4] = NIT_NULL
;
1644 /* syntax/typing.nit:247 */
1645 fra
.me
.REG
[1] = NIT_NULL
;
1646 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1647 if (UNTAG_Bool(REGB2
)) {
1649 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1651 /* ../lib/standard/kernel.nit:235 */
1652 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1653 /* syntax/typing.nit:248 */
1654 if (UNTAG_Bool(REGB2
)) {
1655 /* syntax/typing.nit:249 */
1656 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1657 /* ../lib/standard/collection/array.nit:278 */
1659 /* ../lib/standard/collection/array.nit:280 */
1661 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1662 if (UNTAG_Bool(REGB4
)) {
1664 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1666 /* ../lib/standard/kernel.nit:236 */
1667 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
1668 /* ../lib/standard/collection/array.nit:280 */
1669 if (UNTAG_Bool(REGB3
)) {
1670 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1671 if (UNTAG_Bool(REGB3
)) {
1673 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1675 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1676 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1677 if (UNTAG_Bool(REGB4
)) {
1679 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1681 /* ../lib/standard/kernel.nit:235 */
1682 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1684 /* ../lib/standard/collection/array.nit:280 */
1685 REGB4
= TAG_Bool(0);
1688 if (UNTAG_Bool(REGB3
)) {
1690 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
1692 /* ../lib/standard/collection/array.nit:281 */
1693 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
1694 REGB3
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1695 if (UNTAG_Bool(REGB3
)) {
1696 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1698 /* ../lib/standard/collection/array.nit:724 */
1699 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB2
)];
1700 /* ../lib/standard/collection/array.nit:281 */
1703 /* syntax/typing.nit:249 */
1704 fra
.me
.REG
[4] = fra
.me
.REG
[5];
1705 /* syntax/typing.nit:250 */
1706 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1707 if (UNTAG_Bool(REGB2
)) {
1708 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 250);
1710 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1711 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1712 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1713 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1714 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
1715 fra
.me
.REG
[1] = fra
.me
.REG
[6];
1717 /* syntax/typing.nit:252 */
1719 /* syntax/typing.nit:253 */
1721 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1722 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1723 fra
.me
.REG
[6] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1724 /* ../lib/standard/collection/array.nit:24 */
1725 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
1726 if (UNTAG_Bool(REGB3
)) {
1728 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1730 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
1731 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1732 if (UNTAG_Bool(REGB4
)) {
1734 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1736 /* ../lib/standard/kernel.nit:235 */
1737 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1738 /* syntax/typing.nit:253 */
1739 if (UNTAG_Bool(REGB3
)) {
1740 /* syntax/typing.nit:254 */
1741 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1742 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1743 fra
.me
.REG
[6] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1744 /* ../lib/standard/collection/array.nit:278 */
1746 /* ../lib/standard/collection/array.nit:280 */
1748 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1749 if (UNTAG_Bool(REGB5
)) {
1751 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1753 /* ../lib/standard/kernel.nit:236 */
1754 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1755 /* ../lib/standard/collection/array.nit:280 */
1756 if (UNTAG_Bool(REGB4
)) {
1757 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
1758 if (UNTAG_Bool(REGB4
)) {
1760 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1762 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
1763 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1764 if (UNTAG_Bool(REGB5
)) {
1766 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1768 /* ../lib/standard/kernel.nit:235 */
1769 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1771 /* ../lib/standard/collection/array.nit:280 */
1772 REGB5
= TAG_Bool(0);
1775 if (UNTAG_Bool(REGB4
)) {
1777 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
1779 /* ../lib/standard/collection/array.nit:281 */
1780 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
1781 REGB4
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1782 if (UNTAG_Bool(REGB4
)) {
1783 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1785 /* ../lib/standard/collection/array.nit:724 */
1786 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB3
)];
1787 /* ../lib/standard/collection/array.nit:281 */
1790 /* syntax/typing.nit:255 */
1791 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1792 REGB3
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1793 if (UNTAG_Bool(REGB3
)) {
1794 REGB3
= TAG_Bool(1);
1796 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1797 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1800 if (UNTAG_Bool(REGB3
)) {
1801 REGB3
= TAG_Bool(1);
1803 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1804 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1807 if (UNTAG_Bool(REGB3
)) {
1808 REGB3
= TAG_Bool(1);
1810 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1811 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1814 if (UNTAG_Bool(REGB3
)) {
1815 /* syntax/typing.nit:256 */
1817 /* ../lib/standard/kernel.nit:238 */
1818 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1819 /* syntax/typing.nit:256 */
1822 /* syntax/typing.nit:257 */
1823 REGB3
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1824 if (UNTAG_Bool(REGB3
)) {
1826 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1827 if (UNTAG_Bool(REGB4
)) {
1828 REGB4
= TAG_Bool(0);
1831 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1835 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1836 if (UNTAG_Bool(REGB3
)) {
1837 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1838 REGB3
= CALL_metamodel___partial_order___PartialOrderElement_____leq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
1839 if (UNTAG_Bool(REGB3
)) {
1840 REGB3
= TAG_Bool(1);
1842 REGB4
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1843 if (UNTAG_Bool(REGB4
)) {
1844 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 257);
1846 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1847 REGB4
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1851 REGB4
= TAG_Bool(0);
1854 if (UNTAG_Bool(REGB3
)) {
1855 /* syntax/typing.nit:258 */
1856 REGB3
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[6],fra
.me
.REG
[1]));
1857 if (UNTAG_Bool(REGB3
)) {
1859 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1]);
1862 if (UNTAG_Bool(REGB3
)) {
1864 /* ../lib/standard/kernel.nit:238 */
1865 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1866 /* syntax/typing.nit:258 */
1869 /* syntax/typing.nit:259 */
1870 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1871 REGB3
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
1872 if (UNTAG_Bool(REGB3
)) {
1874 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 259);
1876 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
1877 /* syntax/typing.nit:260 */
1879 /* ../lib/standard/kernel.nit:238 */
1880 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
1881 /* syntax/typing.nit:260 */
1883 REGB3
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1884 if (UNTAG_Bool(REGB3
)) {
1886 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1888 /* ../lib/standard/kernel.nit:235 */
1889 REGB3
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1890 /* syntax/typing.nit:261 */
1891 if (UNTAG_Bool(REGB3
)) {
1892 /* syntax/typing.nit:262 */
1893 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1894 /* ../lib/standard/collection/array.nit:278 */
1896 /* ../lib/standard/collection/array.nit:280 */
1898 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1899 if (UNTAG_Bool(REGB5
)) {
1901 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1903 /* ../lib/standard/kernel.nit:236 */
1904 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1905 /* ../lib/standard/collection/array.nit:280 */
1906 if (UNTAG_Bool(REGB4
)) {
1907 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1908 if (UNTAG_Bool(REGB4
)) {
1910 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1912 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1913 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1914 if (UNTAG_Bool(REGB5
)) {
1916 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1918 /* ../lib/standard/kernel.nit:235 */
1919 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1921 /* ../lib/standard/collection/array.nit:280 */
1922 REGB5
= TAG_Bool(0);
1925 if (UNTAG_Bool(REGB4
)) {
1927 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
1929 /* ../lib/standard/collection/array.nit:281 */
1930 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
1931 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1932 if (UNTAG_Bool(REGB4
)) {
1933 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1935 /* ../lib/standard/collection/array.nit:724 */
1936 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
1937 /* ../lib/standard/collection/array.nit:281 */
1940 /* syntax/typing.nit:262 */
1941 fra
.me
.REG
[4] = fra
.me
.REG
[5];
1942 /* syntax/typing.nit:263 */
1943 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1944 if (UNTAG_Bool(REGB3
)) {
1945 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 263);
1947 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1948 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1949 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1950 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1951 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
1952 fra
.me
.REG
[1] = fra
.me
.REG
[7];
1954 /* syntax/typing.nit:265 */
1955 fra
.me
.REG
[4] = NIT_NULL
;
1956 /* syntax/typing.nit:266 */
1957 fra
.me
.REG
[1] = NIT_NULL
;
1960 /* syntax/typing.nit:269 */
1961 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1962 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]);
1963 /* syntax/typing.nit:270 */
1964 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1965 if (UNTAG_Bool(REGB3
)) {
1967 REGB4
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
1968 if (UNTAG_Bool(REGB4
)) {
1969 REGB4
= TAG_Bool(0);
1972 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
1976 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1977 if (UNTAG_Bool(REGB3
)) {
1978 /* syntax/typing.nit:271 */
1979 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1980 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1982 /* syntax/typing.nit:273 */
1984 /* ../lib/standard/kernel.nit:238 */
1985 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1986 /* syntax/typing.nit:273 */
1991 /* syntax/typing.nit:253 */
1997 stack_frame_head
= fra
.me
.prev
;
2000 static const char LOCATE_syntax___typing___AExternInitPropdef___accept_typing
[] = "typing::AExternInitPropdef::(typing::ANode::accept_typing)";
2001 void syntax___typing___AExternInitPropdef___accept_typing(val_t p0
, val_t p1
){
2002 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2005 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2006 fra
.me
.file
= LOCATE_syntax___typing
;
2008 fra
.me
.meth
= LOCATE_syntax___typing___AExternInitPropdef___accept_typing
;
2009 fra
.me
.has_broke
= 0;
2010 fra
.me
.REG_size
= 3;
2011 fra
.me
.nitni_local_ref_head
= NULL
;
2012 fra
.me
.REG
[0] = NIT_NULL
;
2013 fra
.me
.REG
[1] = NIT_NULL
;
2014 fra
.me
.REG
[2] = NIT_NULL
;
2017 /* syntax/typing.nit:281 */
2018 fra
.me
.REG
[2] = fra
.me
.REG
[1];
2019 /* syntax/typing.nit:283 */
2020 REGB0
= TAG_Bool(0);
2021 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
2022 /* syntax/typing.nit:284 */
2023 CALL_SUPER_syntax___typing___AExternInitPropdef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2024 stack_frame_head
= fra
.me
.prev
;
2027 static const char LOCATE_syntax___typing___AExternInitPropdef___after_typing
[] = "typing::AExternInitPropdef::(typing::ANode::after_typing)";
2028 void syntax___typing___AExternInitPropdef___after_typing(val_t p0
, val_t p1
){
2029 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2031 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2032 fra
.me
.file
= LOCATE_syntax___typing
;
2034 fra
.me
.meth
= LOCATE_syntax___typing___AExternInitPropdef___after_typing
;
2035 fra
.me
.has_broke
= 0;
2036 fra
.me
.REG_size
= 2;
2037 fra
.me
.nitni_local_ref_head
= NULL
;
2038 fra
.me
.REG
[0] = NIT_NULL
;
2039 fra
.me
.REG
[1] = NIT_NULL
;
2042 /* syntax/typing.nit:288 */
2043 CALL_SUPER_syntax___typing___AExternInitPropdef___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2044 stack_frame_head
= fra
.me
.prev
;
2047 static const char LOCATE_syntax___typing___ASignature___after_typing
[] = "typing::ASignature::(typing::ANode::after_typing)";
2048 void syntax___typing___ASignature___after_typing(val_t p0
, val_t p1
){
2049 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2053 static val_t once_value_1
; /* Once value */
2054 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2055 fra
.me
.file
= LOCATE_syntax___typing
;
2057 fra
.me
.meth
= LOCATE_syntax___typing___ASignature___after_typing
;
2058 fra
.me
.has_broke
= 0;
2059 fra
.me
.REG_size
= 3;
2060 fra
.me
.nitni_local_ref_head
= NULL
;
2061 fra
.me
.REG
[0] = NIT_NULL
;
2062 fra
.me
.REG
[1] = NIT_NULL
;
2063 fra
.me
.REG
[2] = NIT_NULL
;
2066 /* syntax/typing.nit:295 */
2067 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ASignature___n_opar(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2068 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2069 if (UNTAG_Bool(REGB0
)) {
2071 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2072 if (UNTAG_Bool(REGB1
)) {
2073 REGB1
= TAG_Bool(0);
2076 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2080 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2081 if (UNTAG_Bool(REGB0
)) {
2082 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ASignature___n_params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2083 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2085 REGB1
= TAG_Bool(0);
2088 if (UNTAG_Bool(REGB0
)) {
2089 /* syntax/typing.nit:296 */
2090 if (!once_value_1
) {
2091 fra
.me
.REG
[2] = BOX_NativeString("Warning: superfluous parentheses.");
2092 REGB0
= TAG_Int(33);
2093 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2094 once_value_1
= fra
.me
.REG
[2];
2095 register_static_object(&once_value_1
);
2096 } else fra
.me
.REG
[2] = once_value_1
;
2097 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2098 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2100 stack_frame_head
= fra
.me
.prev
;
2103 static const char LOCATE_syntax___typing___AParam___after_typing
[] = "typing::AParam::(typing::ANode::after_typing)";
2104 void syntax___typing___AParam___after_typing(val_t p0
, val_t p1
){
2105 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2107 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2108 fra
.me
.file
= LOCATE_syntax___typing
;
2110 fra
.me
.meth
= LOCATE_syntax___typing___AParam___after_typing
;
2111 fra
.me
.has_broke
= 0;
2112 fra
.me
.REG_size
= 2;
2113 fra
.me
.nitni_local_ref_head
= NULL
;
2114 fra
.me
.REG
[0] = NIT_NULL
;
2115 fra
.me
.REG
[1] = NIT_NULL
;
2118 /* syntax/typing.nit:304 */
2119 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2120 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2121 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2122 stack_frame_head
= fra
.me
.prev
;
2125 static const char LOCATE_syntax___typing___AClosureDecl___escapable
[] = "typing::AClosureDecl::escapable";
2126 val_t
syntax___typing___AClosureDecl___escapable(val_t p0
){
2127 struct {struct stack_frame_t me
;} fra
;
2129 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2130 fra
.me
.file
= LOCATE_syntax___typing
;
2132 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDecl___escapable
;
2133 fra
.me
.has_broke
= 0;
2134 fra
.me
.REG_size
= 1;
2135 fra
.me
.nitni_local_ref_head
= NULL
;
2136 fra
.me
.REG
[0] = NIT_NULL
;
2138 /* syntax/typing.nit:309 */
2139 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDecl____escapable(fra
.me
.REG
[0]);
2140 stack_frame_head
= fra
.me
.prev
;
2141 return fra
.me
.REG
[0];
2143 static const char LOCATE_syntax___typing___AClosureDecl___accept_typing
[] = "typing::AClosureDecl::(typing::ANode::accept_typing)";
2144 void syntax___typing___AClosureDecl___accept_typing(val_t p0
, val_t p1
){
2145 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
2150 static val_t once_value_1
; /* Once value */
2151 static val_t once_value_2
; /* Once value */
2152 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2153 fra
.me
.file
= LOCATE_syntax___typing
;
2155 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDecl___accept_typing
;
2156 fra
.me
.has_broke
= 0;
2157 fra
.me
.REG_size
= 10;
2158 fra
.me
.nitni_local_ref_head
= NULL
;
2159 fra
.me
.REG
[0] = NIT_NULL
;
2160 fra
.me
.REG
[1] = NIT_NULL
;
2161 fra
.me
.REG
[2] = NIT_NULL
;
2162 fra
.me
.REG
[3] = NIT_NULL
;
2163 fra
.me
.REG
[4] = NIT_NULL
;
2164 fra
.me
.REG
[5] = NIT_NULL
;
2165 fra
.me
.REG
[6] = NIT_NULL
;
2166 fra
.me
.REG
[7] = NIT_NULL
;
2167 fra
.me
.REG
[8] = NIT_NULL
;
2168 fra
.me
.REG
[9] = NIT_NULL
;
2171 /* syntax/typing.nit:312 */
2172 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2173 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2174 /* syntax/typing.nit:315 */
2175 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2176 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2177 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2178 /* syntax/typing.nit:317 */
2179 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2180 /* syntax/typing.nit:318 */
2181 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2182 /* syntax/typing.nit:319 */
2183 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2184 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
2185 /* syntax/typing.nit:321 */
2186 fra
.me
.REG
[6] = NIT_NULL
;
2187 /* syntax/typing.nit:322 */
2188 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2189 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2190 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2191 if (UNTAG_Bool(REGB0
)) {
2192 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 322);
2194 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2195 /* syntax/typing.nit:323 */
2196 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2197 if (UNTAG_Bool(REGB0
)) {
2199 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2200 if (UNTAG_Bool(REGB1
)) {
2201 REGB1
= TAG_Bool(0);
2204 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
2208 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2209 if (UNTAG_Bool(REGB0
)) {
2210 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
2211 fra
.me
.REG
[6] = fra
.me
.REG
[8];
2213 /* syntax/typing.nit:324 */
2214 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2215 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2216 fra
.me
.REG
[8] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[2], fra
.me
.REG
[8], fra
.me
.REG
[6]);
2217 /* syntax/typing.nit:325 */
2218 ATTR_syntax___typing___AClosureDecl____escapable(fra
.me
.REG
[2]) = fra
.me
.REG
[8];
2219 /* syntax/typing.nit:326 */
2220 fra
.me
.REG
[9] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2221 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[8], NIT_NULL
);
2222 /* syntax/typing.nit:328 */
2223 REGB0
= TAG_Bool(1);
2224 CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2225 /* syntax/typing.nit:330 */
2226 CALL_SUPER_syntax___typing___AClosureDecl___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2227 /* syntax/typing.nit:332 */
2228 REGB0
= TAG_Bool(0);
2229 CALL_syntax___typing___TypingVisitor___is_default_closure_definition__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
2230 /* syntax/typing.nit:334 */
2231 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2232 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2233 if (UNTAG_Bool(REGB0
)) {
2235 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2236 if (UNTAG_Bool(REGB1
)) {
2237 REGB1
= TAG_Bool(0);
2240 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2244 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2245 if (UNTAG_Bool(REGB0
)) {
2246 /* syntax/typing.nit:335 */
2247 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2248 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2249 REGB1
= TAG_Bool(0);
2250 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
2251 if (UNTAG_Bool(REGB2
)) {
2253 /* ../lib/standard/kernel.nit:198 */
2254 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
2255 /* syntax/typing.nit:335 */
2258 if (UNTAG_Bool(REGB2
)) {
2259 /* syntax/typing.nit:336 */
2260 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2261 fra
.me
.REG
[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2262 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2263 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2264 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2265 if (UNTAG_Bool(REGB2
)) {
2267 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2268 if (UNTAG_Bool(REGB1
)) {
2269 REGB1
= TAG_Bool(0);
2272 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2276 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2277 if (UNTAG_Bool(REGB2
)) {
2278 /* syntax/typing.nit:337 */
2279 if (!once_value_1
) {
2280 fra
.me
.REG
[1] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
2281 REGB2
= TAG_Int(77);
2282 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB2
);
2283 once_value_1
= fra
.me
.REG
[1];
2284 register_static_object(&once_value_1
);
2285 } else fra
.me
.REG
[1] = once_value_1
;
2286 fra
.me
.REG
[1] = fra
.me
.REG
[1];
2287 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
2289 /* syntax/typing.nit:338 */
2290 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2291 fra
.me
.REG
[1] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2292 REGB2
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2293 if (UNTAG_Bool(REGB2
)) {
2294 fra
.me
.REG
[8] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
2295 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2296 if (UNTAG_Bool(REGB2
)) {
2298 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2299 if (UNTAG_Bool(REGB1
)) {
2300 REGB1
= TAG_Bool(0);
2303 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
2307 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2309 REGB1
= TAG_Bool(0);
2312 if (UNTAG_Bool(REGB2
)) {
2313 /* syntax/typing.nit:339 */
2314 if (!once_value_2
) {
2315 fra
.me
.REG
[8] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
2316 REGB2
= TAG_Int(80);
2317 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB2
);
2318 once_value_2
= fra
.me
.REG
[8];
2319 register_static_object(&once_value_2
);
2320 } else fra
.me
.REG
[8] = once_value_2
;
2321 fra
.me
.REG
[8] = fra
.me
.REG
[8];
2322 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[8]);
2327 /* syntax/typing.nit:343 */
2328 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2329 if (UNTAG_Bool(REGB2
)) {
2331 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2332 if (UNTAG_Bool(REGB1
)) {
2333 REGB1
= TAG_Bool(0);
2336 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2340 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2341 if (UNTAG_Bool(REGB2
)) {
2342 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2343 if (UNTAG_Bool(REGB2
)) {
2344 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 343);
2346 /* ../lib/standard/collection/array.nit:269 */
2348 /* ../lib/standard/collection/array.nit:270 */
2349 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2350 if (UNTAG_Bool(REGB1
)) {
2352 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
2354 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2355 /* ../lib/standard/collection/array.nit:271 */
2356 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[6]);
2357 /* ../lib/standard/collection/array.nit:272 */
2359 /* ../lib/standard/collection/array.nit:24 */
2360 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
2361 if (UNTAG_Bool(REGB1
)) {
2363 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2365 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
2366 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
2367 if (UNTAG_Bool(REGB0
)) {
2369 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2371 /* ../lib/standard/kernel.nit:235 */
2372 REGB1
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
2373 /* ../lib/standard/collection/array.nit:272 */
2374 if (UNTAG_Bool(REGB1
)) {
2375 /* ../lib/standard/collection/array.nit:273 */
2376 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
2377 if (UNTAG_Bool(REGB1
)) {
2378 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
2380 /* ../lib/standard/collection/array.nit:724 */
2381 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB2
)];
2382 /* syntax/typing.nit:344 */
2383 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
2384 /* ../lib/standard/collection/array.nit:274 */
2386 /* ../lib/standard/kernel.nit:238 */
2387 REGB1
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB1
));
2388 /* ../lib/standard/collection/array.nit:274 */
2391 /* ../lib/standard/collection/array.nit:272 */
2397 /* syntax/typing.nit:347 */
2398 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2399 /* syntax/typing.nit:348 */
2400 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2401 /* syntax/typing.nit:349 */
2402 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2403 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2404 stack_frame_head
= fra
.me
.prev
;
2407 static const char LOCATE_syntax___typing___AType___stype
[] = "typing::AType::(syntax_base::AType::stype)";
2408 val_t
syntax___typing___AType___stype(val_t p0
){
2409 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2412 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2413 fra
.me
.file
= LOCATE_syntax___typing
;
2415 fra
.me
.meth
= LOCATE_syntax___typing___AType___stype
;
2416 fra
.me
.has_broke
= 0;
2417 fra
.me
.REG_size
= 2;
2418 fra
.me
.nitni_local_ref_head
= NULL
;
2419 fra
.me
.REG
[0] = NIT_NULL
;
2420 fra
.me
.REG
[1] = NIT_NULL
;
2422 /* syntax/typing.nit:354 */
2423 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2424 fra
.me
.REG
[1] = ATTR_syntax___typing___AType____stype(fra
.me
.REG
[1]);
2425 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2426 if (UNTAG_Bool(REGB0
)) {
2428 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 354);
2432 stack_frame_head
= fra
.me
.prev
;
2433 return fra
.me
.REG
[1];
2435 static const char LOCATE_syntax___typing___AType___is_typed
[] = "typing::AType::(syntax_base::AType::is_typed)";
2436 val_t
syntax___typing___AType___is_typed(val_t p0
){
2437 struct {struct stack_frame_t me
;} fra
;
2441 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2442 fra
.me
.file
= LOCATE_syntax___typing
;
2444 fra
.me
.meth
= LOCATE_syntax___typing___AType___is_typed
;
2445 fra
.me
.has_broke
= 0;
2446 fra
.me
.REG_size
= 1;
2447 fra
.me
.nitni_local_ref_head
= NULL
;
2448 fra
.me
.REG
[0] = NIT_NULL
;
2450 /* syntax/typing.nit:355 */
2451 fra
.me
.REG
[0] = ATTR_syntax___typing___AType____stype(fra
.me
.REG
[0]);
2452 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2453 if (UNTAG_Bool(REGB0
)) {
2455 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2456 if (UNTAG_Bool(REGB1
)) {
2457 REGB1
= TAG_Bool(0);
2460 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2464 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2467 stack_frame_head
= fra
.me
.prev
;
2470 static const char LOCATE_syntax___typing___AType___after_typing
[] = "typing::AType::(typing::ANode::after_typing)";
2471 void syntax___typing___AType___after_typing(val_t p0
, val_t p1
){
2472 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2474 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2475 fra
.me
.file
= LOCATE_syntax___typing
;
2477 fra
.me
.meth
= LOCATE_syntax___typing___AType___after_typing
;
2478 fra
.me
.has_broke
= 0;
2479 fra
.me
.REG_size
= 2;
2480 fra
.me
.nitni_local_ref_head
= NULL
;
2481 fra
.me
.REG
[0] = NIT_NULL
;
2482 fra
.me
.REG
[1] = NIT_NULL
;
2485 /* syntax/typing.nit:360 */
2486 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AType___get_stype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2487 ATTR_syntax___typing___AType____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
2488 stack_frame_head
= fra
.me
.prev
;
2491 static const char LOCATE_syntax___typing___AExpr___is_typed
[] = "typing::AExpr::(syntax_base::AExpr::is_typed)";
2492 val_t
syntax___typing___AExpr___is_typed(val_t p0
){
2493 struct {struct stack_frame_t me
;} fra
;
2496 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2497 fra
.me
.file
= LOCATE_syntax___typing
;
2499 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_typed
;
2500 fra
.me
.has_broke
= 0;
2501 fra
.me
.REG_size
= 1;
2502 fra
.me
.nitni_local_ref_head
= NULL
;
2503 fra
.me
.REG
[0] = NIT_NULL
;
2505 /* syntax/typing.nit:365 */
2506 REGB0
= TAG_Bool(ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0])!=NIT_NULL
);
2507 if (UNTAG_Bool(REGB0
)) {
2509 nit_abort("Uninitialized attribute %s", "_is_typed", LOCATE_syntax___typing
, 365);
2511 REGB0
= ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]);
2512 stack_frame_head
= fra
.me
.prev
;
2515 static const char LOCATE_syntax___typing___AExpr___is_statement
[] = "typing::AExpr::(syntax_base::AExpr::is_statement)";
2516 val_t
syntax___typing___AExpr___is_statement(val_t p0
){
2517 struct {struct stack_frame_t me
;} fra
;
2521 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2522 fra
.me
.file
= LOCATE_syntax___typing
;
2524 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_statement
;
2525 fra
.me
.has_broke
= 0;
2526 fra
.me
.REG_size
= 1;
2527 fra
.me
.nitni_local_ref_head
= NULL
;
2528 fra
.me
.REG
[0] = NIT_NULL
;
2530 /* syntax/typing.nit:366 */
2531 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
2532 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2533 if (UNTAG_Bool(REGB0
)) {
2535 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2536 if (UNTAG_Bool(REGB1
)) {
2537 REGB1
= TAG_Bool(0);
2540 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2546 stack_frame_head
= fra
.me
.prev
;
2549 static const char LOCATE_syntax___typing___AExpr___stype
[] = "typing::AExpr::(syntax_base::AExpr::stype)";
2550 val_t
syntax___typing___AExpr___stype(val_t p0
){
2551 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2554 static val_t once_value_1
; /* Once value */
2555 static val_t once_value_2
; /* Once value */
2556 static val_t once_value_3
; /* Once value */
2557 static val_t once_value_4
; /* Once value */
2558 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2559 fra
.me
.file
= LOCATE_syntax___typing
;
2561 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___stype
;
2562 fra
.me
.has_broke
= 0;
2563 fra
.me
.REG_size
= 4;
2564 fra
.me
.nitni_local_ref_head
= NULL
;
2565 fra
.me
.REG
[0] = NIT_NULL
;
2566 fra
.me
.REG
[1] = NIT_NULL
;
2567 fra
.me
.REG
[2] = NIT_NULL
;
2568 fra
.me
.REG
[3] = NIT_NULL
;
2570 /* syntax/typing.nit:367 */
2571 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2572 /* syntax/typing.nit:369 */
2573 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2574 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2575 if (UNTAG_Bool(REGB0
)) {
2576 /* syntax/typing.nit:370 */
2578 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2579 if (!once_value_1
) {
2580 fra
.me
.REG
[3] = BOX_NativeString("");
2582 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2583 once_value_1
= fra
.me
.REG
[3];
2584 register_static_object(&once_value_1
);
2585 } else fra
.me
.REG
[3] = once_value_1
;
2586 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2587 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2588 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2589 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2590 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2591 if (!once_value_2
) {
2592 fra
.me
.REG
[3] = BOX_NativeString(": not is_typed");
2593 REGB0
= TAG_Int(14);
2594 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2595 once_value_2
= fra
.me
.REG
[3];
2596 register_static_object(&once_value_2
);
2597 } else fra
.me
.REG
[3] = once_value_2
;
2598 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2599 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2600 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2601 CALL_standard___file___Object___print(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2602 /* syntax/typing.nit:371 */
2603 nit_abort("Aborted", NULL
, LOCATE_syntax___typing
, 371);
2605 /* syntax/typing.nit:373 */
2606 REGB0
= CALL_syntax___syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2607 if (UNTAG_Bool(REGB0
)) {
2608 /* syntax/typing.nit:374 */
2610 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2611 if (!once_value_3
) {
2612 fra
.me
.REG
[3] = BOX_NativeString("");
2614 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2615 once_value_3
= fra
.me
.REG
[3];
2616 register_static_object(&once_value_3
);
2617 } else fra
.me
.REG
[3] = once_value_3
;
2618 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2619 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2620 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2621 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2622 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2623 if (!once_value_4
) {
2624 fra
.me
.REG
[3] = BOX_NativeString(": is_statement");
2625 REGB0
= TAG_Int(14);
2626 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
2627 once_value_4
= fra
.me
.REG
[3];
2628 register_static_object(&once_value_4
);
2629 } else fra
.me
.REG
[3] = once_value_4
;
2630 fra
.me
.REG
[3] = fra
.me
.REG
[3];
2631 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2632 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2633 CALL_standard___file___Object___print(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2634 /* syntax/typing.nit:375 */
2635 nit_abort("Aborted", NULL
, LOCATE_syntax___typing
, 375);
2637 /* syntax/typing.nit:377 */
2638 fra
.me
.REG
[1] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[1]);
2639 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2640 if (UNTAG_Bool(REGB0
)) {
2642 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 377);
2646 stack_frame_head
= fra
.me
.prev
;
2647 return fra
.me
.REG
[1];
2649 static const char LOCATE_syntax___typing___AExpr___after_typing
[] = "typing::AExpr::(typing::ANode::after_typing)";
2650 void syntax___typing___AExpr___after_typing(val_t p0
, val_t p1
){
2651 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2654 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2655 fra
.me
.file
= LOCATE_syntax___typing
;
2657 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___after_typing
;
2658 fra
.me
.has_broke
= 0;
2659 fra
.me
.REG_size
= 2;
2660 fra
.me
.nitni_local_ref_head
= NULL
;
2661 fra
.me
.REG
[0] = NIT_NULL
;
2662 fra
.me
.REG
[1] = NIT_NULL
;
2665 /* syntax/typing.nit:384 */
2666 REGB0
= TAG_Bool(1);
2667 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
2668 stack_frame_head
= fra
.me
.prev
;
2671 static const char LOCATE_syntax___typing___AExpr___is_implicit_self
[] = "typing::AExpr::is_implicit_self";
2672 val_t
syntax___typing___AExpr___is_implicit_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_implicit_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:388 */
2686 REGB0
= TAG_Bool(0);
2689 stack_frame_head
= fra
.me
.prev
;
2692 static const char LOCATE_syntax___typing___AExpr___is_self
[] = "typing::AExpr::is_self";
2693 val_t
syntax___typing___AExpr___is_self(val_t p0
){
2694 struct {struct stack_frame_t me
;} fra
;
2697 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2698 fra
.me
.file
= LOCATE_syntax___typing
;
2700 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___is_self
;
2701 fra
.me
.has_broke
= 0;
2702 fra
.me
.REG_size
= 1;
2703 fra
.me
.nitni_local_ref_head
= NULL
;
2704 fra
.me
.REG
[0] = NIT_NULL
;
2706 /* syntax/typing.nit:391 */
2707 REGB0
= TAG_Bool(0);
2710 stack_frame_head
= fra
.me
.prev
;
2713 static const char LOCATE_syntax___typing___AExpr___its_variable
[] = "typing::AExpr::its_variable";
2714 val_t
syntax___typing___AExpr___its_variable(val_t p0
){
2715 struct {struct stack_frame_t me
;} fra
;
2717 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2718 fra
.me
.file
= LOCATE_syntax___typing
;
2720 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___its_variable
;
2721 fra
.me
.has_broke
= 0;
2722 fra
.me
.REG_size
= 1;
2723 fra
.me
.nitni_local_ref_head
= NULL
;
2724 fra
.me
.REG
[0] = NIT_NULL
;
2726 /* syntax/typing.nit:394 */
2727 fra
.me
.REG
[0] = NIT_NULL
;
2730 stack_frame_head
= fra
.me
.prev
;
2731 return fra
.me
.REG
[0];
2733 static const char LOCATE_syntax___typing___AExpr___if_true_flow_ctx
[] = "typing::AExpr::if_true_flow_ctx";
2734 val_t
syntax___typing___AExpr___if_true_flow_ctx(val_t p0
){
2735 struct {struct stack_frame_t me
;} fra
;
2737 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2738 fra
.me
.file
= LOCATE_syntax___typing
;
2740 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___if_true_flow_ctx
;
2741 fra
.me
.has_broke
= 0;
2742 fra
.me
.REG_size
= 1;
2743 fra
.me
.nitni_local_ref_head
= NULL
;
2744 fra
.me
.REG
[0] = NIT_NULL
;
2746 /* syntax/typing.nit:396 */
2747 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]);
2748 stack_frame_head
= fra
.me
.prev
;
2749 return fra
.me
.REG
[0];
2751 static const char LOCATE_syntax___typing___AExpr___if_false_flow_ctx
[] = "typing::AExpr::if_false_flow_ctx";
2752 val_t
syntax___typing___AExpr___if_false_flow_ctx(val_t p0
){
2753 struct {struct stack_frame_t me
;} fra
;
2755 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2756 fra
.me
.file
= LOCATE_syntax___typing
;
2758 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___if_false_flow_ctx
;
2759 fra
.me
.has_broke
= 0;
2760 fra
.me
.REG_size
= 1;
2761 fra
.me
.nitni_local_ref_head
= NULL
;
2762 fra
.me
.REG
[0] = NIT_NULL
;
2764 /* syntax/typing.nit:399 */
2765 fra
.me
.REG
[0] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]);
2766 stack_frame_head
= fra
.me
.prev
;
2767 return fra
.me
.REG
[0];
2769 static const char LOCATE_syntax___typing___AExpr___warn_parentheses
[] = "typing::AExpr::warn_parentheses";
2770 void syntax___typing___AExpr___warn_parentheses(val_t p0
, val_t p1
){
2771 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2773 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2774 fra
.me
.file
= LOCATE_syntax___typing
;
2776 fra
.me
.meth
= LOCATE_syntax___typing___AExpr___warn_parentheses
;
2777 fra
.me
.has_broke
= 0;
2778 fra
.me
.REG_size
= 2;
2779 fra
.me
.nitni_local_ref_head
= NULL
;
2780 fra
.me
.REG
[0] = NIT_NULL
;
2781 fra
.me
.REG
[1] = NIT_NULL
;
2784 stack_frame_head
= fra
.me
.prev
;
2787 static const char LOCATE_syntax___typing___AParExpr___warn_parentheses
[] = "typing::AParExpr::(typing::AExpr::warn_parentheses)";
2788 void syntax___typing___AParExpr___warn_parentheses(val_t p0
, val_t p1
){
2789 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2792 static val_t once_value_1
; /* Once value */
2793 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2794 fra
.me
.file
= LOCATE_syntax___typing
;
2796 fra
.me
.meth
= LOCATE_syntax___typing___AParExpr___warn_parentheses
;
2797 fra
.me
.has_broke
= 0;
2798 fra
.me
.REG_size
= 3;
2799 fra
.me
.nitni_local_ref_head
= NULL
;
2800 fra
.me
.REG
[0] = NIT_NULL
;
2801 fra
.me
.REG
[1] = NIT_NULL
;
2802 fra
.me
.REG
[2] = NIT_NULL
;
2805 /* syntax/typing.nit:411 */
2806 if (!once_value_1
) {
2807 fra
.me
.REG
[2] = BOX_NativeString("Warning: superfluous parentheses.");
2808 REGB0
= TAG_Int(33);
2809 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2810 once_value_1
= fra
.me
.REG
[2];
2811 register_static_object(&once_value_1
);
2812 } else fra
.me
.REG
[2] = once_value_1
;
2813 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2814 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2815 stack_frame_head
= fra
.me
.prev
;
2818 static const char LOCATE_syntax___typing___AParExprs___after_typing
[] = "typing::AParExprs::(typing::ANode::after_typing)";
2819 void syntax___typing___AParExprs___after_typing(val_t p0
, val_t p1
){
2820 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2823 static val_t once_value_1
; /* Once value */
2824 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2825 fra
.me
.file
= LOCATE_syntax___typing
;
2827 fra
.me
.meth
= LOCATE_syntax___typing___AParExprs___after_typing
;
2828 fra
.me
.has_broke
= 0;
2829 fra
.me
.REG_size
= 3;
2830 fra
.me
.nitni_local_ref_head
= NULL
;
2831 fra
.me
.REG
[0] = NIT_NULL
;
2832 fra
.me
.REG
[1] = NIT_NULL
;
2833 fra
.me
.REG
[2] = NIT_NULL
;
2836 /* syntax/typing.nit:418 */
2837 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2838 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2839 if (UNTAG_Bool(REGB0
)) {
2840 /* syntax/typing.nit:419 */
2841 if (!once_value_1
) {
2842 fra
.me
.REG
[2] = BOX_NativeString("Warning: superfluous parentheses.");
2843 REGB0
= TAG_Int(33);
2844 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
2845 once_value_1
= fra
.me
.REG
[2];
2846 register_static_object(&once_value_1
);
2847 } else fra
.me
.REG
[2] = once_value_1
;
2848 fra
.me
.REG
[2] = fra
.me
.REG
[2];
2849 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2851 stack_frame_head
= fra
.me
.prev
;
2854 static const char LOCATE_syntax___typing___AVardeclExpr___variable
[] = "typing::AVardeclExpr::(syntax_base::AVardeclExpr::variable)";
2855 val_t
syntax___typing___AVardeclExpr___variable(val_t p0
){
2856 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2859 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2860 fra
.me
.file
= LOCATE_syntax___typing
;
2862 fra
.me
.meth
= LOCATE_syntax___typing___AVardeclExpr___variable
;
2863 fra
.me
.has_broke
= 0;
2864 fra
.me
.REG_size
= 2;
2865 fra
.me
.nitni_local_ref_head
= NULL
;
2866 fra
.me
.REG
[0] = NIT_NULL
;
2867 fra
.me
.REG
[1] = NIT_NULL
;
2869 /* syntax/typing.nit:426 */
2870 fra
.me
.REG
[1] = fra
.me
.REG
[0];
2871 fra
.me
.REG
[1] = ATTR_syntax___typing___AVardeclExpr____variable(fra
.me
.REG
[1]);
2872 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
2873 if (UNTAG_Bool(REGB0
)) {
2875 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 426);
2879 stack_frame_head
= fra
.me
.prev
;
2880 return fra
.me
.REG
[1];
2882 static const char LOCATE_syntax___typing___AVardeclExpr___after_typing
[] = "typing::AVardeclExpr::(typing::ANode::after_typing)";
2883 void syntax___typing___AVardeclExpr___after_typing(val_t p0
, val_t p1
){
2884 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2888 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2889 fra
.me
.file
= LOCATE_syntax___typing
;
2891 fra
.me
.meth
= LOCATE_syntax___typing___AVardeclExpr___after_typing
;
2892 fra
.me
.has_broke
= 0;
2893 fra
.me
.REG_size
= 5;
2894 fra
.me
.nitni_local_ref_head
= NULL
;
2895 fra
.me
.REG
[0] = NIT_NULL
;
2896 fra
.me
.REG
[1] = NIT_NULL
;
2897 fra
.me
.REG
[2] = NIT_NULL
;
2898 fra
.me
.REG
[3] = NIT_NULL
;
2899 fra
.me
.REG
[4] = NIT_NULL
;
2902 /* syntax/typing.nit:430 */
2903 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2904 fra
.me
.REG
[2] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2905 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AVardeclExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2906 fra
.me
.REG
[3] = NEW_VarVariable_syntax___syntax_base___VarVariable___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2907 /* syntax/typing.nit:431 */
2908 ATTR_syntax___typing___AVardeclExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
2909 /* syntax/typing.nit:432 */
2910 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2911 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2912 /* syntax/typing.nit:433 */
2913 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2914 /* syntax/typing.nit:434 */
2915 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2916 if (UNTAG_Bool(REGB0
)) {
2918 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2919 if (UNTAG_Bool(REGB1
)) {
2920 REGB1
= TAG_Bool(0);
2923 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2927 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2928 if (UNTAG_Bool(REGB0
)) {
2929 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2931 /* syntax/typing.nit:436 */
2932 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2933 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2934 if (UNTAG_Bool(REGB0
)) {
2936 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2937 if (UNTAG_Bool(REGB1
)) {
2938 REGB1
= TAG_Bool(0);
2941 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2945 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2946 if (UNTAG_Bool(REGB0
)) {
2947 /* syntax/typing.nit:437 */
2948 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2949 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2950 if (UNTAG_Bool(REGB0
)) {
2951 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 437);
2953 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2954 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2955 if (UNTAG_Bool(REGB0
)) {
2958 /* syntax/typing.nit:438 */
2959 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AVardeclExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2960 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2961 if (UNTAG_Bool(REGB0
)) {
2962 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 438);
2964 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2965 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2966 /* syntax/typing.nit:439 */
2967 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2968 if (UNTAG_Bool(REGB0
)) {
2970 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2971 if (UNTAG_Bool(REGB1
)) {
2972 REGB1
= TAG_Bool(0);
2975 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2979 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2980 if (UNTAG_Bool(REGB0
)) {
2981 /* syntax/typing.nit:440 */
2982 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2983 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
2986 /* syntax/typing.nit:442 */
2987 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2988 if (UNTAG_Bool(REGB0
)) {
2990 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2991 if (UNTAG_Bool(REGB1
)) {
2992 REGB1
= TAG_Bool(0);
2995 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2999 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3000 if (UNTAG_Bool(REGB0
)) {
3001 /* syntax/typing.nit:443 */
3002 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3003 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3004 if (UNTAG_Bool(REGB0
)) {
3007 /* syntax/typing.nit:444 */
3008 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3009 if (UNTAG_Bool(REGB0
)) {
3010 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 444);
3012 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3013 /* syntax/typing.nit:445 */
3014 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
3015 if (UNTAG_Bool(REGB0
)) {
3016 /* syntax/typing.nit:446 */
3017 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3018 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3019 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
3020 /* syntax/typing.nit:447 */
3021 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3022 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]);
3023 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3025 /* syntax/typing.nit:449 */
3026 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3029 /* syntax/typing.nit:452 */
3030 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3031 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3032 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3035 /* syntax/typing.nit:454 */
3036 REGB0
= TAG_Bool(1);
3037 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3039 stack_frame_head
= fra
.me
.prev
;
3042 static const char LOCATE_syntax___typing___ABlockExpr___accept_typing
[] = "typing::ABlockExpr::(typing::ANode::accept_typing)";
3043 void syntax___typing___ABlockExpr___accept_typing(val_t p0
, val_t p1
){
3044 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3047 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3048 fra
.me
.file
= LOCATE_syntax___typing
;
3050 fra
.me
.meth
= LOCATE_syntax___typing___ABlockExpr___accept_typing
;
3051 fra
.me
.has_broke
= 0;
3052 fra
.me
.REG_size
= 3;
3053 fra
.me
.nitni_local_ref_head
= NULL
;
3054 fra
.me
.REG
[0] = NIT_NULL
;
3055 fra
.me
.REG
[1] = NIT_NULL
;
3056 fra
.me
.REG
[2] = NIT_NULL
;
3059 /* syntax/typing.nit:461 */
3060 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3061 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
));
3062 /* syntax/typing.nit:470 */
3063 REGB0
= TAG_Bool(1);
3064 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3065 stack_frame_head
= fra
.me
.prev
;
3068 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
){
3069 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3073 static val_t once_value_2
; /* Once value */
3074 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3075 fra
.me
.file
= LOCATE_syntax___typing
;
3077 fra
.me
.meth
= LOCATE_syntax___typing___ABlockExpr___accept_typing
;
3078 fra
.me
.has_broke
= 0;
3079 fra
.me
.REG_size
= 2;
3080 fra
.me
.nitni_local_ref_head
= NULL
;
3081 fra
.me
.REG
[0] = NIT_NULL
;
3082 fra
.me
.REG
[1] = NIT_NULL
;
3083 fra
.me
.closure_ctx
= closctx_param
;
3084 fra
.me
.closure_funs
= CREG
;
3086 CREG
[0] = clos_fun0
;
3087 /* syntax/typing.nit:462 */
3088 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
3089 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3090 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3091 if (UNTAG_Bool(REGB0
)) {
3092 /* syntax/typing.nit:463 */
3093 CALL_parser___parser_prod___Visitor___enter_visit(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
3095 /* syntax/typing.nit:464 */
3096 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
3097 REGB0
= CALL_syntax___flow___FlowContext___already_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3098 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3099 if (UNTAG_Bool(REGB0
)) {
3100 /* syntax/typing.nit:465 */
3101 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
3102 REGB0
= TAG_Bool(1);
3103 CALL_syntax___flow___FlowContext___already_unreash__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
3104 /* syntax/typing.nit:466 */
3105 if (!once_value_2
) {
3106 fra
.me
.REG
[1] = BOX_NativeString("Error: unreachable statement.");
3107 REGB0
= TAG_Int(29);
3108 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
3109 once_value_2
= fra
.me
.REG
[1];
3110 register_static_object(&once_value_2
);
3111 } else fra
.me
.REG
[1] = once_value_2
;
3112 fra
.me
.REG
[1] = fra
.me
.REG
[1];
3113 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[1]);
3116 stack_frame_head
= fra
.me
.prev
;
3119 static const char LOCATE_syntax___typing___AReturnExpr___after_typing
[] = "typing::AReturnExpr::(typing::ANode::after_typing)";
3120 void syntax___typing___AReturnExpr___after_typing(val_t p0
, val_t p1
){
3121 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3125 static val_t once_value_1
; /* Once value */
3126 static val_t once_value_3
; /* Once value */
3127 static val_t once_value_4
; /* Once value */
3128 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3129 fra
.me
.file
= LOCATE_syntax___typing
;
3131 fra
.me
.meth
= LOCATE_syntax___typing___AReturnExpr___after_typing
;
3132 fra
.me
.has_broke
= 0;
3133 fra
.me
.REG_size
= 5;
3134 fra
.me
.nitni_local_ref_head
= NULL
;
3135 fra
.me
.REG
[0] = NIT_NULL
;
3136 fra
.me
.REG
[1] = NIT_NULL
;
3137 fra
.me
.REG
[2] = NIT_NULL
;
3138 fra
.me
.REG
[3] = NIT_NULL
;
3139 fra
.me
.REG
[4] = NIT_NULL
;
3142 /* syntax/typing.nit:477 */
3143 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3144 /* syntax/typing.nit:478 */
3145 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3146 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3147 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3148 if (UNTAG_Bool(REGB0
)) {
3149 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 478);
3151 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3152 /* syntax/typing.nit:480 */
3153 REGB0
= CALL_syntax___typing___TypingVisitor___is_default_closure_definition(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3154 if (UNTAG_Bool(REGB0
)) {
3155 /* syntax/typing.nit:481 */
3156 if (!once_value_1
) {
3157 fra
.me
.REG
[3] = BOX_NativeString("Error: 'return' invalid in default closure definitions. Use 'continue' or 'break'.");
3158 REGB0
= TAG_Int(82);
3159 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3160 once_value_1
= fra
.me
.REG
[3];
3161 register_static_object(&once_value_1
);
3162 } else fra
.me
.REG
[3] = once_value_1
;
3163 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3164 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3165 /* syntax/typing.nit:482 */
3168 /* syntax/typing.nit:485 */
3169 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3170 /* syntax/typing.nit:486 */
3171 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3172 if (UNTAG_Bool(REGB0
)) {
3174 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3175 if (UNTAG_Bool(REGB1
)) {
3176 REGB1
= TAG_Bool(0);
3179 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3183 if (UNTAG_Bool(REGB0
)) {
3184 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3185 if (UNTAG_Bool(REGB0
)) {
3187 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3188 if (UNTAG_Bool(REGB1
)) {
3189 REGB1
= TAG_Bool(0);
3192 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3196 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3198 REGB1
= TAG_Bool(0);
3201 if (UNTAG_Bool(REGB0
)) {
3202 /* syntax/typing.nit:487 */
3203 if (!once_value_3
) {
3204 fra
.me
.REG
[4] = BOX_NativeString("Error: Return without value in a function.");
3205 REGB0
= TAG_Int(42);
3206 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3207 once_value_3
= fra
.me
.REG
[4];
3208 register_static_object(&once_value_3
);
3209 } else fra
.me
.REG
[4] = once_value_3
;
3210 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3211 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3213 /* syntax/typing.nit:488 */
3214 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3215 if (UNTAG_Bool(REGB0
)) {
3217 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3218 if (UNTAG_Bool(REGB1
)) {
3219 REGB1
= TAG_Bool(0);
3222 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3226 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3227 if (UNTAG_Bool(REGB0
)) {
3228 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3229 if (UNTAG_Bool(REGB0
)) {
3231 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3232 if (UNTAG_Bool(REGB1
)) {
3233 REGB1
= TAG_Bool(0);
3236 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3241 REGB1
= TAG_Bool(0);
3244 if (UNTAG_Bool(REGB0
)) {
3245 /* syntax/typing.nit:489 */
3246 if (!once_value_4
) {
3247 fra
.me
.REG
[4] = BOX_NativeString("Error: Return with value in a procedure.");
3248 REGB0
= TAG_Int(40);
3249 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3250 once_value_4
= fra
.me
.REG
[4];
3251 register_static_object(&once_value_4
);
3252 } else fra
.me
.REG
[4] = once_value_4
;
3253 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3254 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3256 /* syntax/typing.nit:490 */
3257 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3258 if (UNTAG_Bool(REGB0
)) {
3260 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3261 if (UNTAG_Bool(REGB1
)) {
3262 REGB1
= TAG_Bool(0);
3265 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3269 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3270 if (UNTAG_Bool(REGB0
)) {
3271 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3272 if (UNTAG_Bool(REGB0
)) {
3274 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3275 if (UNTAG_Bool(REGB1
)) {
3276 REGB1
= TAG_Bool(0);
3279 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3283 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3285 REGB1
= TAG_Bool(0);
3288 if (UNTAG_Bool(REGB0
)) {
3289 /* syntax/typing.nit:491 */
3290 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3294 /* syntax/typing.nit:493 */
3295 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3296 if (UNTAG_Bool(REGB0
)) {
3298 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3299 if (UNTAG_Bool(REGB1
)) {
3300 REGB1
= TAG_Bool(0);
3303 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3307 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3308 if (UNTAG_Bool(REGB0
)) {
3309 /* syntax/typing.nit:494 */
3310 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3311 if (UNTAG_Bool(REGB0
)) {
3312 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 494);
3314 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3316 /* syntax/typing.nit:496 */
3317 REGB0
= TAG_Bool(1);
3318 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3320 stack_frame_head
= fra
.me
.prev
;
3323 static const char LOCATE_syntax___typing___AContinueExpr___after_typing
[] = "typing::AContinueExpr::(typing::ANode::after_typing)";
3324 void syntax___typing___AContinueExpr___after_typing(val_t p0
, val_t p1
){
3325 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3329 static val_t once_value_2
; /* Once value */
3330 static val_t once_value_3
; /* Once value */
3331 static val_t once_value_4
; /* Once value */
3332 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3333 fra
.me
.file
= LOCATE_syntax___typing
;
3335 fra
.me
.meth
= LOCATE_syntax___typing___AContinueExpr___after_typing
;
3336 fra
.me
.has_broke
= 0;
3337 fra
.me
.REG_size
= 5;
3338 fra
.me
.nitni_local_ref_head
= NULL
;
3339 fra
.me
.REG
[0] = NIT_NULL
;
3340 fra
.me
.REG
[1] = NIT_NULL
;
3341 fra
.me
.REG
[2] = NIT_NULL
;
3342 fra
.me
.REG
[3] = NIT_NULL
;
3343 fra
.me
.REG
[4] = NIT_NULL
;
3346 /* syntax/typing.nit:503 */
3347 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3348 /* syntax/typing.nit:504 */
3349 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3350 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
3351 /* syntax/typing.nit:505 */
3352 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3353 if (UNTAG_Bool(REGB0
)) {
3355 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3356 if (UNTAG_Bool(REGB1
)) {
3357 REGB1
= TAG_Bool(0);
3360 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3364 if (UNTAG_Bool(REGB0
)) {
3367 /* syntax/typing.nit:507 */
3368 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3369 if (UNTAG_Bool(REGB0
)) {
3370 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 507);
3372 REGB0
= CALL_syntax___scope___EscapableBlock___is_break_block(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3373 if (UNTAG_Bool(REGB0
)) {
3374 /* syntax/typing.nit:508 */
3375 if (!once_value_2
) {
3376 fra
.me
.REG
[3] = BOX_NativeString("Error: cannot 'continue', only 'break'.");
3377 REGB0
= TAG_Int(39);
3378 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3379 once_value_2
= fra
.me
.REG
[3];
3380 register_static_object(&once_value_2
);
3381 } else fra
.me
.REG
[3] = once_value_2
;
3382 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3383 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3384 /* syntax/typing.nit:509 */
3387 /* syntax/typing.nit:512 */
3388 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3389 if (UNTAG_Bool(REGB0
)) {
3390 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 512);
3392 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___continue_stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3393 /* syntax/typing.nit:513 */
3394 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3395 /* syntax/typing.nit:514 */
3396 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3397 if (UNTAG_Bool(REGB0
)) {
3399 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3400 if (UNTAG_Bool(REGB1
)) {
3401 REGB1
= TAG_Bool(0);
3404 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3408 if (UNTAG_Bool(REGB0
)) {
3409 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3410 if (UNTAG_Bool(REGB0
)) {
3412 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3413 if (UNTAG_Bool(REGB1
)) {
3414 REGB1
= TAG_Bool(0);
3417 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3421 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3423 REGB1
= TAG_Bool(0);
3426 if (UNTAG_Bool(REGB0
)) {
3427 /* syntax/typing.nit:515 */
3428 if (!once_value_3
) {
3429 fra
.me
.REG
[4] = BOX_NativeString("Error: continue with a value required in this block.");
3430 REGB0
= TAG_Int(52);
3431 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3432 once_value_3
= fra
.me
.REG
[4];
3433 register_static_object(&once_value_3
);
3434 } else fra
.me
.REG
[4] = once_value_3
;
3435 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3436 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3438 /* syntax/typing.nit:516 */
3439 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3440 if (UNTAG_Bool(REGB0
)) {
3442 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3443 if (UNTAG_Bool(REGB1
)) {
3444 REGB1
= TAG_Bool(0);
3447 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3451 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3452 if (UNTAG_Bool(REGB0
)) {
3453 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3454 if (UNTAG_Bool(REGB0
)) {
3456 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3457 if (UNTAG_Bool(REGB1
)) {
3458 REGB1
= TAG_Bool(0);
3461 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3466 REGB1
= TAG_Bool(0);
3469 if (UNTAG_Bool(REGB0
)) {
3470 /* syntax/typing.nit:517 */
3471 if (!once_value_4
) {
3472 fra
.me
.REG
[4] = BOX_NativeString("Error: continue without value required in this block.");
3473 REGB0
= TAG_Int(53);
3474 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3475 once_value_4
= fra
.me
.REG
[4];
3476 register_static_object(&once_value_4
);
3477 } else fra
.me
.REG
[4] = once_value_4
;
3478 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3479 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3481 /* syntax/typing.nit:518 */
3482 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3483 if (UNTAG_Bool(REGB0
)) {
3485 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3486 if (UNTAG_Bool(REGB1
)) {
3487 REGB1
= TAG_Bool(0);
3490 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3494 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3495 if (UNTAG_Bool(REGB0
)) {
3496 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3497 if (UNTAG_Bool(REGB0
)) {
3499 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3500 if (UNTAG_Bool(REGB1
)) {
3501 REGB1
= TAG_Bool(0);
3504 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3508 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3510 REGB1
= TAG_Bool(0);
3513 if (UNTAG_Bool(REGB0
)) {
3514 /* syntax/typing.nit:519 */
3515 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3519 /* syntax/typing.nit:521 */
3520 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3521 if (UNTAG_Bool(REGB0
)) {
3523 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3524 if (UNTAG_Bool(REGB1
)) {
3525 REGB1
= TAG_Bool(0);
3528 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3532 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3533 if (UNTAG_Bool(REGB0
)) {
3534 /* syntax/typing.nit:522 */
3535 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3536 if (UNTAG_Bool(REGB0
)) {
3537 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 522);
3539 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3541 /* syntax/typing.nit:524 */
3542 REGB0
= TAG_Bool(1);
3543 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3545 stack_frame_head
= fra
.me
.prev
;
3548 static const char LOCATE_syntax___typing___ABreakExpr___after_typing
[] = "typing::ABreakExpr::(typing::ANode::after_typing)";
3549 void syntax___typing___ABreakExpr___after_typing(val_t p0
, val_t p1
){
3550 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3554 static val_t once_value_2
; /* Once value */
3555 static val_t once_value_3
; /* Once value */
3556 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3557 fra
.me
.file
= LOCATE_syntax___typing
;
3559 fra
.me
.meth
= LOCATE_syntax___typing___ABreakExpr___after_typing
;
3560 fra
.me
.has_broke
= 0;
3561 fra
.me
.REG_size
= 5;
3562 fra
.me
.nitni_local_ref_head
= NULL
;
3563 fra
.me
.REG
[0] = NIT_NULL
;
3564 fra
.me
.REG
[1] = NIT_NULL
;
3565 fra
.me
.REG
[2] = NIT_NULL
;
3566 fra
.me
.REG
[3] = NIT_NULL
;
3567 fra
.me
.REG
[4] = NIT_NULL
;
3570 /* syntax/typing.nit:531 */
3571 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3572 /* syntax/typing.nit:532 */
3573 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3574 /* syntax/typing.nit:533 */
3575 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3576 fra
.me
.REG
[3] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
3577 /* syntax/typing.nit:534 */
3578 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3579 if (UNTAG_Bool(REGB0
)) {
3581 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3582 if (UNTAG_Bool(REGB1
)) {
3583 REGB1
= TAG_Bool(0);
3586 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3590 if (UNTAG_Bool(REGB0
)) {
3593 /* syntax/typing.nit:536 */
3594 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3595 if (UNTAG_Bool(REGB0
)) {
3596 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 536);
3598 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3599 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3600 /* syntax/typing.nit:538 */
3601 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3602 if (UNTAG_Bool(REGB0
)) {
3603 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 538);
3605 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3606 /* syntax/typing.nit:539 */
3607 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3608 /* syntax/typing.nit:540 */
3609 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3610 if (UNTAG_Bool(REGB0
)) {
3612 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3613 if (UNTAG_Bool(REGB1
)) {
3614 REGB1
= TAG_Bool(0);
3617 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3621 if (UNTAG_Bool(REGB0
)) {
3622 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3623 if (UNTAG_Bool(REGB0
)) {
3625 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3626 if (UNTAG_Bool(REGB1
)) {
3627 REGB1
= TAG_Bool(0);
3630 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3634 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3636 REGB1
= TAG_Bool(0);
3639 if (UNTAG_Bool(REGB0
)) {
3640 /* syntax/typing.nit:541 */
3641 if (!once_value_2
) {
3642 fra
.me
.REG
[4] = BOX_NativeString("Error: break with a value required in this block.");
3643 REGB0
= TAG_Int(49);
3644 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3645 once_value_2
= fra
.me
.REG
[4];
3646 register_static_object(&once_value_2
);
3647 } else fra
.me
.REG
[4] = once_value_2
;
3648 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3649 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3651 /* syntax/typing.nit:542 */
3652 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3653 if (UNTAG_Bool(REGB0
)) {
3655 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3656 if (UNTAG_Bool(REGB1
)) {
3657 REGB1
= TAG_Bool(0);
3660 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3664 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3665 if (UNTAG_Bool(REGB0
)) {
3666 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3667 if (UNTAG_Bool(REGB0
)) {
3669 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3670 if (UNTAG_Bool(REGB1
)) {
3671 REGB1
= TAG_Bool(0);
3674 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3679 REGB1
= TAG_Bool(0);
3682 if (UNTAG_Bool(REGB0
)) {
3683 /* syntax/typing.nit:543 */
3684 if (!once_value_3
) {
3685 fra
.me
.REG
[4] = BOX_NativeString("Error: break without value required in this block.");
3686 REGB0
= TAG_Int(50);
3687 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3688 once_value_3
= fra
.me
.REG
[4];
3689 register_static_object(&once_value_3
);
3690 } else fra
.me
.REG
[4] = once_value_3
;
3691 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3692 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3694 /* syntax/typing.nit:544 */
3695 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3696 if (UNTAG_Bool(REGB0
)) {
3698 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3699 if (UNTAG_Bool(REGB1
)) {
3700 REGB1
= TAG_Bool(0);
3703 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3707 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3708 if (UNTAG_Bool(REGB0
)) {
3709 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3710 if (UNTAG_Bool(REGB0
)) {
3712 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3713 if (UNTAG_Bool(REGB1
)) {
3714 REGB1
= TAG_Bool(0);
3717 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3721 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3723 REGB1
= TAG_Bool(0);
3726 if (UNTAG_Bool(REGB0
)) {
3727 /* syntax/typing.nit:546 */
3728 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3729 if (UNTAG_Bool(REGB0
)) {
3730 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 546);
3732 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3736 /* syntax/typing.nit:548 */
3737 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3738 if (UNTAG_Bool(REGB0
)) {
3740 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3741 if (UNTAG_Bool(REGB1
)) {
3742 REGB1
= TAG_Bool(0);
3745 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3749 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3750 if (UNTAG_Bool(REGB0
)) {
3751 /* syntax/typing.nit:549 */
3752 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3753 if (UNTAG_Bool(REGB0
)) {
3754 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 549);
3756 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
3758 /* syntax/typing.nit:551 */
3759 REGB0
= TAG_Bool(1);
3760 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3762 stack_frame_head
= fra
.me
.prev
;
3765 static const char LOCATE_syntax___typing___AAbortExpr___after_typing
[] = "typing::AAbortExpr::(typing::ANode::after_typing)";
3766 void syntax___typing___AAbortExpr___after_typing(val_t p0
, val_t p1
){
3767 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3770 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3771 fra
.me
.file
= LOCATE_syntax___typing
;
3773 fra
.me
.meth
= LOCATE_syntax___typing___AAbortExpr___after_typing
;
3774 fra
.me
.has_broke
= 0;
3775 fra
.me
.REG_size
= 2;
3776 fra
.me
.nitni_local_ref_head
= NULL
;
3777 fra
.me
.REG
[0] = NIT_NULL
;
3778 fra
.me
.REG
[1] = NIT_NULL
;
3781 /* syntax/typing.nit:558 */
3782 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3783 /* syntax/typing.nit:559 */
3784 REGB0
= TAG_Bool(1);
3785 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3786 stack_frame_head
= fra
.me
.prev
;
3789 static const char LOCATE_syntax___typing___AAbsControl___escapable
[] = "typing::AAbsControl::escapable";
3790 val_t
syntax___typing___AAbsControl___escapable(val_t p0
){
3791 struct {struct stack_frame_t me
;} fra
;
3793 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3794 fra
.me
.file
= LOCATE_syntax___typing
;
3796 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___escapable
;
3797 fra
.me
.has_broke
= 0;
3798 fra
.me
.REG_size
= 1;
3799 fra
.me
.nitni_local_ref_head
= NULL
;
3800 fra
.me
.REG
[0] = NIT_NULL
;
3802 /* syntax/typing.nit:566 */
3803 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]);
3804 stack_frame_head
= fra
.me
.prev
;
3805 return fra
.me
.REG
[0];
3807 static const char LOCATE_syntax___typing___AAbsControl___process_control
[] = "typing::AAbsControl::process_control";
3808 void syntax___typing___AAbsControl___process_control(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
3809 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3813 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3814 fra
.me
.file
= LOCATE_syntax___typing
;
3816 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___process_control
;
3817 fra
.me
.has_broke
= 0;
3818 fra
.me
.REG_size
= 7;
3819 fra
.me
.nitni_local_ref_head
= NULL
;
3820 fra
.me
.REG
[0] = NIT_NULL
;
3821 fra
.me
.REG
[1] = NIT_NULL
;
3822 fra
.me
.REG
[2] = NIT_NULL
;
3823 fra
.me
.REG
[3] = NIT_NULL
;
3824 fra
.me
.REG
[4] = NIT_NULL
;
3825 fra
.me
.REG
[5] = NIT_NULL
;
3826 fra
.me
.REG
[6] = NIT_NULL
;
3832 /* syntax/typing.nit:573 */
3833 ATTR_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3834 /* syntax/typing.nit:574 */
3835 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3836 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3837 /* syntax/typing.nit:577 */
3838 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3839 /* syntax/typing.nit:578 */
3840 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3841 /* syntax/typing.nit:579 */
3842 if (UNTAG_Bool(REGB0
)) {
3843 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3844 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3846 /* syntax/typing.nit:582 */
3847 CALL_syntax___typing___AAbsControl___process_control_inside(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3848 /* syntax/typing.nit:585 */
3849 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3850 REGB1
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3851 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
3852 if (UNTAG_Bool(REGB1
)) {
3853 /* syntax/typing.nit:586 */
3854 fra
.me
.REG
[5] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3855 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3856 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3858 /* syntax/typing.nit:590 */
3859 fra
.me
.REG
[6] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3860 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3861 if (UNTAG_Bool(REGB1
)) {
3862 /* syntax/typing.nit:591 */
3863 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3864 /* syntax/typing.nit:592 */
3865 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3867 /* syntax/typing.nit:594 */
3868 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3869 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]);
3870 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3872 /* syntax/typing.nit:597 */
3873 if (UNTAG_Bool(REGB0
)) {
3874 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3876 /* syntax/typing.nit:598 */
3877 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3878 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3879 /* syntax/typing.nit:599 */
3880 REGB0
= TAG_Bool(1);
3881 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3882 stack_frame_head
= fra
.me
.prev
;
3885 static const char LOCATE_syntax___typing___AAbsControl___process_control_inside
[] = "typing::AAbsControl::process_control_inside";
3886 void syntax___typing___AAbsControl___process_control_inside(val_t p0
, val_t p1
){
3887 struct {struct stack_frame_t me
;} fra
;
3889 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3890 fra
.me
.file
= LOCATE_syntax___typing
;
3892 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___process_control_inside
;
3893 fra
.me
.has_broke
= 0;
3894 fra
.me
.REG_size
= 0;
3895 fra
.me
.nitni_local_ref_head
= NULL
;
3896 /* syntax/typing.nit:602 */
3897 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 602);
3898 stack_frame_head
= fra
.me
.prev
;
3901 static const char LOCATE_syntax___typing___ADoExpr___accept_typing
[] = "typing::ADoExpr::(typing::ANode::accept_typing)";
3902 void syntax___typing___ADoExpr___accept_typing(val_t p0
, val_t p1
){
3903 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3906 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3907 fra
.me
.file
= LOCATE_syntax___typing
;
3909 fra
.me
.meth
= LOCATE_syntax___typing___ADoExpr___accept_typing
;
3910 fra
.me
.has_broke
= 0;
3911 fra
.me
.REG_size
= 4;
3912 fra
.me
.nitni_local_ref_head
= NULL
;
3913 fra
.me
.REG
[0] = NIT_NULL
;
3914 fra
.me
.REG
[1] = NIT_NULL
;
3915 fra
.me
.REG
[2] = NIT_NULL
;
3916 fra
.me
.REG
[3] = NIT_NULL
;
3919 /* syntax/typing.nit:610 */
3920 fra
.me
.REG
[2] = NEW_BreakOnlyEscapableBlock_syntax___scope___BreakOnlyEscapableBlock___init(fra
.me
.REG
[0]);
3921 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3922 REGB0
= TAG_Bool(0);
3923 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
);
3924 stack_frame_head
= fra
.me
.prev
;
3927 static const char LOCATE_syntax___typing___ADoExpr___process_control_inside
[] = "typing::ADoExpr::(typing::AAbsControl::process_control_inside)";
3928 void syntax___typing___ADoExpr___process_control_inside(val_t p0
, val_t p1
){
3929 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3931 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3932 fra
.me
.file
= LOCATE_syntax___typing
;
3934 fra
.me
.meth
= LOCATE_syntax___typing___ADoExpr___process_control_inside
;
3935 fra
.me
.has_broke
= 0;
3936 fra
.me
.REG_size
= 2;
3937 fra
.me
.nitni_local_ref_head
= NULL
;
3938 fra
.me
.REG
[0] = NIT_NULL
;
3939 fra
.me
.REG
[1] = NIT_NULL
;
3942 /* syntax/typing.nit:615 */
3943 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3944 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3945 stack_frame_head
= fra
.me
.prev
;
3948 static const char LOCATE_syntax___typing___AIfExpr___accept_typing
[] = "typing::AIfExpr::(typing::ANode::accept_typing)";
3949 void syntax___typing___AIfExpr___accept_typing(val_t p0
, val_t p1
){
3950 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3953 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3954 fra
.me
.file
= LOCATE_syntax___typing
;
3956 fra
.me
.meth
= LOCATE_syntax___typing___AIfExpr___accept_typing
;
3957 fra
.me
.has_broke
= 0;
3958 fra
.me
.REG_size
= 5;
3959 fra
.me
.nitni_local_ref_head
= NULL
;
3960 fra
.me
.REG
[0] = NIT_NULL
;
3961 fra
.me
.REG
[1] = NIT_NULL
;
3962 fra
.me
.REG
[2] = NIT_NULL
;
3963 fra
.me
.REG
[3] = NIT_NULL
;
3964 fra
.me
.REG
[4] = NIT_NULL
;
3967 /* syntax/typing.nit:622 */
3968 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3969 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3970 /* syntax/typing.nit:623 */
3971 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3972 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3973 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3974 /* syntax/typing.nit:625 */
3975 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3976 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3977 /* syntax/typing.nit:628 */
3978 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3979 /* syntax/typing.nit:629 */
3980 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3981 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3982 /* syntax/typing.nit:632 */
3983 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3984 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3985 /* syntax/typing.nit:635 */
3986 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3987 /* syntax/typing.nit:638 */
3988 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3989 /* syntax/typing.nit:639 */
3990 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3991 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3992 /* syntax/typing.nit:642 */
3993 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3994 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3995 /* syntax/typing.nit:645 */
3996 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3997 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3998 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]);
3999 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4000 /* syntax/typing.nit:646 */
4001 REGB0
= TAG_Bool(1);
4002 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4003 stack_frame_head
= fra
.me
.prev
;
4006 static const char LOCATE_syntax___typing___AWhileExpr___accept_typing
[] = "typing::AWhileExpr::(typing::ANode::accept_typing)";
4007 void syntax___typing___AWhileExpr___accept_typing(val_t p0
, val_t p1
){
4008 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4011 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4012 fra
.me
.file
= LOCATE_syntax___typing
;
4014 fra
.me
.meth
= LOCATE_syntax___typing___AWhileExpr___accept_typing
;
4015 fra
.me
.has_broke
= 0;
4016 fra
.me
.REG_size
= 4;
4017 fra
.me
.nitni_local_ref_head
= NULL
;
4018 fra
.me
.REG
[0] = NIT_NULL
;
4019 fra
.me
.REG
[1] = NIT_NULL
;
4020 fra
.me
.REG
[2] = NIT_NULL
;
4021 fra
.me
.REG
[3] = NIT_NULL
;
4024 /* syntax/typing.nit:654 */
4025 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
4026 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4027 REGB0
= TAG_Bool(1);
4028 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
);
4029 stack_frame_head
= fra
.me
.prev
;
4032 static const char LOCATE_syntax___typing___AWhileExpr___process_control_inside
[] = "typing::AWhileExpr::(typing::AAbsControl::process_control_inside)";
4033 void syntax___typing___AWhileExpr___process_control_inside(val_t p0
, val_t p1
){
4034 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4037 static val_t once_value_1
; /* Once value */
4038 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4039 fra
.me
.file
= LOCATE_syntax___typing
;
4041 fra
.me
.meth
= LOCATE_syntax___typing___AWhileExpr___process_control_inside
;
4042 fra
.me
.has_broke
= 0;
4043 fra
.me
.REG_size
= 5;
4044 fra
.me
.nitni_local_ref_head
= NULL
;
4045 fra
.me
.REG
[0] = NIT_NULL
;
4046 fra
.me
.REG
[1] = NIT_NULL
;
4047 fra
.me
.REG
[2] = NIT_NULL
;
4048 fra
.me
.REG
[3] = NIT_NULL
;
4049 fra
.me
.REG
[4] = NIT_NULL
;
4052 /* syntax/typing.nit:659 */
4053 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4054 /* syntax/typing.nit:662 */
4055 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4056 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4057 /* syntax/typing.nit:663 */
4058 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4059 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4060 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
4061 /* syntax/typing.nit:665 */
4062 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4063 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_parser___parser_nodes___ATrueExpr
, ID_parser___parser_nodes___ATrueExpr
)) /*cast ATrueExpr*/;
4064 if (UNTAG_Bool(REGB0
)) {
4065 /* syntax/typing.nit:666 */
4066 if (!once_value_1
) {
4067 fra
.me
.REG
[4] = BOX_NativeString("Warning: use 'loop' instead of 'while true do'.");
4068 REGB0
= TAG_Int(47);
4069 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4070 once_value_1
= fra
.me
.REG
[4];
4071 register_static_object(&once_value_1
);
4072 } else fra
.me
.REG
[4] = once_value_1
;
4073 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4074 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
4076 /* syntax/typing.nit:668 */
4077 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4078 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
4080 /* syntax/typing.nit:672 */
4081 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4082 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4083 /* syntax/typing.nit:675 */
4084 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4085 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4086 /* syntax/typing.nit:678 */
4087 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4088 /* syntax/typing.nit:679 */
4089 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4090 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4091 /* syntax/typing.nit:680 */
4092 fra
.me
.REG
[0] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4093 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
4094 if (UNTAG_Bool(REGB0
)) {
4095 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 680);
4097 fra
.me
.REG
[0] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4098 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4099 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
4100 stack_frame_head
= fra
.me
.prev
;
4103 static const char LOCATE_syntax___typing___ALoopExpr___accept_typing
[] = "typing::ALoopExpr::(typing::ANode::accept_typing)";
4104 void syntax___typing___ALoopExpr___accept_typing(val_t p0
, val_t p1
){
4105 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4108 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4109 fra
.me
.file
= LOCATE_syntax___typing
;
4111 fra
.me
.meth
= LOCATE_syntax___typing___ALoopExpr___accept_typing
;
4112 fra
.me
.has_broke
= 0;
4113 fra
.me
.REG_size
= 4;
4114 fra
.me
.nitni_local_ref_head
= NULL
;
4115 fra
.me
.REG
[0] = NIT_NULL
;
4116 fra
.me
.REG
[1] = NIT_NULL
;
4117 fra
.me
.REG
[2] = NIT_NULL
;
4118 fra
.me
.REG
[3] = NIT_NULL
;
4121 /* syntax/typing.nit:688 */
4122 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
4123 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4124 REGB0
= TAG_Bool(1);
4125 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
);
4126 stack_frame_head
= fra
.me
.prev
;
4129 static const char LOCATE_syntax___typing___ALoopExpr___process_control_inside
[] = "typing::ALoopExpr::(typing::AAbsControl::process_control_inside)";
4130 void syntax___typing___ALoopExpr___process_control_inside(val_t p0
, val_t p1
){
4131 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4133 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4134 fra
.me
.file
= LOCATE_syntax___typing
;
4136 fra
.me
.meth
= LOCATE_syntax___typing___ALoopExpr___process_control_inside
;
4137 fra
.me
.has_broke
= 0;
4138 fra
.me
.REG_size
= 3;
4139 fra
.me
.nitni_local_ref_head
= NULL
;
4140 fra
.me
.REG
[0] = NIT_NULL
;
4141 fra
.me
.REG
[1] = NIT_NULL
;
4142 fra
.me
.REG
[2] = NIT_NULL
;
4145 /* syntax/typing.nit:694 */
4146 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4147 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4148 /* syntax/typing.nit:697 */
4149 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4150 stack_frame_head
= fra
.me
.prev
;
4153 static const char LOCATE_syntax___typing___AForExpr___variables
[] = "typing::AForExpr::(syntax_base::AForExpr::variables)";
4154 val_t
syntax___typing___AForExpr___variables(val_t p0
){
4155 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4158 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4159 fra
.me
.file
= LOCATE_syntax___typing
;
4161 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___variables
;
4162 fra
.me
.has_broke
= 0;
4163 fra
.me
.REG_size
= 2;
4164 fra
.me
.nitni_local_ref_head
= NULL
;
4165 fra
.me
.REG
[0] = NIT_NULL
;
4166 fra
.me
.REG
[1] = NIT_NULL
;
4168 /* syntax/typing.nit:704 */
4169 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4170 fra
.me
.REG
[1] = ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[1]);
4171 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4172 if (UNTAG_Bool(REGB0
)) {
4174 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 704);
4178 stack_frame_head
= fra
.me
.prev
;
4179 return fra
.me
.REG
[1];
4181 static const char LOCATE_syntax___typing___AForExpr___accept_typing
[] = "typing::AForExpr::(typing::ANode::accept_typing)";
4182 void syntax___typing___AForExpr___accept_typing(val_t p0
, val_t p1
){
4183 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4186 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4187 fra
.me
.file
= LOCATE_syntax___typing
;
4189 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___accept_typing
;
4190 fra
.me
.has_broke
= 0;
4191 fra
.me
.REG_size
= 4;
4192 fra
.me
.nitni_local_ref_head
= NULL
;
4193 fra
.me
.REG
[0] = NIT_NULL
;
4194 fra
.me
.REG
[1] = NIT_NULL
;
4195 fra
.me
.REG
[2] = NIT_NULL
;
4196 fra
.me
.REG
[3] = NIT_NULL
;
4199 /* syntax/typing.nit:708 */
4200 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
4201 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4202 REGB0
= TAG_Bool(1);
4203 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
);
4204 stack_frame_head
= fra
.me
.prev
;
4207 static const char LOCATE_syntax___typing___AForExpr___process_control_inside
[] = "typing::AForExpr::(typing::AAbsControl::process_control_inside)";
4208 void syntax___typing___AForExpr___process_control_inside(val_t p0
, val_t p1
){
4209 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4211 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4212 fra
.me
.file
= LOCATE_syntax___typing
;
4214 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___process_control_inside
;
4215 fra
.me
.has_broke
= 0;
4216 fra
.me
.REG_size
= 3;
4217 fra
.me
.nitni_local_ref_head
= NULL
;
4218 fra
.me
.REG
[0] = NIT_NULL
;
4219 fra
.me
.REG
[1] = NIT_NULL
;
4220 fra
.me
.REG
[2] = NIT_NULL
;
4223 /* syntax/typing.nit:713 */
4224 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4225 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4226 /* syntax/typing.nit:714 */
4227 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4228 /* syntax/typing.nit:716 */
4229 CALL_syntax___typing___AForExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
4230 /* syntax/typing.nit:719 */
4231 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4232 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4233 /* syntax/typing.nit:722 */
4234 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4235 /* syntax/typing.nit:723 */
4236 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4237 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4238 stack_frame_head
= fra
.me
.prev
;
4241 static const char LOCATE_syntax___typing___AForExpr___do_typing
[] = "typing::AForExpr::do_typing";
4242 void syntax___typing___AForExpr___do_typing(val_t p0
, val_t p1
){
4243 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4251 static val_t once_value_3
; /* Once value */
4252 static val_t once_value_4
; /* Once value */
4253 static val_t once_value_5
; /* Once value */
4254 static val_t once_value_6
; /* Once value */
4255 static val_t once_value_7
; /* Once value */
4256 static val_t once_value_8
; /* Once value */
4257 static val_t once_value_9
; /* Once value */
4258 static val_t once_value_10
; /* Once value */
4259 static val_t once_value_11
; /* Once value */
4260 static val_t once_value_12
; /* Once value */
4261 static val_t once_value_13
; /* Once value */
4262 static val_t once_value_14
; /* Once value */
4263 static val_t once_value_15
; /* Once value */
4264 static val_t once_value_16
; /* Once value */
4265 static val_t once_value_17
; /* Once value */
4266 static val_t once_value_18
; /* Once value */
4267 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4268 fra
.me
.file
= LOCATE_syntax___typing
;
4270 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
4271 fra
.me
.has_broke
= 0;
4272 fra
.me
.REG_size
= 8;
4273 fra
.me
.nitni_local_ref_head
= NULL
;
4274 fra
.me
.REG
[0] = NIT_NULL
;
4275 fra
.me
.REG
[1] = NIT_NULL
;
4276 fra
.me
.REG
[2] = NIT_NULL
;
4277 fra
.me
.REG
[3] = NIT_NULL
;
4278 fra
.me
.REG
[4] = NIT_NULL
;
4279 fra
.me
.REG
[5] = NIT_NULL
;
4280 fra
.me
.REG
[6] = NIT_NULL
;
4281 fra
.me
.REG
[7] = NIT_NULL
;
4284 /* syntax/typing.nit:729 */
4285 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
4286 /* syntax/typing.nit:730 */
4287 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4288 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
));
4289 /* syntax/typing.nit:735 */
4290 ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4291 /* syntax/typing.nit:738 */
4292 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4293 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4294 /* syntax/typing.nit:739 */
4295 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4296 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4297 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4298 if (UNTAG_Bool(REGB0
)) {
4301 /* syntax/typing.nit:740 */
4302 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4303 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4304 /* syntax/typing.nit:742 */
4305 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4306 if (UNTAG_Bool(REGB0
)) {
4307 /* syntax/typing.nit:743 */
4308 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4309 if (!once_value_3
) {
4310 fra
.me
.REG
[5] = BOX_NativeString("Type error: 'for' on a nullable expression.");
4311 REGB0
= TAG_Int(43);
4312 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4313 once_value_3
= fra
.me
.REG
[5];
4314 register_static_object(&once_value_3
);
4315 } else fra
.me
.REG
[5] = once_value_3
;
4316 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4317 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
4318 /* syntax/typing.nit:744 */
4321 /* syntax/typing.nit:746 */
4322 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4323 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
4324 /* syntax/typing.nit:749 */
4325 if (!once_value_4
) {
4326 if (!once_value_5
) {
4327 fra
.me
.REG
[5] = BOX_NativeString("iterate");
4329 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4330 once_value_5
= fra
.me
.REG
[5];
4331 register_static_object(&once_value_5
);
4332 } else fra
.me
.REG
[5] = once_value_5
;
4333 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4334 fra
.me
.REG
[5] = CALL_symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4335 once_value_4
= fra
.me
.REG
[5];
4336 register_static_object(&once_value_4
);
4337 } else fra
.me
.REG
[5] = once_value_4
;
4338 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4339 /* syntax/typing.nit:750 */
4340 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4341 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4342 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4343 if (UNTAG_Bool(REGB0
)) {
4344 /* syntax/typing.nit:751 */
4345 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4347 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4348 if (!once_value_6
) {
4349 fra
.me
.REG
[7] = BOX_NativeString("Type error: Expected a type with an 'iterate' method. Found ");
4350 REGB0
= TAG_Int(60);
4351 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4352 once_value_6
= fra
.me
.REG
[7];
4353 register_static_object(&once_value_6
);
4354 } else fra
.me
.REG
[7] = once_value_6
;
4355 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4356 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4357 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4358 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4359 if (!once_value_7
) {
4360 fra
.me
.REG
[7] = BOX_NativeString(".");
4362 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4363 once_value_7
= fra
.me
.REG
[7];
4364 register_static_object(&once_value_7
);
4365 } else fra
.me
.REG
[7] = once_value_7
;
4366 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4367 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4368 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4369 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
4370 /* syntax/typing.nit:752 */
4373 /* syntax/typing.nit:754 */
4374 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4375 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
4376 /* syntax/typing.nit:755 */
4377 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4378 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4379 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4380 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4381 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
);
4382 /* syntax/typing.nit:756 */
4383 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4384 /* syntax/typing.nit:757 */
4385 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4386 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4387 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4388 if (UNTAG_Bool(REGB0
)) {
4389 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4390 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4392 /* syntax/typing.nit:758 */
4393 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4395 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4396 if (UNTAG_Bool(REGB2
)) {
4398 /* ../lib/standard/kernel.nit:230 */
4399 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
4400 /* syntax/typing.nit:758 */
4403 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4404 if (UNTAG_Bool(REGB2
)) {
4405 /* syntax/typing.nit:759 */
4406 if (!once_value_8
) {
4407 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require no arguments.");
4408 REGB2
= TAG_Int(63);
4409 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
4410 once_value_8
= fra
.me
.REG
[5];
4411 register_static_object(&once_value_8
);
4412 } else fra
.me
.REG
[5] = once_value_8
;
4413 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4414 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4415 /* syntax/typing.nit:760 */
4418 /* syntax/typing.nit:761 */
4419 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4420 /* ../lib/standard/collection/array.nit:24 */
4421 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4422 if (UNTAG_Bool(REGB2
)) {
4424 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4426 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4427 /* syntax/typing.nit:761 */
4429 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4430 if (UNTAG_Bool(REGB0
)) {
4432 /* ../lib/standard/kernel.nit:230 */
4433 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4434 /* syntax/typing.nit:761 */
4437 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4438 if (UNTAG_Bool(REGB0
)) {
4439 /* syntax/typing.nit:762 */
4440 if (!once_value_9
) {
4441 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one closure.");
4442 REGB0
= TAG_Int(62);
4443 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4444 once_value_9
= fra
.me
.REG
[5];
4445 register_static_object(&once_value_9
);
4446 } else fra
.me
.REG
[5] = once_value_9
;
4447 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4448 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4449 /* syntax/typing.nit:763 */
4453 /* syntax/typing.nit:765 */
4454 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4455 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4456 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4457 if (UNTAG_Bool(REGB0
)) {
4458 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 765);
4460 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4461 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4462 /* syntax/typing.nit:766 */
4463 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4464 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4465 if (UNTAG_Bool(REGB0
)) {
4467 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4468 if (UNTAG_Bool(REGB1
)) {
4469 REGB1
= TAG_Bool(0);
4472 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
4476 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4477 if (UNTAG_Bool(REGB0
)) {
4478 /* syntax/typing.nit:767 */
4479 if (!once_value_10
) {
4480 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one procedural closure.");
4481 REGB0
= TAG_Int(73);
4482 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4483 once_value_10
= fra
.me
.REG
[5];
4484 register_static_object(&once_value_10
);
4485 } else fra
.me
.REG
[5] = once_value_10
;
4486 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4487 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4488 /* syntax/typing.nit:768 */
4491 /* ../lib/standard/collection/array.nit:24 */
4492 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4493 if (UNTAG_Bool(REGB0
)) {
4495 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4497 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4498 /* syntax/typing.nit:770 */
4499 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4500 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4501 if (UNTAG_Bool(REGB2
)) {
4503 /* ../lib/standard/kernel.nit:230 */
4504 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
4505 /* syntax/typing.nit:770 */
4508 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4509 if (UNTAG_Bool(REGB2
)) {
4510 /* syntax/typing.nit:771 */
4511 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4513 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4514 if (UNTAG_Bool(REGB0
)) {
4516 /* ../lib/standard/kernel.nit:230 */
4517 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4518 /* syntax/typing.nit:771 */
4521 if (UNTAG_Bool(REGB0
)) {
4522 /* syntax/typing.nit:772 */
4524 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4525 if (!once_value_11
) {
4526 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4527 REGB0
= TAG_Int(16);
4528 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4529 once_value_11
= fra
.me
.REG
[4];
4530 register_static_object(&once_value_11
);
4531 } else fra
.me
.REG
[4] = once_value_11
;
4532 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4534 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4535 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4536 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4537 if (!once_value_12
) {
4538 fra
.me
.REG
[4] = BOX_NativeString(" variable ");
4539 REGB0
= TAG_Int(10);
4540 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4541 once_value_12
= fra
.me
.REG
[4];
4542 register_static_object(&once_value_12
);
4543 } else fra
.me
.REG
[4] = once_value_12
;
4544 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4545 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4546 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4547 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4548 if (!once_value_13
) {
4549 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4551 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4552 once_value_13
= fra
.me
.REG
[4];
4553 register_static_object(&once_value_13
);
4554 } else fra
.me
.REG
[4] = once_value_13
;
4555 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4556 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4557 /* ../lib/standard/collection/array.nit:24 */
4558 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4559 if (UNTAG_Bool(REGB0
)) {
4561 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4563 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4564 /* syntax/typing.nit:772 */
4565 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4566 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4567 if (!once_value_14
) {
4568 fra
.me
.REG
[4] = BOX_NativeString(".");
4570 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4571 once_value_14
= fra
.me
.REG
[4];
4572 register_static_object(&once_value_14
);
4573 } else fra
.me
.REG
[4] = once_value_14
;
4574 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4575 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4576 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4577 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4579 /* syntax/typing.nit:774 */
4581 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4582 if (!once_value_15
) {
4583 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4584 REGB0
= TAG_Int(16);
4585 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4586 once_value_15
= fra
.me
.REG
[4];
4587 register_static_object(&once_value_15
);
4588 } else fra
.me
.REG
[4] = once_value_15
;
4589 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4590 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4591 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4592 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4593 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4594 if (!once_value_16
) {
4595 fra
.me
.REG
[4] = BOX_NativeString(" variables ");
4596 REGB0
= TAG_Int(11);
4597 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4598 once_value_16
= fra
.me
.REG
[4];
4599 register_static_object(&once_value_16
);
4600 } else fra
.me
.REG
[4] = once_value_16
;
4601 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4602 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4603 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4604 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4605 if (!once_value_17
) {
4606 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4608 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4609 once_value_17
= fra
.me
.REG
[4];
4610 register_static_object(&once_value_17
);
4611 } else fra
.me
.REG
[4] = once_value_17
;
4612 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4613 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4614 /* ../lib/standard/collection/array.nit:24 */
4615 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4616 if (UNTAG_Bool(REGB0
)) {
4618 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4620 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4621 /* syntax/typing.nit:774 */
4622 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4623 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4624 if (!once_value_18
) {
4625 fra
.me
.REG
[4] = BOX_NativeString(".");
4627 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4628 once_value_18
= fra
.me
.REG
[4];
4629 register_static_object(&once_value_18
);
4630 } else fra
.me
.REG
[4] = once_value_18
;
4631 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4632 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4633 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4634 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4636 /* syntax/typing.nit:776 */
4639 /* syntax/typing.nit:780 */
4641 /* ../lib/standard/collection/array.nit:24 */
4642 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4643 if (UNTAG_Bool(REGB1
)) {
4645 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4647 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4648 /* ../lib/standard/kernel.nit:355 */
4650 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
4651 if (UNTAG_Bool(REGB2
)) {
4653 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4655 /* ../lib/standard/kernel.nit:235 */
4656 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
4657 /* ../lib/standard/kernel.nit:355 */
4658 if (UNTAG_Bool(REGB2
)) {
4659 /* syntax/typing.nit:780 */
4661 /* ../lib/standard/collection/array.nit:278 */
4662 fra
.me
.REG
[5] = fra
.me
.REG
[2];
4664 /* ../lib/standard/collection/array.nit:280 */
4666 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
4667 if (UNTAG_Bool(REGB5
)) {
4669 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4671 /* ../lib/standard/kernel.nit:236 */
4672 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
4673 /* ../lib/standard/collection/array.nit:280 */
4674 if (UNTAG_Bool(REGB4
)) {
4675 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4676 if (UNTAG_Bool(REGB4
)) {
4678 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
4680 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4681 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
4682 if (UNTAG_Bool(REGB5
)) {
4684 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4686 /* ../lib/standard/kernel.nit:235 */
4687 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
4689 /* ../lib/standard/collection/array.nit:280 */
4690 REGB5
= TAG_Bool(0);
4693 if (UNTAG_Bool(REGB4
)) {
4695 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
4697 /* ../lib/standard/collection/array.nit:281 */
4698 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
4699 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4700 if (UNTAG_Bool(REGB4
)) {
4701 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
4703 /* ../lib/standard/collection/array.nit:724 */
4704 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
4705 /* ../lib/standard/collection/array.nit:281 */
4708 /* syntax/typing.nit:781 */
4709 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
4710 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4711 if (UNTAG_Bool(REGB2
)) {
4712 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 781);
4714 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
4715 /* ../lib/standard/kernel.nit:357 */
4717 /* ../lib/standard/kernel.nit:238 */
4718 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
4719 /* ../lib/standard/kernel.nit:357 */
4722 /* ../lib/standard/kernel.nit:355 */
4728 stack_frame_head
= fra
.me
.prev
;
4731 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
){
4732 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4735 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4736 fra
.me
.file
= LOCATE_syntax___typing
;
4738 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
4739 fra
.me
.has_broke
= 0;
4740 fra
.me
.REG_size
= 2;
4741 fra
.me
.nitni_local_ref_head
= NULL
;
4742 fra
.me
.REG
[0] = NIT_NULL
;
4743 fra
.me
.REG
[1] = NIT_NULL
;
4744 fra
.me
.closure_ctx
= closctx_param
;
4745 fra
.me
.closure_funs
= CREG
;
4747 CREG
[0] = clos_fun0
;
4748 /* syntax/typing.nit:731 */
4749 fra
.me
.REG
[1] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4750 fra
.me
.REG
[0] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4751 /* syntax/typing.nit:732 */
4752 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
4753 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4754 /* syntax/typing.nit:733 */
4755 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
4756 stack_frame_head
= fra
.me
.prev
;
4759 static const char LOCATE_syntax___typing___AAssertExpr___accept_typing
[] = "typing::AAssertExpr::(typing::ANode::accept_typing)";
4760 void syntax___typing___AAssertExpr___accept_typing(val_t p0
, val_t p1
){
4761 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4765 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4766 fra
.me
.file
= LOCATE_syntax___typing
;
4768 fra
.me
.meth
= LOCATE_syntax___typing___AAssertExpr___accept_typing
;
4769 fra
.me
.has_broke
= 0;
4770 fra
.me
.REG_size
= 4;
4771 fra
.me
.nitni_local_ref_head
= NULL
;
4772 fra
.me
.REG
[0] = NIT_NULL
;
4773 fra
.me
.REG
[1] = NIT_NULL
;
4774 fra
.me
.REG
[2] = NIT_NULL
;
4775 fra
.me
.REG
[3] = NIT_NULL
;
4778 /* syntax/typing.nit:790 */
4779 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4780 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4781 /* syntax/typing.nit:791 */
4782 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4783 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4784 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4785 /* syntax/typing.nit:792 */
4786 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4787 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
4788 /* syntax/typing.nit:795 */
4789 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4790 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4791 if (UNTAG_Bool(REGB0
)) {
4793 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4794 if (UNTAG_Bool(REGB1
)) {
4795 REGB1
= TAG_Bool(0);
4798 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4802 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4803 if (UNTAG_Bool(REGB0
)) {
4804 /* syntax/typing.nit:796 */
4805 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4806 /* syntax/typing.nit:797 */
4807 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4808 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4809 /* syntax/typing.nit:798 */
4810 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4811 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4812 /* syntax/typing.nit:799 */
4813 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4815 /* syntax/typing.nit:803 */
4816 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4817 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4818 /* syntax/typing.nit:804 */
4819 REGB0
= TAG_Bool(1);
4820 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4821 stack_frame_head
= fra
.me
.prev
;
4824 static const char LOCATE_syntax___typing___AVarFormExpr___variable
[] = "typing::AVarFormExpr::(syntax_base::AVarFormExpr::variable)";
4825 val_t
syntax___typing___AVarFormExpr___variable(val_t p0
){
4826 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4829 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4830 fra
.me
.file
= LOCATE_syntax___typing
;
4832 fra
.me
.meth
= LOCATE_syntax___typing___AVarFormExpr___variable
;
4833 fra
.me
.has_broke
= 0;
4834 fra
.me
.REG_size
= 2;
4835 fra
.me
.nitni_local_ref_head
= NULL
;
4836 fra
.me
.REG
[0] = NIT_NULL
;
4837 fra
.me
.REG
[1] = NIT_NULL
;
4839 /* syntax/typing.nit:810 */
4840 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4841 fra
.me
.REG
[1] = ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[1]);
4842 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4843 if (UNTAG_Bool(REGB0
)) {
4845 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 810);
4849 stack_frame_head
= fra
.me
.prev
;
4850 return fra
.me
.REG
[1];
4852 static const char LOCATE_syntax___typing___AVarExpr___its_variable
[] = "typing::AVarExpr::(typing::AExpr::its_variable)";
4853 val_t
syntax___typing___AVarExpr___its_variable(val_t p0
){
4854 struct {struct stack_frame_t me
;} fra
;
4856 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4857 fra
.me
.file
= LOCATE_syntax___typing
;
4859 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___its_variable
;
4860 fra
.me
.has_broke
= 0;
4861 fra
.me
.REG_size
= 1;
4862 fra
.me
.nitni_local_ref_head
= NULL
;
4863 fra
.me
.REG
[0] = NIT_NULL
;
4865 /* syntax/typing.nit:814 */
4866 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4869 stack_frame_head
= fra
.me
.prev
;
4870 return fra
.me
.REG
[0];
4872 static const char LOCATE_syntax___typing___AVarExpr___after_typing
[] = "typing::AVarExpr::(typing::ANode::after_typing)";
4873 void syntax___typing___AVarExpr___after_typing(val_t p0
, val_t p1
){
4874 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4878 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4879 fra
.me
.file
= LOCATE_syntax___typing
;
4881 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___after_typing
;
4882 fra
.me
.has_broke
= 0;
4883 fra
.me
.REG_size
= 4;
4884 fra
.me
.nitni_local_ref_head
= NULL
;
4885 fra
.me
.REG
[0] = NIT_NULL
;
4886 fra
.me
.REG
[1] = NIT_NULL
;
4887 fra
.me
.REG
[2] = NIT_NULL
;
4888 fra
.me
.REG
[3] = NIT_NULL
;
4891 /* syntax/typing.nit:818 */
4892 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4893 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4894 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4895 /* syntax/typing.nit:819 */
4896 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4897 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4898 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4899 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4900 /* syntax/typing.nit:820 */
4901 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
4902 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4903 if (UNTAG_Bool(REGB0
)) {
4905 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4906 if (UNTAG_Bool(REGB1
)) {
4907 REGB1
= TAG_Bool(0);
4910 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4914 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4915 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4916 stack_frame_head
= fra
.me
.prev
;
4919 static const char LOCATE_syntax___typing___AVarAssignExpr___after_typing
[] = "typing::AVarAssignExpr::(typing::ANode::after_typing)";
4920 void syntax___typing___AVarAssignExpr___after_typing(val_t p0
, val_t p1
){
4921 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4925 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4926 fra
.me
.file
= LOCATE_syntax___typing
;
4928 fra
.me
.meth
= LOCATE_syntax___typing___AVarAssignExpr___after_typing
;
4929 fra
.me
.has_broke
= 0;
4930 fra
.me
.REG_size
= 5;
4931 fra
.me
.nitni_local_ref_head
= NULL
;
4932 fra
.me
.REG
[0] = NIT_NULL
;
4933 fra
.me
.REG
[1] = NIT_NULL
;
4934 fra
.me
.REG
[2] = NIT_NULL
;
4935 fra
.me
.REG
[3] = NIT_NULL
;
4936 fra
.me
.REG
[4] = NIT_NULL
;
4939 /* syntax/typing.nit:827 */
4940 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4941 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4942 /* syntax/typing.nit:830 */
4943 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4944 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4945 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4946 /* syntax/typing.nit:831 */
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_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4949 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4950 if (UNTAG_Bool(REGB0
)) {
4953 /* syntax/typing.nit:832 */
4954 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4955 if (UNTAG_Bool(REGB0
)) {
4957 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4958 if (UNTAG_Bool(REGB1
)) {
4959 REGB1
= TAG_Bool(0);
4962 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4966 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4967 if (UNTAG_Bool(REGB0
)) {
4968 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4969 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]);
4970 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4972 REGB1
= TAG_Bool(0);
4975 if (UNTAG_Bool(REGB0
)) {
4978 /* syntax/typing.nit:835 */
4979 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4980 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4981 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4982 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4983 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]);
4984 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4985 /* syntax/typing.nit:837 */
4986 REGB0
= TAG_Bool(1);
4987 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4989 stack_frame_head
= fra
.me
.prev
;
4992 static const char LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing
[] = "typing::AReassignFormExpr::do_rvalue_typing";
4993 val_t
syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0
, val_t p1
, val_t p2
){
4994 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4998 static val_t once_value_2
; /* Once value */
4999 static val_t once_value_3
; /* Once value */
5000 static val_t once_value_4
; /* Once value */
5001 static val_t once_value_5
; /* Once value */
5002 static val_t once_value_6
; /* Once value */
5003 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5004 fra
.me
.file
= LOCATE_syntax___typing
;
5006 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing
;
5007 fra
.me
.has_broke
= 0;
5008 fra
.me
.REG_size
= 8;
5009 fra
.me
.nitni_local_ref_head
= NULL
;
5010 fra
.me
.REG
[0] = NIT_NULL
;
5011 fra
.me
.REG
[1] = NIT_NULL
;
5012 fra
.me
.REG
[2] = NIT_NULL
;
5013 fra
.me
.REG
[3] = NIT_NULL
;
5014 fra
.me
.REG
[4] = NIT_NULL
;
5015 fra
.me
.REG
[5] = NIT_NULL
;
5016 fra
.me
.REG
[6] = NIT_NULL
;
5017 fra
.me
.REG
[7] = NIT_NULL
;
5021 /* syntax/typing.nit:847 */
5022 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5023 if (UNTAG_Bool(REGB0
)) {
5025 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5026 if (UNTAG_Bool(REGB1
)) {
5027 REGB1
= TAG_Bool(0);
5030 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5034 if (UNTAG_Bool(REGB0
)) {
5035 /* syntax/typing.nit:848 */
5036 fra
.me
.REG
[3] = NIT_NULL
;
5039 /* syntax/typing.nit:850 */
5040 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5041 fra
.me
.REG
[4] = CALL_syntax___typing___AAssignOp___method_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5042 /* syntax/typing.nit:851 */
5043 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*/;
5044 if (UNTAG_Bool(REGB0
)) {
5045 /* syntax/typing.nit:852 */
5047 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5048 if (!once_value_2
) {
5049 fra
.me
.REG
[6] = BOX_NativeString("Error: Method '");
5050 REGB0
= TAG_Int(15);
5051 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5052 once_value_2
= fra
.me
.REG
[6];
5053 register_static_object(&once_value_2
);
5054 } else fra
.me
.REG
[6] = once_value_2
;
5055 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5056 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5057 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5058 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5059 if (!once_value_3
) {
5060 fra
.me
.REG
[6] = BOX_NativeString("' call on 'null'.");
5061 REGB0
= TAG_Int(17);
5062 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5063 once_value_3
= fra
.me
.REG
[6];
5064 register_static_object(&once_value_3
);
5065 } else fra
.me
.REG
[6] = once_value_3
;
5066 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5067 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5068 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5069 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
5070 /* syntax/typing.nit:853 */
5071 fra
.me
.REG
[3] = NIT_NULL
;
5074 /* syntax/typing.nit:855 */
5075 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5076 if (UNTAG_Bool(REGB0
)) {
5077 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 855);
5079 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5080 /* syntax/typing.nit:856 */
5081 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5082 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5083 if (UNTAG_Bool(REGB0
)) {
5084 /* syntax/typing.nit:857 */
5086 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5087 if (!once_value_4
) {
5088 fra
.me
.REG
[7] = BOX_NativeString("Error: Method '");
5089 REGB0
= TAG_Int(15);
5090 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5091 once_value_4
= fra
.me
.REG
[7];
5092 register_static_object(&once_value_4
);
5093 } else fra
.me
.REG
[7] = once_value_4
;
5094 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5095 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5096 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5097 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5098 if (!once_value_5
) {
5099 fra
.me
.REG
[7] = BOX_NativeString("' doesn't exists in ");
5100 REGB0
= TAG_Int(20);
5101 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5102 once_value_5
= fra
.me
.REG
[7];
5103 register_static_object(&once_value_5
);
5104 } else fra
.me
.REG
[7] = once_value_5
;
5105 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5106 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5107 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5108 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5109 if (!once_value_6
) {
5110 fra
.me
.REG
[7] = BOX_NativeString(".");
5112 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5113 once_value_6
= fra
.me
.REG
[7];
5114 register_static_object(&once_value_6
);
5115 } else fra
.me
.REG
[7] = once_value_6
;
5116 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5117 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5118 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5119 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
5120 /* syntax/typing.nit:858 */
5121 fra
.me
.REG
[3] = NIT_NULL
;
5124 /* syntax/typing.nit:860 */
5125 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5126 /* syntax/typing.nit:861 */
5127 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5128 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5129 REGB0
= TAG_Bool(0);
5130 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
);
5131 /* syntax/typing.nit:862 */
5132 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5133 /* syntax/typing.nit:863 */
5134 ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5135 /* syntax/typing.nit:864 */
5136 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5138 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
5139 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5140 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]);
5141 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5142 if (UNTAG_Bool(REGB0
)) {
5143 fra
.me
.REG
[3] = NIT_NULL
;
5146 /* syntax/typing.nit:865 */
5147 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5148 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5149 if (UNTAG_Bool(REGB0
)) {
5150 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 865);
5152 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5153 fra
.me
.REG
[3] = fra
.me
.REG
[2];
5156 stack_frame_head
= fra
.me
.prev
;
5157 return fra
.me
.REG
[3];
5159 static const char LOCATE_syntax___typing___AReassignFormExpr___assign_method
[] = "typing::AReassignFormExpr::(syntax_base::AReassignFormExpr::assign_method)";
5160 val_t
syntax___typing___AReassignFormExpr___assign_method(val_t p0
){
5161 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5164 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5165 fra
.me
.file
= LOCATE_syntax___typing
;
5167 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___assign_method
;
5168 fra
.me
.has_broke
= 0;
5169 fra
.me
.REG_size
= 2;
5170 fra
.me
.nitni_local_ref_head
= NULL
;
5171 fra
.me
.REG
[0] = NIT_NULL
;
5172 fra
.me
.REG
[1] = NIT_NULL
;
5174 /* syntax/typing.nit:868 */
5175 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5176 fra
.me
.REG
[1] = ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[1]);
5177 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
5178 if (UNTAG_Bool(REGB0
)) {
5180 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 868);
5184 stack_frame_head
= fra
.me
.prev
;
5185 return fra
.me
.REG
[1];
5187 static const char LOCATE_syntax___typing___AVarReassignExpr___after_typing
[] = "typing::AVarReassignExpr::(typing::ANode::after_typing)";
5188 void syntax___typing___AVarReassignExpr___after_typing(val_t p0
, val_t p1
){
5189 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5193 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5194 fra
.me
.file
= LOCATE_syntax___typing
;
5196 fra
.me
.meth
= LOCATE_syntax___typing___AVarReassignExpr___after_typing
;
5197 fra
.me
.has_broke
= 0;
5198 fra
.me
.REG_size
= 5;
5199 fra
.me
.nitni_local_ref_head
= NULL
;
5200 fra
.me
.REG
[0] = NIT_NULL
;
5201 fra
.me
.REG
[1] = NIT_NULL
;
5202 fra
.me
.REG
[2] = NIT_NULL
;
5203 fra
.me
.REG
[3] = NIT_NULL
;
5204 fra
.me
.REG
[4] = NIT_NULL
;
5207 /* syntax/typing.nit:875 */
5208 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5209 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5210 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
5211 /* syntax/typing.nit:876 */
5212 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5213 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5214 /* syntax/typing.nit:877 */
5215 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5216 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5217 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5218 /* syntax/typing.nit:878 */
5219 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]);
5220 /* syntax/typing.nit:879 */
5221 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5222 if (UNTAG_Bool(REGB0
)) {
5224 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5225 if (UNTAG_Bool(REGB1
)) {
5226 REGB1
= TAG_Bool(0);
5229 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5233 if (UNTAG_Bool(REGB0
)) {
5236 /* syntax/typing.nit:882 */
5237 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5238 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5239 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5240 /* syntax/typing.nit:883 */
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_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5243 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5244 if (UNTAG_Bool(REGB0
)) {
5247 /* syntax/typing.nit:884 */
5248 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5249 if (UNTAG_Bool(REGB0
)) {
5251 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5252 if (UNTAG_Bool(REGB1
)) {
5253 REGB1
= TAG_Bool(0);
5256 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5260 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5261 if (UNTAG_Bool(REGB0
)) {
5262 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5263 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]);
5264 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5266 REGB1
= TAG_Bool(0);
5269 if (UNTAG_Bool(REGB0
)) {
5272 /* syntax/typing.nit:887 */
5273 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5274 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5275 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]);
5276 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5277 /* syntax/typing.nit:889 */
5278 REGB0
= TAG_Bool(1);
5279 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5281 stack_frame_head
= fra
.me
.prev
;
5284 static const char LOCATE_syntax___typing___AAssignOp___method_name
[] = "typing::AAssignOp::method_name";
5285 val_t
syntax___typing___AAssignOp___method_name(val_t p0
){
5286 struct {struct stack_frame_t me
;} fra
;
5288 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5289 fra
.me
.file
= LOCATE_syntax___typing
;
5291 fra
.me
.meth
= LOCATE_syntax___typing___AAssignOp___method_name
;
5292 fra
.me
.has_broke
= 0;
5293 fra
.me
.REG_size
= 0;
5294 fra
.me
.nitni_local_ref_head
= NULL
;
5295 /* syntax/typing.nit:894 */
5296 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 894);
5297 stack_frame_head
= fra
.me
.prev
;
5300 static const char LOCATE_syntax___typing___APlusAssignOp___method_name
[] = "typing::APlusAssignOp::(typing::AAssignOp::method_name)";
5301 val_t
syntax___typing___APlusAssignOp___method_name(val_t p0
){
5302 struct {struct stack_frame_t me
;} fra
;
5305 static val_t once_value_1
; /* Once value */
5306 static val_t once_value_2
; /* Once value */
5307 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5308 fra
.me
.file
= LOCATE_syntax___typing
;
5310 fra
.me
.meth
= LOCATE_syntax___typing___APlusAssignOp___method_name
;
5311 fra
.me
.has_broke
= 0;
5312 fra
.me
.REG_size
= 1;
5313 fra
.me
.nitni_local_ref_head
= NULL
;
5314 fra
.me
.REG
[0] = NIT_NULL
;
5316 /* syntax/typing.nit:897 */
5317 if (!once_value_1
) {
5318 if (!once_value_2
) {
5319 fra
.me
.REG
[0] = BOX_NativeString("+");
5321 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5322 once_value_2
= fra
.me
.REG
[0];
5323 register_static_object(&once_value_2
);
5324 } else fra
.me
.REG
[0] = once_value_2
;
5325 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5326 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5327 once_value_1
= fra
.me
.REG
[0];
5328 register_static_object(&once_value_1
);
5329 } else fra
.me
.REG
[0] = once_value_1
;
5330 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5333 stack_frame_head
= fra
.me
.prev
;
5334 return fra
.me
.REG
[0];
5336 static const char LOCATE_syntax___typing___AMinusAssignOp___method_name
[] = "typing::AMinusAssignOp::(typing::AAssignOp::method_name)";
5337 val_t
syntax___typing___AMinusAssignOp___method_name(val_t p0
){
5338 struct {struct stack_frame_t me
;} fra
;
5341 static val_t once_value_1
; /* Once value */
5342 static val_t once_value_2
; /* Once value */
5343 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5344 fra
.me
.file
= LOCATE_syntax___typing
;
5346 fra
.me
.meth
= LOCATE_syntax___typing___AMinusAssignOp___method_name
;
5347 fra
.me
.has_broke
= 0;
5348 fra
.me
.REG_size
= 1;
5349 fra
.me
.nitni_local_ref_head
= NULL
;
5350 fra
.me
.REG
[0] = NIT_NULL
;
5352 /* syntax/typing.nit:900 */
5353 if (!once_value_1
) {
5354 if (!once_value_2
) {
5355 fra
.me
.REG
[0] = BOX_NativeString("-");
5357 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5358 once_value_2
= fra
.me
.REG
[0];
5359 register_static_object(&once_value_2
);
5360 } else fra
.me
.REG
[0] = once_value_2
;
5361 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5362 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5363 once_value_1
= fra
.me
.REG
[0];
5364 register_static_object(&once_value_1
);
5365 } else fra
.me
.REG
[0] = once_value_1
;
5366 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5369 stack_frame_head
= fra
.me
.prev
;
5370 return fra
.me
.REG
[0];
5372 static const char LOCATE_syntax___typing___ASelfExpr___variable
[] = "typing::ASelfExpr::(syntax_base::ASelfExpr::variable)";
5373 val_t
syntax___typing___ASelfExpr___variable(val_t p0
){
5374 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5377 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5378 fra
.me
.file
= LOCATE_syntax___typing
;
5380 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___variable
;
5381 fra
.me
.has_broke
= 0;
5382 fra
.me
.REG_size
= 2;
5383 fra
.me
.nitni_local_ref_head
= NULL
;
5384 fra
.me
.REG
[0] = NIT_NULL
;
5385 fra
.me
.REG
[1] = NIT_NULL
;
5387 /* syntax/typing.nit:905 */
5388 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5389 fra
.me
.REG
[1] = ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[1]);
5390 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
5391 if (UNTAG_Bool(REGB0
)) {
5393 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 905);
5397 stack_frame_head
= fra
.me
.prev
;
5398 return fra
.me
.REG
[1];
5400 static const char LOCATE_syntax___typing___ASelfExpr___its_variable
[] = "typing::ASelfExpr::(typing::AExpr::its_variable)";
5401 val_t
syntax___typing___ASelfExpr___its_variable(val_t p0
){
5402 struct {struct stack_frame_t me
;} 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___its_variable
;
5408 fra
.me
.has_broke
= 0;
5409 fra
.me
.REG_size
= 1;
5410 fra
.me
.nitni_local_ref_head
= NULL
;
5411 fra
.me
.REG
[0] = NIT_NULL
;
5413 /* syntax/typing.nit:907 */
5414 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5417 stack_frame_head
= fra
.me
.prev
;
5418 return fra
.me
.REG
[0];
5420 static const char LOCATE_syntax___typing___ASelfExpr___after_typing
[] = "typing::ASelfExpr::(typing::ANode::after_typing)";
5421 void syntax___typing___ASelfExpr___after_typing(val_t p0
, val_t p1
){
5422 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5425 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5426 fra
.me
.file
= LOCATE_syntax___typing
;
5428 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___after_typing
;
5429 fra
.me
.has_broke
= 0;
5430 fra
.me
.REG_size
= 3;
5431 fra
.me
.nitni_local_ref_head
= NULL
;
5432 fra
.me
.REG
[0] = NIT_NULL
;
5433 fra
.me
.REG
[1] = NIT_NULL
;
5434 fra
.me
.REG
[2] = NIT_NULL
;
5437 /* syntax/typing.nit:911 */
5438 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5439 ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5440 /* syntax/typing.nit:912 */
5441 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5442 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5443 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5444 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5445 /* syntax/typing.nit:913 */
5446 REGB0
= TAG_Bool(1);
5447 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5448 stack_frame_head
= fra
.me
.prev
;
5451 static const char LOCATE_syntax___typing___ASelfExpr___is_self
[] = "typing::ASelfExpr::(typing::AExpr::is_self)";
5452 val_t
syntax___typing___ASelfExpr___is_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___ASelfExpr___is_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:916 */
5466 REGB0
= TAG_Bool(1);
5469 stack_frame_head
= fra
.me
.prev
;
5472 static const char LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self
[] = "typing::AImplicitSelfExpr::(typing::AExpr::is_implicit_self)";
5473 val_t
syntax___typing___AImplicitSelfExpr___is_implicit_self(val_t p0
){
5474 struct {struct stack_frame_t me
;} fra
;
5477 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5478 fra
.me
.file
= LOCATE_syntax___typing
;
5480 fra
.me
.meth
= LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self
;
5481 fra
.me
.has_broke
= 0;
5482 fra
.me
.REG_size
= 1;
5483 fra
.me
.nitni_local_ref_head
= NULL
;
5484 fra
.me
.REG
[0] = NIT_NULL
;
5486 /* syntax/typing.nit:920 */
5487 REGB0
= TAG_Bool(1);
5490 stack_frame_head
= fra
.me
.prev
;
5493 static const char LOCATE_syntax___typing___AIfexprExpr___accept_typing
[] = "typing::AIfexprExpr::(typing::ANode::accept_typing)";
5494 void syntax___typing___AIfexprExpr___accept_typing(val_t p0
, val_t p1
){
5495 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5499 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5500 fra
.me
.file
= LOCATE_syntax___typing
;
5502 fra
.me
.meth
= LOCATE_syntax___typing___AIfexprExpr___accept_typing
;
5503 fra
.me
.has_broke
= 0;
5504 fra
.me
.REG_size
= 5;
5505 fra
.me
.nitni_local_ref_head
= NULL
;
5506 fra
.me
.REG
[0] = NIT_NULL
;
5507 fra
.me
.REG
[1] = NIT_NULL
;
5508 fra
.me
.REG
[2] = NIT_NULL
;
5509 fra
.me
.REG
[3] = NIT_NULL
;
5510 fra
.me
.REG
[4] = NIT_NULL
;
5513 /* syntax/typing.nit:926 */
5514 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5515 /* syntax/typing.nit:929 */
5516 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5517 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5518 /* syntax/typing.nit:930 */
5519 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5520 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5521 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5522 /* syntax/typing.nit:933 */
5523 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5524 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5525 /* syntax/typing.nit:936 */
5526 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5527 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5528 /* syntax/typing.nit:939 */
5529 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5530 /* syntax/typing.nit:942 */
5531 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5532 /* syntax/typing.nit:943 */
5533 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5534 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5535 /* syntax/typing.nit:946 */
5536 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5537 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5538 /* syntax/typing.nit:949 */
5539 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5540 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5541 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]);
5542 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5543 /* syntax/typing.nit:951 */
5545 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5546 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5547 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5548 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5549 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5550 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]);
5551 /* syntax/typing.nit:952 */
5552 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5553 if (UNTAG_Bool(REGB0
)) {
5555 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5556 if (UNTAG_Bool(REGB1
)) {
5557 REGB1
= TAG_Bool(0);
5560 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5564 if (UNTAG_Bool(REGB0
)) {
5567 /* syntax/typing.nit:954 */
5568 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5569 /* syntax/typing.nit:955 */
5570 REGB0
= TAG_Bool(1);
5571 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5573 stack_frame_head
= fra
.me
.prev
;
5576 static const char LOCATE_syntax___typing___ABoolExpr___after_typing
[] = "typing::ABoolExpr::(typing::ANode::after_typing)";
5577 void syntax___typing___ABoolExpr___after_typing(val_t p0
, val_t p1
){
5578 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5581 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5582 fra
.me
.file
= LOCATE_syntax___typing
;
5584 fra
.me
.meth
= LOCATE_syntax___typing___ABoolExpr___after_typing
;
5585 fra
.me
.has_broke
= 0;
5586 fra
.me
.REG_size
= 2;
5587 fra
.me
.nitni_local_ref_head
= NULL
;
5588 fra
.me
.REG
[0] = NIT_NULL
;
5589 fra
.me
.REG
[1] = NIT_NULL
;
5592 /* syntax/typing.nit:962 */
5593 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5594 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5595 /* syntax/typing.nit:963 */
5596 REGB0
= TAG_Bool(1);
5597 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5598 stack_frame_head
= fra
.me
.prev
;
5601 static const char LOCATE_syntax___typing___AOrExpr___accept_typing
[] = "typing::AOrExpr::(typing::ANode::accept_typing)";
5602 void syntax___typing___AOrExpr___accept_typing(val_t p0
, val_t p1
){
5603 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5607 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5608 fra
.me
.file
= LOCATE_syntax___typing
;
5610 fra
.me
.meth
= LOCATE_syntax___typing___AOrExpr___accept_typing
;
5611 fra
.me
.has_broke
= 0;
5612 fra
.me
.REG_size
= 5;
5613 fra
.me
.nitni_local_ref_head
= NULL
;
5614 fra
.me
.REG
[0] = NIT_NULL
;
5615 fra
.me
.REG
[1] = NIT_NULL
;
5616 fra
.me
.REG
[2] = NIT_NULL
;
5617 fra
.me
.REG
[3] = NIT_NULL
;
5618 fra
.me
.REG
[4] = NIT_NULL
;
5621 /* syntax/typing.nit:970 */
5622 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5623 /* syntax/typing.nit:971 */
5624 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5625 /* syntax/typing.nit:972 */
5626 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5627 /* syntax/typing.nit:975 */
5628 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5629 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5630 /* syntax/typing.nit:978 */
5631 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5632 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5633 /* syntax/typing.nit:981 */
5634 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5635 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5636 /* syntax/typing.nit:982 */
5637 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5638 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5639 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5640 if (UNTAG_Bool(REGB0
)) {
5642 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5643 if (UNTAG_Bool(REGB1
)) {
5644 REGB1
= TAG_Bool(0);
5647 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5651 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5652 if (UNTAG_Bool(REGB0
)) {
5653 /* syntax/typing.nit:983 */
5654 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5655 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5656 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5658 /* syntax/typing.nit:985 */
5659 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5660 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5662 /* syntax/typing.nit:988 */
5663 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5664 /* syntax/typing.nit:990 */
5665 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5666 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5667 /* syntax/typing.nit:991 */
5668 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5669 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5670 /* syntax/typing.nit:992 */
5671 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5672 /* syntax/typing.nit:993 */
5673 REGB0
= TAG_Bool(1);
5674 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5675 stack_frame_head
= fra
.me
.prev
;
5678 static const char LOCATE_syntax___typing___AAndExpr___accept_typing
[] = "typing::AAndExpr::(typing::ANode::accept_typing)";
5679 void syntax___typing___AAndExpr___accept_typing(val_t p0
, val_t p1
){
5680 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5684 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5685 fra
.me
.file
= LOCATE_syntax___typing
;
5687 fra
.me
.meth
= LOCATE_syntax___typing___AAndExpr___accept_typing
;
5688 fra
.me
.has_broke
= 0;
5689 fra
.me
.REG_size
= 5;
5690 fra
.me
.nitni_local_ref_head
= NULL
;
5691 fra
.me
.REG
[0] = NIT_NULL
;
5692 fra
.me
.REG
[1] = NIT_NULL
;
5693 fra
.me
.REG
[2] = NIT_NULL
;
5694 fra
.me
.REG
[3] = NIT_NULL
;
5695 fra
.me
.REG
[4] = NIT_NULL
;
5698 /* syntax/typing.nit:1000 */
5699 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5700 /* syntax/typing.nit:1001 */
5701 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5702 /* syntax/typing.nit:1004 */
5703 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5704 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5705 /* syntax/typing.nit:1007 */
5706 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5707 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5708 /* syntax/typing.nit:1010 */
5709 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5710 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5711 /* syntax/typing.nit:1011 */
5712 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5713 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5714 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5715 if (UNTAG_Bool(REGB0
)) {
5717 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5718 if (UNTAG_Bool(REGB1
)) {
5719 REGB1
= TAG_Bool(0);
5722 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5726 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5727 if (UNTAG_Bool(REGB0
)) {
5728 /* syntax/typing.nit:1012 */
5729 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5730 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5731 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5733 /* syntax/typing.nit:1014 */
5734 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5735 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5737 /* syntax/typing.nit:1017 */
5738 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5739 /* syntax/typing.nit:1019 */
5740 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5741 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5742 /* syntax/typing.nit:1020 */
5743 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5744 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5745 /* syntax/typing.nit:1021 */
5746 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5747 /* syntax/typing.nit:1022 */
5748 REGB0
= TAG_Bool(1);
5749 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5750 stack_frame_head
= fra
.me
.prev
;
5753 static const char LOCATE_syntax___typing___ANotExpr___after_typing
[] = "typing::ANotExpr::(typing::ANode::after_typing)";
5754 void syntax___typing___ANotExpr___after_typing(val_t p0
, val_t p1
){
5755 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5758 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5759 fra
.me
.file
= LOCATE_syntax___typing
;
5761 fra
.me
.meth
= LOCATE_syntax___typing___ANotExpr___after_typing
;
5762 fra
.me
.has_broke
= 0;
5763 fra
.me
.REG_size
= 4;
5764 fra
.me
.nitni_local_ref_head
= NULL
;
5765 fra
.me
.REG
[0] = NIT_NULL
;
5766 fra
.me
.REG
[1] = NIT_NULL
;
5767 fra
.me
.REG
[2] = NIT_NULL
;
5768 fra
.me
.REG
[3] = NIT_NULL
;
5771 /* syntax/typing.nit:1029 */
5772 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5773 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5774 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5775 /* syntax/typing.nit:1032 */
5776 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5777 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[3]);
5778 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5779 /* syntax/typing.nit:1033 */
5780 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5781 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[3]);
5782 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5783 /* syntax/typing.nit:1035 */
5784 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5785 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5786 /* syntax/typing.nit:1036 */
5787 REGB0
= TAG_Bool(1);
5788 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5789 stack_frame_head
= fra
.me
.prev
;
5792 static const char LOCATE_syntax___typing___AOrElseExpr___after_typing
[] = "typing::AOrElseExpr::(typing::ANode::after_typing)";
5793 void syntax___typing___AOrElseExpr___after_typing(val_t p0
, val_t p1
){
5794 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5798 static val_t once_value_1
; /* Once value */
5799 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5800 fra
.me
.file
= LOCATE_syntax___typing
;
5802 fra
.me
.meth
= LOCATE_syntax___typing___AOrElseExpr___after_typing
;
5803 fra
.me
.has_broke
= 0;
5804 fra
.me
.REG_size
= 7;
5805 fra
.me
.nitni_local_ref_head
= NULL
;
5806 fra
.me
.REG
[0] = NIT_NULL
;
5807 fra
.me
.REG
[1] = NIT_NULL
;
5808 fra
.me
.REG
[2] = NIT_NULL
;
5809 fra
.me
.REG
[3] = NIT_NULL
;
5810 fra
.me
.REG
[4] = NIT_NULL
;
5811 fra
.me
.REG
[5] = NIT_NULL
;
5812 fra
.me
.REG
[6] = NIT_NULL
;
5815 /* syntax/typing.nit:1043 */
5816 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5817 /* syntax/typing.nit:1046 */
5818 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5819 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5820 /* syntax/typing.nit:1047 */
5821 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5822 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5823 /* syntax/typing.nit:1050 */
5824 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5825 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5826 /* syntax/typing.nit:1051 */
5827 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5828 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5829 if (UNTAG_Bool(REGB0
)) {
5830 /* syntax/typing.nit:1052 */
5831 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5832 if (!once_value_1
) {
5833 fra
.me
.REG
[5] = BOX_NativeString("Warning: left operand of a 'or else' is not a nullable type.");
5834 REGB0
= TAG_Int(60);
5835 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5836 once_value_1
= fra
.me
.REG
[5];
5837 register_static_object(&once_value_1
);
5838 } else fra
.me
.REG
[5] = once_value_1
;
5839 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5840 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
5842 /* syntax/typing.nit:1054 */
5843 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5844 fra
.me
.REG
[3] = fra
.me
.REG
[5];
5846 /* syntax/typing.nit:1058 */
5847 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5848 fra
.me
.REG
[5] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5849 /* syntax/typing.nit:1059 */
5850 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5851 if (UNTAG_Bool(REGB0
)) {
5853 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5854 if (UNTAG_Bool(REGB1
)) {
5855 REGB1
= TAG_Bool(0);
5858 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5862 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5863 if (UNTAG_Bool(REGB0
)) {
5864 /* syntax/typing.nit:1060 */
5865 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5866 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5867 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]);
5869 /* syntax/typing.nit:1064 */
5870 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5871 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5872 /* syntax/typing.nit:1065 */
5873 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5874 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5875 /* syntax/typing.nit:1068 */
5876 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5877 /* syntax/typing.nit:1071 */
5879 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5880 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5881 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5882 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]);
5883 /* syntax/typing.nit:1072 */
5884 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5885 if (UNTAG_Bool(REGB0
)) {
5887 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5888 if (UNTAG_Bool(REGB1
)) {
5889 REGB1
= TAG_Bool(0);
5892 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5896 if (UNTAG_Bool(REGB0
)) {
5899 /* syntax/typing.nit:1074 */
5900 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5901 /* syntax/typing.nit:1075 */
5902 REGB0
= TAG_Bool(1);
5903 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5905 stack_frame_head
= fra
.me
.prev
;
5908 static const char LOCATE_syntax___typing___AIntExpr___after_typing
[] = "typing::AIntExpr::(typing::ANode::after_typing)";
5909 void syntax___typing___AIntExpr___after_typing(val_t p0
, val_t p1
){
5910 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5913 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5914 fra
.me
.file
= LOCATE_syntax___typing
;
5916 fra
.me
.meth
= LOCATE_syntax___typing___AIntExpr___after_typing
;
5917 fra
.me
.has_broke
= 0;
5918 fra
.me
.REG_size
= 2;
5919 fra
.me
.nitni_local_ref_head
= NULL
;
5920 fra
.me
.REG
[0] = NIT_NULL
;
5921 fra
.me
.REG
[1] = NIT_NULL
;
5924 /* syntax/typing.nit:1082 */
5925 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5926 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5927 /* syntax/typing.nit:1083 */
5928 REGB0
= TAG_Bool(1);
5929 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5930 stack_frame_head
= fra
.me
.prev
;
5933 static const char LOCATE_syntax___typing___AFloatExpr___after_typing
[] = "typing::AFloatExpr::(typing::ANode::after_typing)";
5934 void syntax___typing___AFloatExpr___after_typing(val_t p0
, val_t p1
){
5935 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5938 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5939 fra
.me
.file
= LOCATE_syntax___typing
;
5941 fra
.me
.meth
= LOCATE_syntax___typing___AFloatExpr___after_typing
;
5942 fra
.me
.has_broke
= 0;
5943 fra
.me
.REG_size
= 2;
5944 fra
.me
.nitni_local_ref_head
= NULL
;
5945 fra
.me
.REG
[0] = NIT_NULL
;
5946 fra
.me
.REG
[1] = NIT_NULL
;
5949 /* syntax/typing.nit:1090 */
5950 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5951 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5952 /* syntax/typing.nit:1091 */
5953 REGB0
= TAG_Bool(1);
5954 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5955 stack_frame_head
= fra
.me
.prev
;
5958 static const char LOCATE_syntax___typing___ACharExpr___after_typing
[] = "typing::ACharExpr::(typing::ANode::after_typing)";
5959 void syntax___typing___ACharExpr___after_typing(val_t p0
, val_t p1
){
5960 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5963 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5964 fra
.me
.file
= LOCATE_syntax___typing
;
5966 fra
.me
.meth
= LOCATE_syntax___typing___ACharExpr___after_typing
;
5967 fra
.me
.has_broke
= 0;
5968 fra
.me
.REG_size
= 2;
5969 fra
.me
.nitni_local_ref_head
= NULL
;
5970 fra
.me
.REG
[0] = NIT_NULL
;
5971 fra
.me
.REG
[1] = NIT_NULL
;
5974 /* syntax/typing.nit:1098 */
5975 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5976 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5977 /* syntax/typing.nit:1099 */
5978 REGB0
= TAG_Bool(1);
5979 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5980 stack_frame_head
= fra
.me
.prev
;
5983 static const char LOCATE_syntax___typing___AStringFormExpr___after_typing
[] = "typing::AStringFormExpr::(typing::ANode::after_typing)";
5984 void syntax___typing___AStringFormExpr___after_typing(val_t p0
, val_t p1
){
5985 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5988 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5989 fra
.me
.file
= LOCATE_syntax___typing
;
5991 fra
.me
.meth
= LOCATE_syntax___typing___AStringFormExpr___after_typing
;
5992 fra
.me
.has_broke
= 0;
5993 fra
.me
.REG_size
= 2;
5994 fra
.me
.nitni_local_ref_head
= NULL
;
5995 fra
.me
.REG
[0] = NIT_NULL
;
5996 fra
.me
.REG
[1] = NIT_NULL
;
5999 /* syntax/typing.nit:1106 */
6000 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6001 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
6002 /* syntax/typing.nit:1107 */
6003 REGB0
= TAG_Bool(1);
6004 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6005 stack_frame_head
= fra
.me
.prev
;
6008 static const char LOCATE_syntax___typing___ASuperstringExpr___atype
[] = "typing::ASuperstringExpr::(syntax_base::ASuperstringExpr::atype)";
6009 val_t
syntax___typing___ASuperstringExpr___atype(val_t p0
){
6010 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6013 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6014 fra
.me
.file
= LOCATE_syntax___typing
;
6016 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___atype
;
6017 fra
.me
.has_broke
= 0;
6018 fra
.me
.REG_size
= 2;
6019 fra
.me
.nitni_local_ref_head
= NULL
;
6020 fra
.me
.REG
[0] = NIT_NULL
;
6021 fra
.me
.REG
[1] = NIT_NULL
;
6023 /* syntax/typing.nit:1112 */
6024 fra
.me
.REG
[1] = fra
.me
.REG
[0];
6025 fra
.me
.REG
[1] = ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[1]);
6026 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
6027 if (UNTAG_Bool(REGB0
)) {
6029 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1112);
6033 stack_frame_head
= fra
.me
.prev
;
6034 return fra
.me
.REG
[1];
6036 static const char LOCATE_syntax___typing___ASuperstringExpr___after_typing
[] = "typing::ASuperstringExpr::(typing::ANode::after_typing)";
6037 void syntax___typing___ASuperstringExpr___after_typing(val_t p0
, val_t p1
){
6038 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6041 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6042 fra
.me
.file
= LOCATE_syntax___typing
;
6044 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
6045 fra
.me
.has_broke
= 0;
6046 fra
.me
.REG_size
= 5;
6047 fra
.me
.nitni_local_ref_head
= NULL
;
6048 fra
.me
.REG
[0] = NIT_NULL
;
6049 fra
.me
.REG
[1] = NIT_NULL
;
6050 fra
.me
.REG
[2] = NIT_NULL
;
6051 fra
.me
.REG
[3] = NIT_NULL
;
6052 fra
.me
.REG
[4] = NIT_NULL
;
6055 /* syntax/typing.nit:1116 */
6056 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6057 /* syntax/typing.nit:1117 */
6058 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6059 /* syntax/typing.nit:1118 */
6060 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
6061 /* syntax/typing.nit:1119 */
6062 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6063 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
));
6064 /* syntax/typing.nit:1120 */
6065 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6066 /* syntax/typing.nit:1121 */
6067 ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
6068 /* syntax/typing.nit:1122 */
6069 REGB0
= TAG_Bool(1);
6070 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6071 stack_frame_head
= fra
.me
.prev
;
6074 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
){
6075 struct {struct stack_frame_t me
;} 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___ASuperstringExpr___after_typing
;
6082 fra
.me
.has_broke
= 0;
6083 fra
.me
.REG_size
= 1;
6084 fra
.me
.nitni_local_ref_head
= NULL
;
6085 fra
.me
.REG
[0] = NIT_NULL
;
6086 fra
.me
.closure_ctx
= closctx_param
;
6087 fra
.me
.closure_funs
= CREG
;
6089 CREG
[0] = clos_fun0
;
6090 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], closctx
->REG
[2]);
6091 stack_frame_head
= fra
.me
.prev
;
6094 static const char LOCATE_syntax___typing___ANullExpr___after_typing
[] = "typing::ANullExpr::(typing::ANode::after_typing)";
6095 void syntax___typing___ANullExpr___after_typing(val_t p0
, val_t p1
){
6096 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6099 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6100 fra
.me
.file
= LOCATE_syntax___typing
;
6102 fra
.me
.meth
= LOCATE_syntax___typing___ANullExpr___after_typing
;
6103 fra
.me
.has_broke
= 0;
6104 fra
.me
.REG_size
= 2;
6105 fra
.me
.nitni_local_ref_head
= NULL
;
6106 fra
.me
.REG
[0] = NIT_NULL
;
6107 fra
.me
.REG
[1] = NIT_NULL
;
6110 /* syntax/typing.nit:1129 */
6111 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6112 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
6113 /* syntax/typing.nit:1130 */
6114 REGB0
= TAG_Bool(1);
6115 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6116 stack_frame_head
= fra
.me
.prev
;
6119 static const char LOCATE_syntax___typing___AArrayExpr___after_typing
[] = "typing::AArrayExpr::(typing::ANode::after_typing)";
6120 void syntax___typing___AArrayExpr___after_typing(val_t p0
, val_t p1
){
6121 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6125 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6126 fra
.me
.file
= LOCATE_syntax___typing
;
6128 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___after_typing
;
6129 fra
.me
.has_broke
= 0;
6130 fra
.me
.REG_size
= 3;
6131 fra
.me
.nitni_local_ref_head
= NULL
;
6132 fra
.me
.REG
[0] = NIT_NULL
;
6133 fra
.me
.REG
[1] = NIT_NULL
;
6134 fra
.me
.REG
[2] = NIT_NULL
;
6137 /* syntax/typing.nit:1137 */
6138 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6139 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6140 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]);
6141 /* syntax/typing.nit:1138 */
6142 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6143 if (UNTAG_Bool(REGB0
)) {
6145 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6146 if (UNTAG_Bool(REGB1
)) {
6147 REGB1
= TAG_Bool(0);
6150 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6154 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6155 if (UNTAG_Bool(REGB0
)) {
6156 CALL_syntax___typing___AArrayExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
6158 stack_frame_head
= fra
.me
.prev
;
6161 static const char LOCATE_syntax___typing___AArrayExpr___do_typing
[] = "typing::AArrayExpr::do_typing";
6162 void syntax___typing___AArrayExpr___do_typing(val_t p0
, val_t p1
, val_t p2
){
6163 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6166 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6167 fra
.me
.file
= LOCATE_syntax___typing
;
6169 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___do_typing
;
6170 fra
.me
.has_broke
= 0;
6171 fra
.me
.REG_size
= 3;
6172 fra
.me
.nitni_local_ref_head
= NULL
;
6173 fra
.me
.REG
[0] = NIT_NULL
;
6174 fra
.me
.REG
[1] = NIT_NULL
;
6175 fra
.me
.REG
[2] = NIT_NULL
;
6179 /* syntax/typing.nit:1143 */
6180 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6181 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
6182 /* syntax/typing.nit:1144 */
6183 REGB0
= TAG_Bool(1);
6184 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6185 stack_frame_head
= fra
.me
.prev
;
6188 static const char LOCATE_syntax___typing___ARangeExpr___after_typing
[] = "typing::ARangeExpr::(typing::ANode::after_typing)";
6189 void syntax___typing___ARangeExpr___after_typing(val_t p0
, val_t p1
){
6190 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
6194 static val_t once_value_2
; /* Once value */
6195 static val_t once_value_3
; /* Once value */
6196 static val_t once_value_4
; /* Once value */
6197 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6198 fra
.me
.file
= LOCATE_syntax___typing
;
6200 fra
.me
.meth
= LOCATE_syntax___typing___ARangeExpr___after_typing
;
6201 fra
.me
.has_broke
= 0;
6202 fra
.me
.REG_size
= 6;
6203 fra
.me
.nitni_local_ref_head
= NULL
;
6204 fra
.me
.REG
[0] = NIT_NULL
;
6205 fra
.me
.REG
[1] = NIT_NULL
;
6206 fra
.me
.REG
[2] = NIT_NULL
;
6207 fra
.me
.REG
[3] = NIT_NULL
;
6208 fra
.me
.REG
[4] = NIT_NULL
;
6209 fra
.me
.REG
[5] = NIT_NULL
;
6212 /* syntax/typing.nit:1151 */
6213 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6214 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6215 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6216 if (UNTAG_Bool(REGB0
)) {
6217 REGB0
= TAG_Bool(1);
6219 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6220 REGB1
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6221 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6224 if (UNTAG_Bool(REGB0
)) {
6227 /* syntax/typing.nit:1152 */
6228 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6229 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6230 /* syntax/typing.nit:1153 */
6231 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6232 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6233 /* syntax/typing.nit:1154 */
6234 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6235 if (UNTAG_Bool(REGB0
)) {
6236 /* syntax/typing.nit:1155 */
6237 fra
.me
.REG
[2] = fra
.me
.REG
[3];
6239 /* syntax/typing.nit:1156 */
6240 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
6241 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6242 if (UNTAG_Bool(REGB0
)) {
6243 /* syntax/typing.nit:1157 */
6245 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6246 if (!once_value_2
) {
6247 fra
.me
.REG
[5] = BOX_NativeString("Type error: ");
6248 REGB0
= TAG_Int(12);
6249 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6250 once_value_2
= fra
.me
.REG
[5];
6251 register_static_object(&once_value_2
);
6252 } else fra
.me
.REG
[5] = once_value_2
;
6253 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6254 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6255 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6256 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6257 if (!once_value_3
) {
6258 fra
.me
.REG
[5] = BOX_NativeString(" incompatible with ");
6259 REGB0
= TAG_Int(19);
6260 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6261 once_value_3
= fra
.me
.REG
[5];
6262 register_static_object(&once_value_3
);
6263 } else fra
.me
.REG
[5] = once_value_3
;
6264 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6265 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6266 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6267 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6268 if (!once_value_4
) {
6269 fra
.me
.REG
[3] = BOX_NativeString(".");
6271 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6272 once_value_4
= fra
.me
.REG
[3];
6273 register_static_object(&once_value_4
);
6274 } else fra
.me
.REG
[3] = once_value_4
;
6275 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6276 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6277 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6278 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
6279 /* syntax/typing.nit:1158 */
6283 /* syntax/typing.nit:1160 */
6284 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_discrete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6285 /* syntax/typing.nit:1161 */
6286 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6287 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]);
6288 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6289 if (UNTAG_Bool(REGB0
)) {
6290 REGB0
= TAG_Bool(1);
6292 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6293 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]);
6294 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6297 if (UNTAG_Bool(REGB0
)) {
6300 /* syntax/typing.nit:1162 */
6301 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6302 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
6303 /* syntax/typing.nit:1163 */
6304 REGB0
= TAG_Bool(1);
6305 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6307 stack_frame_head
= fra
.me
.prev
;
6310 static const char LOCATE_syntax___typing___ASuperExpr___init_in_superclass
[] = "typing::ASuperExpr::(syntax_base::ASuperExpr::init_in_superclass)";
6311 val_t
syntax___typing___ASuperExpr___init_in_superclass(val_t p0
){
6312 struct {struct stack_frame_t me
;} fra
;
6314 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6315 fra
.me
.file
= LOCATE_syntax___typing
;
6317 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___init_in_superclass
;
6318 fra
.me
.has_broke
= 0;
6319 fra
.me
.REG_size
= 1;
6320 fra
.me
.nitni_local_ref_head
= NULL
;
6321 fra
.me
.REG
[0] = NIT_NULL
;
6323 /* syntax/typing.nit:1168 */
6324 fra
.me
.REG
[0] = ATTR_syntax___typing___ASuperExpr____init_in_superclass(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___compute_raw_arguments
[] = "typing::ASuperExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
6329 val_t
syntax___typing___ASuperExpr___compute_raw_arguments(val_t p0
){
6330 struct {struct stack_frame_t me
;} fra
;
6332 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6333 fra
.me
.file
= LOCATE_syntax___typing
;
6335 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___compute_raw_arguments
;
6336 fra
.me
.has_broke
= 0;
6337 fra
.me
.REG_size
= 1;
6338 fra
.me
.nitni_local_ref_head
= NULL
;
6339 fra
.me
.REG
[0] = NIT_NULL
;
6341 /* syntax/typing.nit:1169 */
6342 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6343 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6346 stack_frame_head
= fra
.me
.prev
;
6347 return fra
.me
.REG
[0];
6349 static const char LOCATE_syntax___typing___ASuperExpr___after_typing
[] = "typing::ASuperExpr::(typing::ANode::after_typing)";
6350 void syntax___typing___ASuperExpr___after_typing(val_t p0
, val_t p1
){
6351 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
6356 static val_t once_value_1
; /* Once value */
6357 static val_t once_value_2
; /* Once value */
6358 static val_t once_value_3
; /* Once value */
6359 static val_t once_value_5
; /* Once value */
6360 static val_t once_value_6
; /* Once value */
6361 static val_t once_value_8
; /* Once value */
6362 static val_t once_value_9
; /* Once value */
6363 static val_t once_value_10
; /* Once value */
6364 static val_t once_value_11
; /* Once value */
6365 static val_t once_value_12
; /* Once value */
6366 static val_t once_value_13
; /* Once value */
6367 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6368 fra
.me
.file
= LOCATE_syntax___typing
;
6370 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___after_typing
;
6371 fra
.me
.has_broke
= 0;
6372 fra
.me
.REG_size
= 10;
6373 fra
.me
.nitni_local_ref_head
= NULL
;
6374 fra
.me
.REG
[0] = NIT_NULL
;
6375 fra
.me
.REG
[1] = NIT_NULL
;
6376 fra
.me
.REG
[2] = NIT_NULL
;
6377 fra
.me
.REG
[3] = NIT_NULL
;
6378 fra
.me
.REG
[4] = NIT_NULL
;
6379 fra
.me
.REG
[5] = NIT_NULL
;
6380 fra
.me
.REG
[6] = NIT_NULL
;
6381 fra
.me
.REG
[7] = NIT_NULL
;
6382 fra
.me
.REG
[8] = NIT_NULL
;
6383 fra
.me
.REG
[9] = NIT_NULL
;
6386 /* syntax/typing.nit:1170 */
6387 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6388 /* syntax/typing.nit:1172 */
6389 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6390 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6391 fra
.me
.REG
[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6392 /* syntax/typing.nit:1173 */
6393 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6394 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6395 if (UNTAG_Bool(REGB0
)) {
6396 /* syntax/typing.nit:1174 */
6397 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6398 REGB0
= TAG_Bool(1);
6399 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
6401 /* syntax/typing.nit:1175 */
6402 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6403 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6404 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6405 if (UNTAG_Bool(REGB0
)) {
6406 /* syntax/typing.nit:1176 */
6407 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6408 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6409 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6410 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6411 /* ../lib/standard/collection/array.nit:266 */
6412 fra
.me
.REG
[4] = fra
.me
.REG
[5];
6413 /* ../lib/standard/collection/array.nit:269 */
6415 /* ../lib/standard/collection/array.nit:270 */
6416 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6417 if (UNTAG_Bool(REGB1
)) {
6419 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6421 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6422 /* ../lib/standard/collection/array.nit:271 */
6423 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
6424 /* ../lib/standard/collection/array.nit:272 */
6426 /* ../lib/standard/collection/array.nit:24 */
6427 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6428 if (UNTAG_Bool(REGB1
)) {
6430 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6432 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6433 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6434 if (UNTAG_Bool(REGB2
)) {
6436 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6438 /* ../lib/standard/kernel.nit:235 */
6439 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6440 /* ../lib/standard/collection/array.nit:272 */
6441 if (UNTAG_Bool(REGB1
)) {
6442 /* ../lib/standard/collection/array.nit:273 */
6443 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6444 if (UNTAG_Bool(REGB1
)) {
6445 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6447 /* ../lib/standard/collection/array.nit:724 */
6448 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6449 /* syntax/typing.nit:1178 */
6450 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6451 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6452 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6453 if (UNTAG_Bool(REGB1
)) {
6454 /* syntax/typing.nit:1179 */
6456 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
6457 if (!once_value_1
) {
6458 fra
.me
.REG
[9] = BOX_NativeString("Error: ");
6460 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6461 once_value_1
= fra
.me
.REG
[9];
6462 register_static_object(&once_value_1
);
6463 } else fra
.me
.REG
[9] = once_value_1
;
6464 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6465 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6466 fra
.me
.REG
[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6467 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
6468 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6469 if (!once_value_2
) {
6470 fra
.me
.REG
[9] = BOX_NativeString("::");
6472 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6473 once_value_2
= fra
.me
.REG
[9];
6474 register_static_object(&once_value_2
);
6475 } else fra
.me
.REG
[9] = once_value_2
;
6476 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6477 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6478 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6479 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6480 if (!once_value_3
) {
6481 fra
.me
.REG
[9] = BOX_NativeString(" is not a constructor.");
6482 REGB1
= TAG_Int(22);
6483 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6484 once_value_3
= fra
.me
.REG
[9];
6485 register_static_object(&once_value_3
);
6486 } else fra
.me
.REG
[9] = once_value_3
;
6487 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6488 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6489 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6490 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[8]);
6492 /* syntax/typing.nit:1181 */
6493 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6494 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6495 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6496 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6498 /* ../lib/standard/collection/array.nit:274 */
6500 /* ../lib/standard/kernel.nit:238 */
6501 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6502 /* ../lib/standard/collection/array.nit:274 */
6505 /* ../lib/standard/collection/array.nit:272 */
6510 /* syntax/typing.nit:1184 */
6511 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6512 if (UNTAG_Bool(REGB0
)) {
6513 /* syntax/typing.nit:1185 */
6515 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6516 if (!once_value_5
) {
6517 fra
.me
.REG
[4] = BOX_NativeString("Error: No contructor named ");
6518 REGB0
= TAG_Int(27);
6519 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6520 once_value_5
= fra
.me
.REG
[4];
6521 register_static_object(&once_value_5
);
6522 } else fra
.me
.REG
[4] = once_value_5
;
6523 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6524 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6525 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6526 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6527 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6528 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6529 if (!once_value_6
) {
6530 fra
.me
.REG
[4] = BOX_NativeString(" in superclasses.");
6531 REGB0
= TAG_Int(17);
6532 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6533 once_value_6
= fra
.me
.REG
[4];
6534 register_static_object(&once_value_6
);
6535 } else fra
.me
.REG
[4] = once_value_6
;
6536 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6537 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6538 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6539 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6540 /* syntax/typing.nit:1186 */
6543 /* ../lib/standard/collection/array.nit:24 */
6544 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6545 if (UNTAG_Bool(REGB0
)) {
6547 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6549 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6550 /* syntax/typing.nit:1187 */
6552 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6553 if (UNTAG_Bool(REGB2
)) {
6555 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6557 /* ../lib/standard/kernel.nit:237 */
6558 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
6559 /* syntax/typing.nit:1187 */
6560 if (UNTAG_Bool(REGB1
)) {
6561 /* syntax/typing.nit:1188 */
6563 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
6564 if (!once_value_8
) {
6565 fra
.me
.REG
[4] = BOX_NativeString("Error: Conflicting contructors named ");
6566 REGB1
= TAG_Int(37);
6567 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6568 once_value_8
= fra
.me
.REG
[4];
6569 register_static_object(&once_value_8
);
6570 } else fra
.me
.REG
[4] = once_value_8
;
6571 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6572 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6573 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6574 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6575 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6576 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6577 if (!once_value_9
) {
6578 fra
.me
.REG
[4] = BOX_NativeString(" in superclasses: ");
6579 REGB1
= TAG_Int(18);
6580 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6581 once_value_9
= fra
.me
.REG
[4];
6582 register_static_object(&once_value_9
);
6583 } else fra
.me
.REG
[4] = once_value_9
;
6584 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6585 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6586 if (!once_value_10
) {
6587 fra
.me
.REG
[4] = BOX_NativeString(", ");
6589 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6590 once_value_10
= fra
.me
.REG
[4];
6591 register_static_object(&once_value_10
);
6592 } else fra
.me
.REG
[4] = once_value_10
;
6593 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6594 fra
.me
.REG
[4] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6595 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6596 if (!once_value_11
) {
6597 fra
.me
.REG
[4] = BOX_NativeString(".");
6599 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6600 once_value_11
= fra
.me
.REG
[4];
6601 register_static_object(&once_value_11
);
6602 } else fra
.me
.REG
[4] = once_value_11
;
6603 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6604 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6605 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6606 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6607 /* syntax/typing.nit:1189 */
6611 /* syntax/typing.nit:1191 */
6612 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6613 /* syntax/typing.nit:1192 */
6614 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6615 if (UNTAG_Bool(REGB1
)) {
6617 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1192);
6619 /* syntax/typing.nit:1193 */
6620 ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
6621 /* syntax/typing.nit:1194 */
6622 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[5]);
6623 /* syntax/typing.nit:1195 */
6624 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6625 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6626 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6628 REGB2
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
6629 if (UNTAG_Bool(REGB2
)) {
6631 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6633 /* ../lib/standard/kernel.nit:237 */
6634 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB0
));
6635 /* syntax/typing.nit:1195 */
6636 if (UNTAG_Bool(REGB0
)) {
6637 /* syntax/typing.nit:1196 */
6638 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6639 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6640 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*/;
6641 if (UNTAG_Bool(REGB0
)) {
6643 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1196);
6645 REGB0
= TAG_Bool(1);
6646 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
);
6647 /* syntax/typing.nit:1197 */
6648 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6649 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6650 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]);
6653 /* syntax/typing.nit:1200 */
6655 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6656 if (!once_value_12
) {
6657 fra
.me
.REG
[5] = BOX_NativeString("Error: No super method to call for ");
6658 REGB0
= TAG_Int(35);
6659 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6660 once_value_12
= fra
.me
.REG
[5];
6661 register_static_object(&once_value_12
);
6662 } else fra
.me
.REG
[5] = once_value_12
;
6663 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6664 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6665 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6666 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6667 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6668 if (!once_value_13
) {
6669 fra
.me
.REG
[5] = BOX_NativeString(".");
6671 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6672 once_value_13
= fra
.me
.REG
[5];
6673 register_static_object(&once_value_13
);
6674 } else fra
.me
.REG
[5] = once_value_13
;
6675 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6676 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6677 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6678 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
6679 /* syntax/typing.nit:1201 */
6683 /* syntax/typing.nit:1204 */
6684 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6685 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6686 fra
.me
.REG
[5] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6687 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*/;
6688 if (UNTAG_Bool(REGB0
)) {
6690 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1204);
6692 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6693 if (UNTAG_Bool(REGB0
)) {
6694 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1204);
6696 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6697 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6698 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6699 if (UNTAG_Bool(REGB0
)) {
6701 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6702 if (UNTAG_Bool(REGB1
)) {
6703 REGB1
= TAG_Bool(0);
6706 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6710 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6711 if (UNTAG_Bool(REGB0
)) {
6712 /* syntax/typing.nit:1205 */
6713 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___init();
6714 /* syntax/typing.nit:1206 */
6715 fra
.me
.REG
[4] = NIT_NULL
;
6716 /* ../lib/standard/collection/array.nit:269 */
6718 /* ../lib/standard/collection/array.nit:270 */
6719 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6720 if (UNTAG_Bool(REGB1
)) {
6722 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6724 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6725 /* ../lib/standard/collection/array.nit:271 */
6726 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
6727 /* ../lib/standard/collection/array.nit:272 */
6729 /* ../lib/standard/collection/array.nit:24 */
6730 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6731 if (UNTAG_Bool(REGB1
)) {
6733 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6735 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6736 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6737 if (UNTAG_Bool(REGB2
)) {
6739 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6741 /* ../lib/standard/kernel.nit:235 */
6742 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6743 /* ../lib/standard/collection/array.nit:272 */
6744 if (UNTAG_Bool(REGB1
)) {
6745 /* ../lib/standard/collection/array.nit:273 */
6746 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6747 if (UNTAG_Bool(REGB1
)) {
6748 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6750 /* ../lib/standard/collection/array.nit:724 */
6751 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6752 /* syntax/typing.nit:1208 */
6753 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6754 if (UNTAG_Bool(REGB1
)) {
6756 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1208);
6758 /* syntax/typing.nit:1209 */
6759 fra
.me
.REG
[8] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6760 fra
.me
.REG
[8] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6761 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*/;
6762 if (UNTAG_Bool(REGB1
)) {
6764 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1209);
6766 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6767 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6768 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6769 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6770 if (UNTAG_Bool(REGB1
)) {
6771 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1209);
6773 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6774 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6775 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6776 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6777 if (UNTAG_Bool(REGB1
)) {
6778 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1209);
6780 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6781 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMType___adapt_to(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6782 /* syntax/typing.nit:1210 */
6783 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[8]);
6784 /* syntax/typing.nit:1211 */
6785 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6786 if (UNTAG_Bool(REGB1
)) {
6788 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6789 if (UNTAG_Bool(REGB2
)) {
6790 REGB2
= TAG_Bool(0);
6793 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6797 if (UNTAG_Bool(REGB1
)) {
6798 REGB1
= TAG_Bool(1);
6800 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6801 if (UNTAG_Bool(REGB2
)) {
6802 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1211);
6804 REGB2
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[8]);
6807 if (UNTAG_Bool(REGB1
)) {
6808 /* syntax/typing.nit:1212 */
6809 fra
.me
.REG
[4] = fra
.me
.REG
[8];
6811 /* ../lib/standard/collection/array.nit:274 */
6813 /* ../lib/standard/kernel.nit:238 */
6814 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6815 /* ../lib/standard/collection/array.nit:274 */
6818 /* ../lib/standard/collection/array.nit:272 */
6823 /* ../lib/standard/collection/array.nit:269 */
6825 /* ../lib/standard/collection/array.nit:270 */
6826 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
6827 if (UNTAG_Bool(REGB1
)) {
6829 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6831 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
6832 /* ../lib/standard/collection/array.nit:271 */
6833 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
6834 /* ../lib/standard/collection/array.nit:272 */
6836 /* ../lib/standard/collection/array.nit:24 */
6837 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
6838 if (UNTAG_Bool(REGB1
)) {
6840 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6842 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
6843 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6844 if (UNTAG_Bool(REGB2
)) {
6846 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6848 /* ../lib/standard/kernel.nit:235 */
6849 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6850 /* ../lib/standard/collection/array.nit:272 */
6851 if (UNTAG_Bool(REGB1
)) {
6852 /* ../lib/standard/collection/array.nit:273 */
6853 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6854 if (UNTAG_Bool(REGB1
)) {
6855 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6857 /* ../lib/standard/collection/array.nit:724 */
6858 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6859 /* syntax/typing.nit:1216 */
6860 REGB1
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
6861 if (UNTAG_Bool(REGB1
)) {
6863 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1216);
6865 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]);
6866 /* ../lib/standard/collection/array.nit:274 */
6868 /* ../lib/standard/kernel.nit:238 */
6869 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6870 /* ../lib/standard/collection/array.nit:274 */
6873 /* ../lib/standard/collection/array.nit:272 */
6878 /* syntax/typing.nit:1218 */
6879 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
6881 /* syntax/typing.nit:1220 */
6882 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6883 /* syntax/typing.nit:1221 */
6884 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
6885 if (UNTAG_Bool(REGB0
)) {
6887 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1221);
6889 /* syntax/typing.nit:1222 */
6890 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
6891 /* syntax/typing.nit:1223 */
6892 REGB0
= TAG_Bool(1);
6893 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
6895 stack_frame_head
= fra
.me
.prev
;
6898 static const char LOCATE_syntax___typing___AExternCall___target_class_name
[] = "typing::AExternCall::target_class_name";
6899 val_t
syntax___typing___AExternCall___target_class_name(val_t p0
){
6900 struct {struct stack_frame_t me
;} fra
;
6902 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6903 fra
.me
.file
= LOCATE_syntax___typing
;
6905 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___target_class_name
;
6906 fra
.me
.has_broke
= 0;
6907 fra
.me
.REG_size
= 1;
6908 fra
.me
.nitni_local_ref_head
= NULL
;
6909 fra
.me
.REG
[0] = NIT_NULL
;
6911 /* syntax/typing.nit:1228 */
6912 fra
.me
.REG
[0] = NIT_NULL
;
6915 stack_frame_head
= fra
.me
.prev
;
6916 return fra
.me
.REG
[0];
6918 static const char LOCATE_syntax___typing___AExternCall___target_method_name
[] = "typing::AExternCall::target_method_name";
6919 val_t
syntax___typing___AExternCall___target_method_name(val_t p0
){
6920 struct {struct stack_frame_t me
;} fra
;
6922 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6923 fra
.me
.file
= LOCATE_syntax___typing
;
6925 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___target_method_name
;
6926 fra
.me
.has_broke
= 0;
6927 fra
.me
.REG_size
= 0;
6928 fra
.me
.nitni_local_ref_head
= NULL
;
6929 /* syntax/typing.nit:1229 */
6930 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1229);
6931 stack_frame_head
= fra
.me
.prev
;
6934 static const char LOCATE_syntax___typing___AExternCall___after_typing
[] = "typing::AExternCall::(typing::ANode::after_typing)";
6935 void syntax___typing___AExternCall___after_typing(val_t p0
, val_t p1
){
6936 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
6940 static val_t once_value_1
; /* Once value */
6941 static val_t once_value_2
; /* Once value */
6942 static val_t once_value_4
; /* Once value */
6943 static val_t once_value_5
; /* Once value */
6944 static val_t once_value_6
; /* Once value */
6945 static val_t once_value_7
; /* Once value */
6946 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6947 fra
.me
.file
= LOCATE_syntax___typing
;
6949 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___after_typing
;
6950 fra
.me
.has_broke
= 0;
6951 fra
.me
.REG_size
= 8;
6952 fra
.me
.nitni_local_ref_head
= NULL
;
6953 fra
.me
.REG
[0] = NIT_NULL
;
6954 fra
.me
.REG
[1] = NIT_NULL
;
6955 fra
.me
.REG
[2] = NIT_NULL
;
6956 fra
.me
.REG
[3] = NIT_NULL
;
6957 fra
.me
.REG
[4] = NIT_NULL
;
6958 fra
.me
.REG
[5] = NIT_NULL
;
6959 fra
.me
.REG
[6] = NIT_NULL
;
6960 fra
.me
.REG
[7] = NIT_NULL
;
6963 /* syntax/typing.nit:1231 */
6964 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6965 /* syntax/typing.nit:1233 */
6966 fra
.me
.REG
[3] = CALL_syntax___typing___AExternCall___target_class_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6967 /* syntax/typing.nit:1234 */
6968 fra
.me
.REG
[4] = CALL_syntax___typing___AExternCall___target_method_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6969 /* syntax/typing.nit:1241 */
6970 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6971 if (UNTAG_Bool(REGB0
)) {
6973 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6974 if (UNTAG_Bool(REGB1
)) {
6975 REGB1
= TAG_Bool(0);
6978 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
6982 if (UNTAG_Bool(REGB0
)) {
6983 /* syntax/typing.nit:1242 */
6984 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6985 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6987 /* syntax/typing.nit:1244 */
6988 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6989 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6990 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6991 if (UNTAG_Bool(REGB0
)) {
6992 /* syntax/typing.nit:1245 */
6993 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6994 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6995 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6996 /* syntax/typing.nit:1246 */
6997 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6998 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6999 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
7000 fra
.me
.REG
[5] = fra
.me
.REG
[6];
7002 /* syntax/typing.nit:1248 */
7004 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7005 if (!once_value_1
) {
7006 fra
.me
.REG
[7] = BOX_NativeString("Error: class ");
7007 REGB0
= TAG_Int(13);
7008 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
7009 once_value_1
= fra
.me
.REG
[7];
7010 register_static_object(&once_value_1
);
7011 } else fra
.me
.REG
[7] = once_value_1
;
7012 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7013 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
7014 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7015 if (UNTAG_Bool(REGB0
)) {
7016 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1248);
7018 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7019 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7020 if (!once_value_2
) {
7021 fra
.me
.REG
[3] = BOX_NativeString(", not found.");
7022 REGB0
= TAG_Int(12);
7023 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
7024 once_value_2
= fra
.me
.REG
[3];
7025 register_static_object(&once_value_2
);
7026 } else fra
.me
.REG
[3] = once_value_2
;
7027 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7028 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7029 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7030 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
7031 /* syntax/typing.nit:1249 */
7035 /* syntax/typing.nit:1253 */
7036 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
7037 if (UNTAG_Bool(REGB0
)) {
7038 /* syntax/typing.nit:1254 */
7039 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
7040 /* syntax/typing.nit:1256 */
7041 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7042 /* syntax/typing.nit:1258 */
7043 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
7044 if (UNTAG_Bool(REGB0
)) {
7046 /* syntax/typing.nit:1261 */
7048 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7049 if (!once_value_4
) {
7050 fra
.me
.REG
[7] = BOX_NativeString("Error: property ");
7051 REGB0
= TAG_Int(16);
7052 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
7053 once_value_4
= fra
.me
.REG
[7];
7054 register_static_object(&once_value_4
);
7055 } else fra
.me
.REG
[7] = once_value_4
;
7056 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7057 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
7058 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7059 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
7060 if (!once_value_5
) {
7061 fra
.me
.REG
[7] = BOX_NativeString(" is not a method.");
7062 REGB0
= TAG_Int(17);
7063 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
7064 once_value_5
= fra
.me
.REG
[7];
7065 register_static_object(&once_value_5
);
7066 } else fra
.me
.REG
[7] = once_value_5
;
7067 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7068 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
7069 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7070 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
7071 /* syntax/typing.nit:1262 */
7075 /* syntax/typing.nit:1265 */
7077 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7078 if (!once_value_6
) {
7079 fra
.me
.REG
[7] = BOX_NativeString("Error: property ");
7080 REGB0
= TAG_Int(16);
7081 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
7082 once_value_6
= fra
.me
.REG
[7];
7083 register_static_object(&once_value_6
);
7084 } else fra
.me
.REG
[7] = once_value_6
;
7085 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7086 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
7087 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7088 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
7089 if (!once_value_7
) {
7090 fra
.me
.REG
[4] = BOX_NativeString(" not found in target class.");
7091 REGB0
= TAG_Int(27);
7092 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
7093 once_value_7
= fra
.me
.REG
[4];
7094 register_static_object(&once_value_7
);
7095 } else fra
.me
.REG
[4] = once_value_7
;
7096 fra
.me
.REG
[4] = fra
.me
.REG
[4];
7097 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
7098 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7099 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
7100 /* syntax/typing.nit:1266 */
7103 /* syntax/typing.nit:1269 */
7104 fra
.me
.REG
[6] = NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7105 /* syntax/typing.nit:1270 */
7106 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7107 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
7108 if (UNTAG_Bool(REGB0
)) {
7110 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1270);
7112 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7113 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
7115 stack_frame_head
= fra
.me
.prev
;
7118 static const char LOCATE_syntax___typing___ALocalPropExternCall___target_class_name
[] = "typing::ALocalPropExternCall::(typing::AExternCall::target_class_name)";
7119 val_t
syntax___typing___ALocalPropExternCall___target_class_name(val_t p0
){
7120 struct {struct stack_frame_t me
;} 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_class_name
;
7126 fra
.me
.has_broke
= 0;
7127 fra
.me
.REG_size
= 1;
7128 fra
.me
.nitni_local_ref_head
= NULL
;
7129 fra
.me
.REG
[0] = NIT_NULL
;
7131 /* syntax/typing.nit:1275 */
7132 fra
.me
.REG
[0] = NIT_NULL
;
7135 stack_frame_head
= fra
.me
.prev
;
7136 return fra
.me
.REG
[0];
7138 static const char LOCATE_syntax___typing___ALocalPropExternCall___target_method_name
[] = "typing::ALocalPropExternCall::(typing::AExternCall::target_method_name)";
7139 val_t
syntax___typing___ALocalPropExternCall___target_method_name(val_t p0
){
7140 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7143 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7144 fra
.me
.file
= LOCATE_syntax___typing
;
7146 fra
.me
.meth
= LOCATE_syntax___typing___ALocalPropExternCall___target_method_name
;
7147 fra
.me
.has_broke
= 0;
7148 fra
.me
.REG_size
= 2;
7149 fra
.me
.nitni_local_ref_head
= NULL
;
7150 fra
.me
.REG
[0] = NIT_NULL
;
7151 fra
.me
.REG
[1] = NIT_NULL
;
7153 /* syntax/typing.nit:1276 */
7154 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7155 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ALocalPropExternCall___n_methid(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7156 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethid___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7157 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_symbol___Symbol
, ID_symbol___Symbol
)) /*cast Symbol*/;
7158 if (UNTAG_Bool(REGB0
)) {
7160 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1276);
7164 stack_frame_head
= fra
.me
.prev
;
7165 return fra
.me
.REG
[1];
7167 static const char LOCATE_syntax___typing___ASuperExternCall___after_typing
[] = "typing::ASuperExternCall::(typing::ANode::after_typing)";
7168 void syntax___typing___ASuperExternCall___after_typing(val_t p0
, val_t p1
){
7169 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7172 static val_t once_value_1
; /* Once value */
7173 static val_t once_value_2
; /* Once value */
7174 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7175 fra
.me
.file
= LOCATE_syntax___typing
;
7177 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExternCall___after_typing
;
7178 fra
.me
.has_broke
= 0;
7179 fra
.me
.REG_size
= 4;
7180 fra
.me
.nitni_local_ref_head
= NULL
;
7181 fra
.me
.REG
[0] = NIT_NULL
;
7182 fra
.me
.REG
[1] = NIT_NULL
;
7183 fra
.me
.REG
[2] = NIT_NULL
;
7184 fra
.me
.REG
[3] = NIT_NULL
;
7187 /* syntax/typing.nit:1282 */
7188 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7189 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7190 fra
.me
.REG
[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7191 /* syntax/typing.nit:1283 */
7192 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7193 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7194 if (UNTAG_Bool(REGB0
)) {
7195 /* syntax/typing.nit:1284 */
7196 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7197 REGB0
= TAG_Bool(1);
7198 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
7200 /* syntax/typing.nit:1286 */
7202 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7203 if (!once_value_1
) {
7204 fra
.me
.REG
[3] = BOX_NativeString("Error: No super method to call for ");
7205 REGB0
= TAG_Int(35);
7206 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
7207 once_value_1
= fra
.me
.REG
[3];
7208 register_static_object(&once_value_1
);
7209 } else fra
.me
.REG
[3] = once_value_1
;
7210 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7211 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7212 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7213 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7214 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7215 if (!once_value_2
) {
7216 fra
.me
.REG
[3] = BOX_NativeString(".");
7218 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
7219 once_value_2
= fra
.me
.REG
[3];
7220 register_static_object(&once_value_2
);
7221 } else fra
.me
.REG
[3] = once_value_2
;
7222 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7223 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7224 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7225 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
7226 /* syntax/typing.nit:1287 */
7230 stack_frame_head
= fra
.me
.prev
;
7233 static const char LOCATE_syntax___typing___AFullPropExternCall___target_class_name
[] = "typing::AFullPropExternCall::(typing::AExternCall::target_class_name)";
7234 val_t
syntax___typing___AFullPropExternCall___target_class_name(val_t p0
){
7235 struct {struct stack_frame_t me
;} fra
;
7237 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7238 fra
.me
.file
= LOCATE_syntax___typing
;
7240 fra
.me
.meth
= LOCATE_syntax___typing___AFullPropExternCall___target_class_name
;
7241 fra
.me
.has_broke
= 0;
7242 fra
.me
.REG_size
= 1;
7243 fra
.me
.nitni_local_ref_head
= NULL
;
7244 fra
.me
.REG
[0] = NIT_NULL
;
7246 /* syntax/typing.nit:1293 */
7247 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AFullPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7248 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7251 stack_frame_head
= fra
.me
.prev
;
7252 return fra
.me
.REG
[0];
7254 static const char LOCATE_syntax___typing___AFullPropExternCall___target_method_name
[] = "typing::AFullPropExternCall::(typing::AExternCall::target_method_name)";
7255 val_t
syntax___typing___AFullPropExternCall___target_method_name(val_t p0
){
7256 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7259 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7260 fra
.me
.file
= LOCATE_syntax___typing
;
7262 fra
.me
.meth
= LOCATE_syntax___typing___AFullPropExternCall___target_method_name
;
7263 fra
.me
.has_broke
= 0;
7264 fra
.me
.REG_size
= 2;
7265 fra
.me
.nitni_local_ref_head
= NULL
;
7266 fra
.me
.REG
[0] = NIT_NULL
;
7267 fra
.me
.REG
[1] = NIT_NULL
;
7269 /* syntax/typing.nit:1294 */
7270 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7271 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AFullPropExternCall___n_methid(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7272 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethid___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7273 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_symbol___Symbol
, ID_symbol___Symbol
)) /*cast Symbol*/;
7274 if (UNTAG_Bool(REGB0
)) {
7276 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1294);
7280 stack_frame_head
= fra
.me
.prev
;
7281 return fra
.me
.REG
[1];
7283 static const char LOCATE_syntax___typing___AInitPropExternCall___target_class_name
[] = "typing::AInitPropExternCall::(typing::AExternCall::target_class_name)";
7284 val_t
syntax___typing___AInitPropExternCall___target_class_name(val_t p0
){
7285 struct {struct stack_frame_t me
;} fra
;
7287 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7288 fra
.me
.file
= LOCATE_syntax___typing
;
7290 fra
.me
.meth
= LOCATE_syntax___typing___AInitPropExternCall___target_class_name
;
7291 fra
.me
.has_broke
= 0;
7292 fra
.me
.REG_size
= 1;
7293 fra
.me
.nitni_local_ref_head
= NULL
;
7294 fra
.me
.REG
[0] = NIT_NULL
;
7296 /* syntax/typing.nit:1298 */
7297 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7298 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7301 stack_frame_head
= fra
.me
.prev
;
7302 return fra
.me
.REG
[0];
7304 static const char LOCATE_syntax___typing___AInitPropExternCall___target_method_name
[] = "typing::AInitPropExternCall::(typing::AExternCall::target_method_name)";
7305 val_t
syntax___typing___AInitPropExternCall___target_method_name(val_t p0
){
7306 struct {struct stack_frame_t me
;} fra
;
7309 static val_t once_value_1
; /* Once value */
7310 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7311 fra
.me
.file
= LOCATE_syntax___typing
;
7313 fra
.me
.meth
= LOCATE_syntax___typing___AInitPropExternCall___target_method_name
;
7314 fra
.me
.has_broke
= 0;
7315 fra
.me
.REG_size
= 1;
7316 fra
.me
.nitni_local_ref_head
= NULL
;
7317 fra
.me
.REG
[0] = NIT_NULL
;
7319 /* syntax/typing.nit:1299 */
7320 if (!once_value_1
) {
7321 fra
.me
.REG
[0] = BOX_NativeString("init");
7323 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
7324 once_value_1
= fra
.me
.REG
[0];
7325 register_static_object(&once_value_1
);
7326 } else fra
.me
.REG
[0] = once_value_1
;
7327 fra
.me
.REG
[0] = fra
.me
.REG
[0];
7328 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7331 stack_frame_head
= fra
.me
.prev
;
7332 return fra
.me
.REG
[0];
7334 static const char LOCATE_syntax___typing___ACastExternCall___from_type
[] = "typing::ACastExternCall::from_type";
7335 val_t
syntax___typing___ACastExternCall___from_type(val_t p0
){
7336 struct {struct stack_frame_t me
;} fra
;
7338 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7339 fra
.me
.file
= LOCATE_syntax___typing
;
7341 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___from_type
;
7342 fra
.me
.has_broke
= 0;
7343 fra
.me
.REG_size
= 0;
7344 fra
.me
.nitni_local_ref_head
= NULL
;
7345 /* syntax/typing.nit:1303 */
7346 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1303);
7347 stack_frame_head
= fra
.me
.prev
;
7350 static const char LOCATE_syntax___typing___ACastExternCall___to_type
[] = "typing::ACastExternCall::to_type";
7351 val_t
syntax___typing___ACastExternCall___to_type(val_t p0
){
7352 struct {struct stack_frame_t me
;} fra
;
7354 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7355 fra
.me
.file
= LOCATE_syntax___typing
;
7357 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___to_type
;
7358 fra
.me
.has_broke
= 0;
7359 fra
.me
.REG_size
= 0;
7360 fra
.me
.nitni_local_ref_head
= NULL
;
7361 /* syntax/typing.nit:1304 */
7362 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1304);
7363 stack_frame_head
= fra
.me
.prev
;
7366 static const char LOCATE_syntax___typing___ACastExternCall___after_typing
[] = "typing::ACastExternCall::(typing::ANode::after_typing)";
7367 void syntax___typing___ACastExternCall___after_typing(val_t p0
, val_t p1
){
7368 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7372 static val_t once_value_1
; /* Once value */
7373 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7374 fra
.me
.file
= LOCATE_syntax___typing
;
7376 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___after_typing
;
7377 fra
.me
.has_broke
= 0;
7378 fra
.me
.REG_size
= 4;
7379 fra
.me
.nitni_local_ref_head
= NULL
;
7380 fra
.me
.REG
[0] = NIT_NULL
;
7381 fra
.me
.REG
[1] = NIT_NULL
;
7382 fra
.me
.REG
[2] = NIT_NULL
;
7383 fra
.me
.REG
[3] = NIT_NULL
;
7386 /* syntax/typing.nit:1308 */
7387 fra
.me
.REG
[2] = CALL_syntax___typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7388 fra
.me
.REG
[3] = CALL_syntax___typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7389 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
7390 if (UNTAG_Bool(REGB0
)) {
7392 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7395 if (UNTAG_Bool(REGB0
)) {
7396 /* syntax/typing.nit:1310 */
7397 if (!once_value_1
) {
7398 fra
.me
.REG
[3] = BOX_NativeString("Attepting to cast from and to the same type.");
7399 REGB0
= TAG_Int(44);
7400 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
7401 once_value_1
= fra
.me
.REG
[3];
7402 register_static_object(&once_value_1
);
7403 } else fra
.me
.REG
[3] = once_value_1
;
7404 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7405 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
7407 /* syntax/typing.nit:1313 */
7408 fra
.me
.REG
[3] = CALL_syntax___typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7409 fra
.me
.REG
[2] = CALL_syntax___typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7410 fra
.me
.REG
[2] = NEW_MMImportedCast_metamodel___static_type___MMImportedCast___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
7411 /* syntax/typing.nit:1314 */
7412 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7413 /* syntax/typing.nit:1315 */
7414 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
7415 if (UNTAG_Bool(REGB0
)) {
7417 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1315);
7419 /* syntax/typing.nit:1316 */
7420 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7421 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7422 stack_frame_head
= fra
.me
.prev
;
7425 static const char LOCATE_syntax___typing___ACastAsExternCall___from_type
[] = "typing::ACastAsExternCall::(typing::ACastExternCall::from_type)";
7426 val_t
syntax___typing___ACastAsExternCall___from_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___from_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:1321 */
7439 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_from_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___ACastAsExternCall___to_type
[] = "typing::ACastAsExternCall::(typing::ACastExternCall::to_type)";
7447 val_t
syntax___typing___ACastAsExternCall___to_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___ACastAsExternCall___to_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:1322 */
7460 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_to_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___from_type
[] = "typing::AAsNullableExternCall::(typing::ACastExternCall::from_type)";
7468 val_t
syntax___typing___AAsNullableExternCall___from_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___from_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:1326 */
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]);
7485 stack_frame_head
= fra
.me
.prev
;
7486 return fra
.me
.REG
[0];
7488 static const char LOCATE_syntax___typing___AAsNullableExternCall___to_type
[] = "typing::AAsNullableExternCall::(typing::ACastExternCall::to_type)";
7489 val_t
syntax___typing___AAsNullableExternCall___to_type(val_t p0
){
7490 struct {struct stack_frame_t me
;} fra
;
7492 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7493 fra
.me
.file
= LOCATE_syntax___typing
;
7495 fra
.me
.meth
= LOCATE_syntax___typing___AAsNullableExternCall___to_type
;
7496 fra
.me
.has_broke
= 0;
7497 fra
.me
.REG_size
= 1;
7498 fra
.me
.nitni_local_ref_head
= NULL
;
7499 fra
.me
.REG
[0] = NIT_NULL
;
7501 /* syntax/typing.nit:1327 */
7502 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7503 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7504 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7507 stack_frame_head
= fra
.me
.prev
;
7508 return fra
.me
.REG
[0];
7510 static const char LOCATE_syntax___typing___AAsNotNullableExternCall___from_type
[] = "typing::AAsNotNullableExternCall::(typing::ACastExternCall::from_type)";
7511 val_t
syntax___typing___AAsNotNullableExternCall___from_type(val_t p0
){
7512 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7515 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7516 fra
.me
.file
= LOCATE_syntax___typing
;
7518 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotNullableExternCall___from_type
;
7519 fra
.me
.has_broke
= 0;
7520 fra
.me
.REG_size
= 2;
7521 fra
.me
.nitni_local_ref_head
= NULL
;
7522 fra
.me
.REG
[0] = NIT_NULL
;
7523 fra
.me
.REG
[1] = NIT_NULL
;
7525 /* syntax/typing.nit:1333 */
7526 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7527 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7528 /* syntax/typing.nit:1334 */
7529 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7530 if (UNTAG_Bool(REGB0
)) {
7531 /* syntax/typing.nit:1336 */
7532 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7535 /* syntax/typing.nit:1338 */
7536 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7537 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7541 stack_frame_head
= fra
.me
.prev
;
7542 return fra
.me
.REG
[1];
7544 static const char LOCATE_syntax___typing___AAsNotNullableExternCall___to_type
[] = "typing::AAsNotNullableExternCall::(typing::ACastExternCall::to_type)";
7545 val_t
syntax___typing___AAsNotNullableExternCall___to_type(val_t p0
){
7546 struct {struct stack_frame_t me
;} fra
;
7548 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7549 fra
.me
.file
= LOCATE_syntax___typing
;
7551 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotNullableExternCall___to_type
;
7552 fra
.me
.has_broke
= 0;
7553 fra
.me
.REG_size
= 1;
7554 fra
.me
.nitni_local_ref_head
= NULL
;
7555 fra
.me
.REG
[0] = NIT_NULL
;
7557 /* syntax/typing.nit:1341 */
7558 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7559 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7560 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7563 stack_frame_head
= fra
.me
.prev
;
7564 return fra
.me
.REG
[0];
7566 static const char LOCATE_syntax___typing___AAttrFormExpr___prop
[] = "typing::AAttrFormExpr::(syntax_base::AAttrFormExpr::prop)";
7567 val_t
syntax___typing___AAttrFormExpr___prop(val_t p0
){
7568 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7571 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7572 fra
.me
.file
= LOCATE_syntax___typing
;
7574 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___prop
;
7575 fra
.me
.has_broke
= 0;
7576 fra
.me
.REG_size
= 2;
7577 fra
.me
.nitni_local_ref_head
= NULL
;
7578 fra
.me
.REG
[0] = NIT_NULL
;
7579 fra
.me
.REG
[1] = NIT_NULL
;
7581 /* syntax/typing.nit:1345 */
7582 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7583 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[1]);
7584 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7585 if (UNTAG_Bool(REGB0
)) {
7587 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1345);
7591 stack_frame_head
= fra
.me
.prev
;
7592 return fra
.me
.REG
[1];
7594 static const char LOCATE_syntax___typing___AAttrFormExpr___attr_type
[] = "typing::AAttrFormExpr::(syntax_base::AAttrFormExpr::attr_type)";
7595 val_t
syntax___typing___AAttrFormExpr___attr_type(val_t p0
){
7596 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7599 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7600 fra
.me
.file
= LOCATE_syntax___typing
;
7602 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___attr_type
;
7603 fra
.me
.has_broke
= 0;
7604 fra
.me
.REG_size
= 2;
7605 fra
.me
.nitni_local_ref_head
= NULL
;
7606 fra
.me
.REG
[0] = NIT_NULL
;
7607 fra
.me
.REG
[1] = NIT_NULL
;
7609 /* syntax/typing.nit:1348 */
7610 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7611 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[1]);
7612 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7613 if (UNTAG_Bool(REGB0
)) {
7615 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1348);
7619 stack_frame_head
= fra
.me
.prev
;
7620 return fra
.me
.REG
[1];
7622 static const char LOCATE_syntax___typing___AAttrFormExpr___do_typing
[] = "typing::AAttrFormExpr::do_typing";
7623 void syntax___typing___AAttrFormExpr___do_typing(val_t p0
, val_t p1
){
7624 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
7629 static val_t once_value_2
; /* Once value */
7630 static val_t once_value_3
; /* Once value */
7631 static val_t once_value_4
; /* Once value */
7632 static val_t once_value_5
; /* Once value */
7633 static val_t once_value_6
; /* Once value */
7634 static val_t once_value_7
; /* Once value */
7635 static val_t once_value_8
; /* Once value */
7636 static val_t once_value_9
; /* Once value */
7637 static val_t once_value_10
; /* Once value */
7638 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7639 fra
.me
.file
= LOCATE_syntax___typing
;
7641 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___do_typing
;
7642 fra
.me
.has_broke
= 0;
7643 fra
.me
.REG_size
= 7;
7644 fra
.me
.nitni_local_ref_head
= NULL
;
7645 fra
.me
.REG
[0] = NIT_NULL
;
7646 fra
.me
.REG
[1] = NIT_NULL
;
7647 fra
.me
.REG
[2] = NIT_NULL
;
7648 fra
.me
.REG
[3] = NIT_NULL
;
7649 fra
.me
.REG
[4] = NIT_NULL
;
7650 fra
.me
.REG
[5] = NIT_NULL
;
7651 fra
.me
.REG
[6] = NIT_NULL
;
7654 /* syntax/typing.nit:1354 */
7655 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7656 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7657 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7658 if (UNTAG_Bool(REGB0
)) {
7661 /* syntax/typing.nit:1355 */
7662 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7663 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7664 /* syntax/typing.nit:1356 */
7665 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7666 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7667 /* syntax/typing.nit:1357 */
7668 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
7669 if (UNTAG_Bool(REGB0
)) {
7670 /* syntax/typing.nit:1358 */
7672 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7673 if (!once_value_2
) {
7674 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute '");
7675 REGB0
= TAG_Int(18);
7676 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
7677 once_value_2
= fra
.me
.REG
[5];
7678 register_static_object(&once_value_2
);
7679 } else fra
.me
.REG
[5] = once_value_2
;
7680 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7681 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7682 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7683 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7684 if (!once_value_3
) {
7685 fra
.me
.REG
[5] = BOX_NativeString("' access on 'null'.");
7686 REGB0
= TAG_Int(19);
7687 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
7688 once_value_3
= fra
.me
.REG
[5];
7689 register_static_object(&once_value_3
);
7690 } else fra
.me
.REG
[5] = once_value_3
;
7691 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7692 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7693 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7694 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
7695 /* syntax/typing.nit:1359 */
7698 /* syntax/typing.nit:1361 */
7699 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7700 /* syntax/typing.nit:1362 */
7701 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7702 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7703 if (UNTAG_Bool(REGB0
)) {
7704 /* syntax/typing.nit:1363 */
7706 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7707 if (!once_value_4
) {
7708 fra
.me
.REG
[6] = BOX_NativeString("Error: Attribute ");
7709 REGB0
= TAG_Int(17);
7710 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7711 once_value_4
= fra
.me
.REG
[6];
7712 register_static_object(&once_value_4
);
7713 } else fra
.me
.REG
[6] = once_value_4
;
7714 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7715 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7716 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7717 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7718 if (!once_value_5
) {
7719 fra
.me
.REG
[6] = BOX_NativeString(" doesn't exists in ");
7720 REGB0
= TAG_Int(19);
7721 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7722 once_value_5
= fra
.me
.REG
[6];
7723 register_static_object(&once_value_5
);
7724 } else fra
.me
.REG
[6] = once_value_5
;
7725 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7726 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7727 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7728 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7729 if (!once_value_6
) {
7730 fra
.me
.REG
[6] = BOX_NativeString(".");
7732 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7733 once_value_6
= fra
.me
.REG
[6];
7734 register_static_object(&once_value_6
);
7735 } else fra
.me
.REG
[6] = once_value_6
;
7736 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7737 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7738 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7739 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7740 /* syntax/typing.nit:1364 */
7743 /* syntax/typing.nit:1366 */
7744 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_attribute(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7745 /* syntax/typing.nit:1367 */
7746 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7747 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7748 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7749 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7750 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___visibility_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7752 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
7753 if (UNTAG_Bool(REGB2
)) {
7755 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7757 /* ../lib/standard/kernel.nit:235 */
7758 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
7759 /* syntax/typing.nit:1367 */
7760 if (UNTAG_Bool(REGB1
)) {
7761 /* syntax/typing.nit:1368 */
7763 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
7764 if (!once_value_7
) {
7765 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute ");
7766 REGB1
= TAG_Int(17);
7767 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
7768 once_value_7
= fra
.me
.REG
[5];
7769 register_static_object(&once_value_7
);
7770 } else fra
.me
.REG
[5] = once_value_7
;
7771 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7772 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
7773 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7774 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7775 if (!once_value_8
) {
7776 fra
.me
.REG
[3] = BOX_NativeString(" from ");
7778 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7779 once_value_8
= fra
.me
.REG
[3];
7780 register_static_object(&once_value_8
);
7781 } else fra
.me
.REG
[3] = once_value_8
;
7782 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7783 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7784 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7785 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7786 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7787 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(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 if (!once_value_9
) {
7790 fra
.me
.REG
[3] = BOX_NativeString(" is invisible in ");
7791 REGB1
= TAG_Int(17);
7792 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7793 once_value_9
= fra
.me
.REG
[3];
7794 register_static_object(&once_value_9
);
7795 } else fra
.me
.REG
[3] = once_value_9
;
7796 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7797 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7798 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7799 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7801 if (!once_value_10
) {
7802 fra
.me
.REG
[3] = BOX_NativeString("");
7804 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7805 once_value_10
= fra
.me
.REG
[3];
7806 register_static_object(&once_value_10
);
7807 } else fra
.me
.REG
[3] = once_value_10
;
7808 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7809 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7810 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7811 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
7813 /* syntax/typing.nit:1370 */
7814 ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
7815 /* syntax/typing.nit:1371 */
7816 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
7817 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7818 /* syntax/typing.nit:1372 */
7819 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7820 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7821 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
7822 if (UNTAG_Bool(REGB1
)) {
7823 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7824 if (UNTAG_Bool(REGB1
)) {
7825 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1372);
7827 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7828 fra
.me
.REG
[2] = fra
.me
.REG
[4];
7830 /* syntax/typing.nit:1373 */
7831 ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
7833 stack_frame_head
= fra
.me
.prev
;
7836 static const char LOCATE_syntax___typing___AAttrExpr___after_typing
[] = "typing::AAttrExpr::(typing::ANode::after_typing)";
7837 void syntax___typing___AAttrExpr___after_typing(val_t p0
, val_t p1
){
7838 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7842 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7843 fra
.me
.file
= LOCATE_syntax___typing
;
7845 fra
.me
.meth
= LOCATE_syntax___typing___AAttrExpr___after_typing
;
7846 fra
.me
.has_broke
= 0;
7847 fra
.me
.REG_size
= 2;
7848 fra
.me
.nitni_local_ref_head
= NULL
;
7849 fra
.me
.REG
[0] = NIT_NULL
;
7850 fra
.me
.REG
[1] = NIT_NULL
;
7853 /* syntax/typing.nit:1380 */
7854 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7855 /* syntax/typing.nit:1381 */
7856 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7857 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7858 if (UNTAG_Bool(REGB0
)) {
7860 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7861 if (UNTAG_Bool(REGB1
)) {
7862 REGB1
= TAG_Bool(0);
7865 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7869 if (UNTAG_Bool(REGB0
)) {
7872 /* syntax/typing.nit:1382 */
7873 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7874 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7875 /* syntax/typing.nit:1383 */
7876 REGB0
= TAG_Bool(1);
7877 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7879 stack_frame_head
= fra
.me
.prev
;
7882 static const char LOCATE_syntax___typing___AAttrAssignExpr___after_typing
[] = "typing::AAttrAssignExpr::(typing::ANode::after_typing)";
7883 void syntax___typing___AAttrAssignExpr___after_typing(val_t p0
, val_t p1
){
7884 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7888 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7889 fra
.me
.file
= LOCATE_syntax___typing
;
7891 fra
.me
.meth
= LOCATE_syntax___typing___AAttrAssignExpr___after_typing
;
7892 fra
.me
.has_broke
= 0;
7893 fra
.me
.REG_size
= 4;
7894 fra
.me
.nitni_local_ref_head
= NULL
;
7895 fra
.me
.REG
[0] = NIT_NULL
;
7896 fra
.me
.REG
[1] = NIT_NULL
;
7897 fra
.me
.REG
[2] = NIT_NULL
;
7898 fra
.me
.REG
[3] = NIT_NULL
;
7901 /* syntax/typing.nit:1390 */
7902 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7903 /* syntax/typing.nit:1391 */
7904 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7905 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7906 if (UNTAG_Bool(REGB0
)) {
7908 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7909 if (UNTAG_Bool(REGB1
)) {
7910 REGB1
= TAG_Bool(0);
7913 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7917 if (UNTAG_Bool(REGB0
)) {
7920 /* syntax/typing.nit:1392 */
7921 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7922 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7923 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]);
7924 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7925 if (UNTAG_Bool(REGB0
)) {
7928 /* syntax/typing.nit:1393 */
7929 REGB0
= TAG_Bool(1);
7930 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7932 stack_frame_head
= fra
.me
.prev
;
7935 static const char LOCATE_syntax___typing___AAttrReassignExpr___after_typing
[] = "typing::AAttrReassignExpr::(typing::ANode::after_typing)";
7936 void syntax___typing___AAttrReassignExpr___after_typing(val_t p0
, val_t p1
){
7937 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7941 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7942 fra
.me
.file
= LOCATE_syntax___typing
;
7944 fra
.me
.meth
= LOCATE_syntax___typing___AAttrReassignExpr___after_typing
;
7945 fra
.me
.has_broke
= 0;
7946 fra
.me
.REG_size
= 4;
7947 fra
.me
.nitni_local_ref_head
= NULL
;
7948 fra
.me
.REG
[0] = NIT_NULL
;
7949 fra
.me
.REG
[1] = NIT_NULL
;
7950 fra
.me
.REG
[2] = NIT_NULL
;
7951 fra
.me
.REG
[3] = NIT_NULL
;
7954 /* syntax/typing.nit:1400 */
7955 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7956 /* syntax/typing.nit:1401 */
7957 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7958 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7959 if (UNTAG_Bool(REGB0
)) {
7961 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7962 if (UNTAG_Bool(REGB1
)) {
7963 REGB1
= TAG_Bool(0);
7966 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7970 if (UNTAG_Bool(REGB0
)) {
7973 /* syntax/typing.nit:1402 */
7974 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7975 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]);
7976 /* syntax/typing.nit:1403 */
7977 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7978 if (UNTAG_Bool(REGB0
)) {
7980 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7981 if (UNTAG_Bool(REGB1
)) {
7982 REGB1
= TAG_Bool(0);
7985 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7989 if (UNTAG_Bool(REGB0
)) {
7992 /* syntax/typing.nit:1404 */
7993 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7994 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7995 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]);
7996 /* syntax/typing.nit:1405 */
7997 REGB0
= TAG_Bool(1);
7998 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
8000 stack_frame_head
= fra
.me
.prev
;
8003 static const char LOCATE_syntax___typing___AIssetAttrExpr___after_typing
[] = "typing::AIssetAttrExpr::(typing::ANode::after_typing)";
8004 void syntax___typing___AIssetAttrExpr___after_typing(val_t p0
, val_t p1
){
8005 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
8009 static val_t once_value_2
; /* Once value */
8010 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8011 fra
.me
.file
= LOCATE_syntax___typing
;
8013 fra
.me
.meth
= LOCATE_syntax___typing___AIssetAttrExpr___after_typing
;
8014 fra
.me
.has_broke
= 0;
8015 fra
.me
.REG_size
= 3;
8016 fra
.me
.nitni_local_ref_head
= NULL
;
8017 fra
.me
.REG
[0] = NIT_NULL
;
8018 fra
.me
.REG
[1] = NIT_NULL
;
8019 fra
.me
.REG
[2] = NIT_NULL
;
8022 /* syntax/typing.nit:1412 */
8023 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
8024 /* syntax/typing.nit:1413 */
8025 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
8026 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
8027 if (UNTAG_Bool(REGB0
)) {
8029 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
8030 if (UNTAG_Bool(REGB1
)) {
8031 REGB1
= TAG_Bool(0);
8034 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
8038 if (UNTAG_Bool(REGB0
)) {
8041 /* syntax/typing.nit:1414 */
8042 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8043 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8044 if (UNTAG_Bool(REGB0
)) {
8045 /* syntax/typing.nit:1415 */
8046 if (!once_value_2
) {
8047 fra
.me
.REG
[2] = BOX_NativeString("Error: isset on a nullable attribute.");
8048 REGB0
= TAG_Int(37);
8049 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
8050 once_value_2
= fra
.me
.REG
[2];
8051 register_static_object(&once_value_2
);
8052 } else fra
.me
.REG
[2] = once_value_2
;
8053 fra
.me
.REG
[2] = fra
.me
.REG
[2];
8054 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
8056 /* syntax/typing.nit:1417 */
8057 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8058 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
8059 /* syntax/typing.nit:1418 */
8060 REGB0
= TAG_Bool(1);
8061 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
8063 stack_frame_head
= fra
.me
.prev
;
8066 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___prop_signature
[] = "typing::AAbsAbsSendExpr::(syntax_base::AAbsAbsSendExpr::prop_signature)";
8067 val_t
syntax___typing___AAbsAbsSendExpr___prop_signature(val_t p0
){
8068 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
8071 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8072 fra
.me
.file
= LOCATE_syntax___typing
;
8074 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___prop_signature
;
8075 fra
.me
.has_broke
= 0;
8076 fra
.me
.REG_size
= 2;
8077 fra
.me
.nitni_local_ref_head
= NULL
;
8078 fra
.me
.REG
[0] = NIT_NULL
;
8079 fra
.me
.REG
[1] = NIT_NULL
;
8081 /* syntax/typing.nit:1423 */
8082 fra
.me
.REG
[1] = fra
.me
.REG
[0];
8083 /* syntax/typing.nit:1424 */
8084 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[1]);
8085 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
8086 if (UNTAG_Bool(REGB0
)) {
8088 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1424);
8092 stack_frame_head
= fra
.me
.prev
;
8093 return fra
.me
.REG
[1];
8095 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___raw_arguments
[] = "typing::AAbsAbsSendExpr::(syntax_base::AAbsAbsSendExpr::raw_arguments)";
8096 val_t
syntax___typing___AAbsAbsSendExpr___raw_arguments(val_t p0
){
8097 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
8101 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8102 fra
.me
.file
= LOCATE_syntax___typing
;
8104 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___raw_arguments
;
8105 fra
.me
.has_broke
= 0;
8106 fra
.me
.REG_size
= 4;
8107 fra
.me
.nitni_local_ref_head
= NULL
;
8108 fra
.me
.REG
[0] = NIT_NULL
;
8109 fra
.me
.REG
[1] = NIT_NULL
;
8110 fra
.me
.REG
[2] = NIT_NULL
;
8111 fra
.me
.REG
[3] = NIT_NULL
;
8113 /* syntax/typing.nit:1430 */
8114 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]);
8115 /* syntax/typing.nit:1431 */
8116 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
8117 if (UNTAG_Bool(REGB0
)) {
8119 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
8120 if (UNTAG_Bool(REGB1
)) {
8121 REGB1
= TAG_Bool(0);
8124 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
8128 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8129 if (UNTAG_Bool(REGB0
)) {
8130 /* syntax/typing.nit:1432 */
8131 fra
.me
.REG
[2] = fra
.me
.REG
[1];
8134 /* syntax/typing.nit:1434 */
8135 fra
.me
.REG
[3] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8136 fra
.me
.REG
[1] = fra
.me
.REG
[3];
8137 /* syntax/typing.nit:1435 */
8138 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
8139 if (UNTAG_Bool(REGB0
)) {
8141 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
8142 if (UNTAG_Bool(REGB1
)) {
8143 REGB1
= TAG_Bool(0);
8146 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
8150 if (UNTAG_Bool(REGB0
)) {
8151 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
8152 fra
.me
.REG
[1] = fra
.me
.REG
[3];
8154 /* syntax/typing.nit:1436 */
8155 ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
8156 /* syntax/typing.nit:1437 */
8157 fra
.me
.REG
[2] = fra
.me
.REG
[1];
8161 stack_frame_head
= fra
.me
.prev
;
8162 return fra
.me
.REG
[2];
8164 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments
[] = "typing::AAbsAbsSendExpr::compute_raw_arguments";
8165 val_t
syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(val_t p0
){
8166 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
8169 static val_t once_value_1
; /* Once value */
8170 static val_t once_value_2
; /* Once value */
8171 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8172 fra
.me
.file
= LOCATE_syntax___typing
;
8174 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments
;
8175 fra
.me
.has_broke
= 0;
8176 fra
.me
.REG_size
= 3;
8177 fra
.me
.nitni_local_ref_head
= NULL
;
8178 fra
.me
.REG
[0] = NIT_NULL
;
8179 fra
.me
.REG
[1] = NIT_NULL
;
8180 fra
.me
.REG
[2] = NIT_NULL
;
8182 /* syntax/typing.nit:1445 */
8184 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
8185 if (!once_value_1
) {
8186 fra
.me
.REG
[2] = BOX_NativeString("");
8188 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
8189 once_value_1
= fra
.me
.REG
[2];
8190 register_static_object(&once_value_1
);
8191 } else fra
.me
.REG
[2] = once_value_1
;
8192 fra
.me
.REG
[2] = fra
.me
.REG
[2];
8193 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8194 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8195 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8196 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8197 if (!once_value_2
) {
8198 fra
.me
.REG
[2] = BOX_NativeString(" no compute_raw_arguments");
8199 REGB0
= TAG_Int(25);
8200 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
8201 once_value_2
= fra
.me
.REG
[2];
8202 register_static_object(&once_value_2
);
8203 } else fra
.me
.REG
[2] = once_value_2
;
8204 fra
.me
.REG
[2] = fra
.me
.REG
[2];
8205 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8206 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8207 CALL_standard___file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
8208 /* syntax/typing.nit:1446 */
8209 fra
.me
.REG
[1] = NIT_NULL
;
8212 stack_frame_head
= fra
.me
.prev
;
8213 return fra
.me
.REG
[1];
8215 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___process_signature
[] = "typing::AAbsAbsSendExpr::process_signature";
8216 val_t
syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8217 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
8231 static val_t once_value_1
; /* Once value */
8232 static val_t once_value_2
; /* Once value */
8233 static val_t once_value_3
; /* Once value */
8234 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8235 fra
.me
.file
= LOCATE_syntax___typing
;
8237 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_signature
;
8238 fra
.me
.has_broke
= 0;
8239 fra
.me
.REG_size
= 7;
8240 fra
.me
.nitni_local_ref_head
= NULL
;
8241 fra
.me
.REG
[0] = NIT_NULL
;
8242 fra
.me
.REG
[1] = NIT_NULL
;
8243 fra
.me
.REG
[2] = NIT_NULL
;
8244 fra
.me
.REG
[3] = NIT_NULL
;
8245 fra
.me
.REG
[4] = NIT_NULL
;
8246 fra
.me
.REG
[5] = NIT_NULL
;
8247 fra
.me
.REG
[6] = NIT_NULL
;
8253 /* syntax/typing.nit:1452 */
8254 REGB0
= CALL_metamodel___vararg___MMSignature___vararg_rank(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8255 /* syntax/typing.nit:1453 */
8256 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8257 /* syntax/typing.nit:1455 */
8258 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8259 if (UNTAG_Bool(REGB2
)) {
8261 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8262 if (UNTAG_Bool(REGB3
)) {
8263 REGB3
= TAG_Bool(0);
8266 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8270 if (UNTAG_Bool(REGB2
)) {
8273 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8274 if (UNTAG_Bool(REGB3
)) {
8275 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1455);
8277 /* ../lib/standard/collection/array.nit:24 */
8278 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8279 if (UNTAG_Bool(REGB3
)) {
8281 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8283 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8284 /* syntax/typing.nit:1455 */
8287 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8288 if (UNTAG_Bool(REGB3
)) {
8290 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8292 /* ../lib/standard/kernel.nit:237 */
8293 REGB3
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8294 /* syntax/typing.nit:1456 */
8295 if (UNTAG_Bool(REGB3
)) {
8296 REGB3
= TAG_Bool(1);
8298 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
8299 if (UNTAG_Bool(REGB4
)) {
8301 /* ../lib/standard/kernel.nit:230 */
8302 REGB5
= TAG_Bool((REGB1
)==(REGB2
));
8303 /* syntax/typing.nit:1456 */
8306 REGB4
= TAG_Bool(!UNTAG_Bool(REGB4
));
8307 if (UNTAG_Bool(REGB4
)) {
8309 /* ../lib/standard/kernel.nit:239 */
8310 REGB4
= TAG_Int(-UNTAG_Int(REGB4
));
8311 /* syntax/typing.nit:1456 */
8312 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB4
));
8313 if (UNTAG_Bool(REGB5
)) {
8315 /* ../lib/standard/kernel.nit:230 */
8316 REGB4
= TAG_Bool((REGB0
)==(REGB4
));
8317 /* syntax/typing.nit:1456 */
8321 REGB4
= TAG_Bool(0);
8326 if (UNTAG_Bool(REGB3
)) {
8327 /* syntax/typing.nit:1457 */
8329 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3
);
8330 if (!once_value_1
) {
8331 fra
.me
.REG
[6] = BOX_NativeString("Error: arity mismatch; prototype is '");
8332 REGB3
= TAG_Int(37);
8333 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB3
);
8334 once_value_1
= fra
.me
.REG
[6];
8335 register_static_object(&once_value_1
);
8336 } else fra
.me
.REG
[6] = once_value_1
;
8337 fra
.me
.REG
[6] = fra
.me
.REG
[6];
8338 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
8339 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8340 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8341 if (!once_value_2
) {
8342 fra
.me
.REG
[3] = BOX_NativeString("");
8344 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB3
);
8345 once_value_2
= fra
.me
.REG
[3];
8346 register_static_object(&once_value_2
);
8347 } else fra
.me
.REG
[3] = once_value_2
;
8348 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8349 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8350 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8351 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8352 if (!once_value_3
) {
8353 fra
.me
.REG
[3] = BOX_NativeString("'.");
8355 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB3
);
8356 once_value_3
= fra
.me
.REG
[3];
8357 register_static_object(&once_value_3
);
8358 } else fra
.me
.REG
[3] = once_value_3
;
8359 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8360 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8361 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8362 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8363 /* syntax/typing.nit:1458 */
8364 REGB3
= TAG_Bool(0);
8367 /* syntax/typing.nit:1460 */
8369 /* syntax/typing.nit:1461 */
8371 /* ../lib/standard/kernel.nit:350 */
8373 /* ../lib/standard/kernel.nit:355 */
8375 REGB7
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
8376 if (UNTAG_Bool(REGB7
)) {
8378 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8380 /* ../lib/standard/kernel.nit:235 */
8381 REGB7
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB6
));
8382 /* ../lib/standard/kernel.nit:355 */
8383 if (UNTAG_Bool(REGB7
)) {
8384 /* syntax/typing.nit:1461 */
8386 /* syntax/typing.nit:1463 */
8387 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB7
);
8388 /* syntax/typing.nit:1464 */
8389 REGB8
= TAG_Bool(IS_EQUAL_OO(REGB7
,REGB0
));
8390 if (UNTAG_Bool(REGB8
)) {
8392 /* ../lib/standard/kernel.nit:230 */
8393 REGB7
= TAG_Bool((REGB7
)==(REGB0
));
8394 /* syntax/typing.nit:1464 */
8397 if (UNTAG_Bool(REGB8
)) {
8398 /* syntax/typing.nit:1465 */
8400 /* ../lib/standard/kernel.nit:240 */
8401 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB1
));
8402 /* ../lib/standard/kernel.nit:344 */
8404 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8405 if (UNTAG_Bool(REGB9
)) {
8407 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8409 /* ../lib/standard/kernel.nit:234 */
8410 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<=UNTAG_Int(REGB7
));
8411 /* ../lib/standard/kernel.nit:344 */
8412 if (UNTAG_Bool(REGB9
)) {
8413 /* syntax/typing.nit:1466 */
8414 REGB9
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8415 if (UNTAG_Bool(REGB9
)) {
8416 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1466);
8418 /* ../lib/standard/collection/array.nit:278 */
8419 fra
.me
.REG
[0] = fra
.me
.REG
[4];
8421 /* ../lib/standard/collection/array.nit:280 */
8422 REGB10
= TAG_Int(0);
8423 REGB11
= TAG_Bool(VAL_ISA(REGB10
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9
), VTID_standard___kernel___Comparable___OTHER(REGB9
))) /*cast OTHER*/;
8424 if (UNTAG_Bool(REGB11
)) {
8426 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8428 /* ../lib/standard/kernel.nit:236 */
8429 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)>=UNTAG_Int(REGB10
));
8430 /* ../lib/standard/collection/array.nit:280 */
8431 if (UNTAG_Bool(REGB10
)) {
8432 REGB10
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
8433 if (UNTAG_Bool(REGB10
)) {
8435 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8437 REGB10
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
8438 REGB11
= TAG_Bool(VAL_ISA(REGB10
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9
), VTID_standard___kernel___Comparable___OTHER(REGB9
))) /*cast OTHER*/;
8439 if (UNTAG_Bool(REGB11
)) {
8441 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8443 /* ../lib/standard/kernel.nit:235 */
8444 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)<UNTAG_Int(REGB10
));
8446 /* ../lib/standard/collection/array.nit:280 */
8447 REGB11
= TAG_Bool(0);
8450 if (UNTAG_Bool(REGB10
)) {
8452 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
8454 /* ../lib/standard/collection/array.nit:281 */
8455 fra
.me
.REG
[0] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
8456 REGB10
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
8457 if (UNTAG_Bool(REGB10
)) {
8458 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8460 /* ../lib/standard/collection/array.nit:724 */
8461 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB9
)];
8462 /* ../lib/standard/collection/array.nit:281 */
8465 /* syntax/typing.nit:1467 */
8466 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8467 /* syntax/typing.nit:1468 */
8469 /* ../lib/standard/kernel.nit:238 */
8470 REGB9
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB9
));
8471 /* syntax/typing.nit:1468 */
8473 /* ../lib/standard/kernel.nit:346 */
8475 /* ../lib/standard/kernel.nit:238 */
8476 REGB9
= TAG_Int(UNTAG_Int(REGB8
)+UNTAG_Int(REGB9
));
8477 /* ../lib/standard/kernel.nit:346 */
8480 /* ../lib/standard/kernel.nit:344 */
8486 /* syntax/typing.nit:1471 */
8487 REGB8
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8488 if (UNTAG_Bool(REGB8
)) {
8489 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1471);
8491 /* ../lib/standard/collection/array.nit:278 */
8492 fra
.me
.REG
[3] = fra
.me
.REG
[4];
8494 /* ../lib/standard/collection/array.nit:280 */
8496 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8497 if (UNTAG_Bool(REGB9
)) {
8499 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8501 /* ../lib/standard/kernel.nit:236 */
8502 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB7
));
8503 /* ../lib/standard/collection/array.nit:280 */
8504 if (UNTAG_Bool(REGB7
)) {
8505 REGB7
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
8506 if (UNTAG_Bool(REGB7
)) {
8508 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8510 REGB7
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
8511 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8512 if (UNTAG_Bool(REGB9
)) {
8514 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8516 /* ../lib/standard/kernel.nit:235 */
8517 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB7
));
8519 /* ../lib/standard/collection/array.nit:280 */
8520 REGB9
= TAG_Bool(0);
8523 if (UNTAG_Bool(REGB7
)) {
8525 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
8527 /* ../lib/standard/collection/array.nit:281 */
8528 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
8529 REGB7
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8530 if (UNTAG_Bool(REGB7
)) {
8531 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8533 /* ../lib/standard/collection/array.nit:724 */
8534 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB8
)];
8535 /* ../lib/standard/collection/array.nit:281 */
8538 /* syntax/typing.nit:1471 */
8539 fra
.me
.REG
[0] = fra
.me
.REG
[3];
8540 /* syntax/typing.nit:1472 */
8541 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8542 /* syntax/typing.nit:1473 */
8544 /* ../lib/standard/kernel.nit:238 */
8545 REGB8
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB8
));
8546 /* syntax/typing.nit:1473 */
8549 /* ../lib/standard/kernel.nit:357 */
8551 /* ../lib/standard/kernel.nit:238 */
8552 REGB8
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB8
));
8553 /* ../lib/standard/kernel.nit:357 */
8556 /* ../lib/standard/kernel.nit:355 */
8561 /* syntax/typing.nit:1476 */
8562 REGB4
= TAG_Bool(1);
8566 stack_frame_head
= fra
.me
.prev
;
8569 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures
[] = "typing::AAbsAbsSendExpr::process_closures";
8570 val_t
syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8571 struct {struct stack_frame_t me
; val_t MORE_REG
[16];} fra
;
8579 static val_t once_value_2
; /* Once value */
8580 static val_t once_value_3
; /* Once value */
8581 static val_t once_value_4
; /* Once value */
8582 static val_t once_value_5
; /* Once value */
8583 static val_t once_value_6
; /* Once value */
8584 static val_t once_value_7
; /* Once value */
8585 static val_t once_value_8
; /* Once value */
8586 static val_t once_value_11
; /* Once value */
8587 static val_t once_value_12
; /* Once value */
8588 static val_t once_value_13
; /* Once value */
8589 static val_t once_value_14
; /* Once value */
8590 static val_t once_value_15
; /* Once value */
8591 static val_t once_value_16
; /* Once value */
8592 static val_t once_value_18
; /* Once value */
8593 static val_t once_value_19
; /* Once value */
8594 static val_t once_value_20
; /* Once value */
8595 static val_t once_value_21
; /* Once value */
8596 static val_t once_value_22
; /* Once value */
8597 static val_t once_value_24
; /* Once value */
8598 static val_t once_value_25
; /* Once value */
8599 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8600 fra
.me
.file
= LOCATE_syntax___typing
;
8602 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures
;
8603 fra
.me
.has_broke
= 0;
8604 fra
.me
.REG_size
= 17;
8605 fra
.me
.nitni_local_ref_head
= NULL
;
8606 fra
.me
.REG
[0] = NIT_NULL
;
8607 fra
.me
.REG
[1] = NIT_NULL
;
8608 fra
.me
.REG
[2] = NIT_NULL
;
8609 fra
.me
.REG
[3] = NIT_NULL
;
8610 fra
.me
.REG
[4] = NIT_NULL
;
8611 fra
.me
.REG
[5] = NIT_NULL
;
8612 fra
.me
.REG
[6] = NIT_NULL
;
8613 fra
.me
.REG
[7] = NIT_NULL
;
8614 fra
.me
.REG
[8] = NIT_NULL
;
8615 fra
.me
.REG
[9] = NIT_NULL
;
8616 fra
.me
.REG
[10] = NIT_NULL
;
8617 fra
.me
.REG
[11] = NIT_NULL
;
8618 fra
.me
.REG
[12] = NIT_NULL
;
8619 fra
.me
.REG
[13] = NIT_NULL
;
8620 fra
.me
.REG
[14] = NIT_NULL
;
8621 fra
.me
.REG
[15] = NIT_NULL
;
8622 fra
.me
.REG
[16] = NIT_NULL
;
8628 /* syntax/typing.nit:1482 */
8629 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8630 /* syntax/typing.nit:1483 */
8631 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8632 /* syntax/typing.nit:1484 */
8634 /* ../lib/standard/collection/array.nit:266 */
8635 fra
.me
.REG
[7] = fra
.me
.REG
[6];
8636 /* ../lib/standard/collection/array.nit:269 */
8638 /* ../lib/standard/collection/array.nit:270 */
8639 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8640 if (UNTAG_Bool(REGB2
)) {
8642 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
8644 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8645 /* ../lib/standard/collection/array.nit:271 */
8646 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
8647 /* ../lib/standard/collection/array.nit:272 */
8649 /* ../lib/standard/collection/array.nit:24 */
8650 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8651 if (UNTAG_Bool(REGB2
)) {
8653 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8655 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8656 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8657 if (UNTAG_Bool(REGB3
)) {
8659 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8661 /* ../lib/standard/kernel.nit:235 */
8662 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
8663 /* ../lib/standard/collection/array.nit:272 */
8664 if (UNTAG_Bool(REGB2
)) {
8665 /* ../lib/standard/collection/array.nit:273 */
8666 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8667 if (UNTAG_Bool(REGB2
)) {
8668 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
8670 /* ../lib/standard/collection/array.nit:724 */
8671 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
8672 /* syntax/typing.nit:1486 */
8673 REGB2
= CALL_metamodel___static_type___MMClosure___is_optional(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8674 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8675 if (UNTAG_Bool(REGB2
)) {
8677 /* ../lib/standard/kernel.nit:238 */
8678 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
8679 /* syntax/typing.nit:1486 */
8682 /* ../lib/standard/collection/array.nit:274 */
8684 /* ../lib/standard/kernel.nit:238 */
8685 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
8686 /* ../lib/standard/collection/array.nit:274 */
8689 /* ../lib/standard/collection/array.nit:272 */
8694 /* syntax/typing.nit:1488 */
8696 /* syntax/typing.nit:1489 */
8697 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8698 if (UNTAG_Bool(REGB2
)) {
8700 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8701 if (UNTAG_Bool(REGB3
)) {
8702 REGB3
= TAG_Bool(0);
8705 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8709 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8710 if (UNTAG_Bool(REGB2
)) {
8711 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8712 if (UNTAG_Bool(REGB2
)) {
8713 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1489);
8715 /* ../lib/standard/collection/array.nit:24 */
8716 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8717 if (UNTAG_Bool(REGB2
)) {
8719 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8721 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8722 /* syntax/typing.nit:1489 */
8725 /* ../lib/standard/collection/array.nit:24 */
8726 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8727 if (UNTAG_Bool(REGB2
)) {
8729 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8731 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8732 /* syntax/typing.nit:1490 */
8734 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8735 if (UNTAG_Bool(REGB4
)) {
8737 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8739 /* ../lib/standard/kernel.nit:237 */
8740 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB3
));
8741 /* syntax/typing.nit:1490 */
8742 if (UNTAG_Bool(REGB3
)) {
8743 /* syntax/typing.nit:1491 */
8745 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
8746 if (UNTAG_Bool(REGB2
)) {
8748 /* ../lib/standard/kernel.nit:230 */
8749 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
8750 /* syntax/typing.nit:1491 */
8753 if (UNTAG_Bool(REGB2
)) {
8755 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
8756 if (UNTAG_Bool(REGB3
)) {
8758 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8760 /* ../lib/standard/kernel.nit:237 */
8761 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB2
));
8763 /* syntax/typing.nit:1491 */
8764 REGB3
= TAG_Bool(0);
8767 if (UNTAG_Bool(REGB2
)) {
8768 /* syntax/typing.nit:1492 */
8770 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8771 if (!once_value_2
) {
8772 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
8774 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8775 once_value_2
= fra
.me
.REG
[7];
8776 register_static_object(&once_value_2
);
8777 } else fra
.me
.REG
[7] = once_value_2
;
8778 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8779 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8780 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8781 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8782 if (!once_value_3
) {
8783 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
8784 REGB2
= TAG_Int(10);
8785 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8786 once_value_3
= fra
.me
.REG
[7];
8787 register_static_object(&once_value_3
);
8788 } else fra
.me
.REG
[7] = once_value_3
;
8789 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8790 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8791 /* ../lib/standard/collection/array.nit:24 */
8792 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8793 if (UNTAG_Bool(REGB2
)) {
8795 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8797 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8798 /* syntax/typing.nit:1492 */
8799 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8801 if (!once_value_4
) {
8802 fra
.me
.REG
[7] = BOX_NativeString(" blocks.");
8804 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8805 once_value_4
= fra
.me
.REG
[7];
8806 register_static_object(&once_value_4
);
8807 } else fra
.me
.REG
[7] = once_value_4
;
8808 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8809 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8810 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8811 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8813 /* ../lib/standard/collection/array.nit:24 */
8814 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8815 if (UNTAG_Bool(REGB2
)) {
8817 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8819 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8820 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8821 if (UNTAG_Bool(REGB3
)) {
8823 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8825 /* ../lib/standard/kernel.nit:237 */
8826 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8827 /* syntax/typing.nit:1493 */
8828 if (UNTAG_Bool(REGB2
)) {
8829 REGB2
= TAG_Bool(1);
8831 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8832 if (UNTAG_Bool(REGB3
)) {
8834 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8836 /* ../lib/standard/kernel.nit:235 */
8837 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
8838 /* syntax/typing.nit:1493 */
8841 if (UNTAG_Bool(REGB2
)) {
8842 /* syntax/typing.nit:1494 */
8844 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8845 if (!once_value_5
) {
8846 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
8848 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8849 once_value_5
= fra
.me
.REG
[7];
8850 register_static_object(&once_value_5
);
8851 } else fra
.me
.REG
[7] = once_value_5
;
8852 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8853 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8854 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8855 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8856 if (!once_value_6
) {
8857 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
8858 REGB2
= TAG_Int(10);
8859 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8860 once_value_6
= fra
.me
.REG
[7];
8861 register_static_object(&once_value_6
);
8862 } else fra
.me
.REG
[7] = once_value_6
;
8863 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8864 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8865 /* ../lib/standard/collection/array.nit:24 */
8866 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8867 if (UNTAG_Bool(REGB2
)) {
8869 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8871 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8872 /* syntax/typing.nit:1494 */
8873 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8874 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8875 if (!once_value_7
) {
8876 fra
.me
.REG
[7] = BOX_NativeString(" blocks, ");
8878 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8879 once_value_7
= fra
.me
.REG
[7];
8880 register_static_object(&once_value_7
);
8881 } else fra
.me
.REG
[7] = once_value_7
;
8882 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8883 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8884 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8885 if (UNTAG_Bool(REGB2
)) {
8886 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1494);
8888 /* ../lib/standard/collection/array.nit:24 */
8889 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8890 if (UNTAG_Bool(REGB2
)) {
8892 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8894 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8895 /* syntax/typing.nit:1494 */
8896 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8897 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8898 if (!once_value_8
) {
8899 fra
.me
.REG
[7] = BOX_NativeString(" found.");
8901 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8902 once_value_8
= fra
.me
.REG
[7];
8903 register_static_object(&once_value_8
);
8904 } else fra
.me
.REG
[7] = once_value_8
;
8905 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8906 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8907 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8908 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8910 /* syntax/typing.nit:1497 */
8911 fra
.me
.REG
[8] = NIT_NULL
;
8912 /* syntax/typing.nit:1498 */
8913 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8914 if (UNTAG_Bool(REGB2
)) {
8916 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8917 if (UNTAG_Bool(REGB0
)) {
8918 REGB0
= TAG_Bool(0);
8921 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
8925 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8926 if (UNTAG_Bool(REGB2
)) {
8927 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___init();
8928 fra
.me
.REG
[8] = fra
.me
.REG
[7];
8930 /* syntax/typing.nit:1501 */
8932 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8933 if (UNTAG_Bool(REGB0
)) {
8935 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8937 /* ../lib/standard/kernel.nit:237 */
8938 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8939 /* syntax/typing.nit:1501 */
8940 if (UNTAG_Bool(REGB2
)) {
8942 /* ../lib/standard/kernel.nit:240 */
8943 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
8944 /* syntax/typing.nit:1501 */
8945 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8946 if (UNTAG_Bool(REGB0
)) {
8947 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1501);
8949 /* ../lib/standard/collection/array.nit:278 */
8950 fra
.me
.REG
[7] = fra
.me
.REG
[4];
8951 /* ../lib/standard/collection/array.nit:280 */
8953 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8954 if (UNTAG_Bool(REGB3
)) {
8956 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8958 /* ../lib/standard/kernel.nit:236 */
8959 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
8960 /* ../lib/standard/collection/array.nit:280 */
8961 if (UNTAG_Bool(REGB0
)) {
8962 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8963 if (UNTAG_Bool(REGB0
)) {
8965 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8967 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8968 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8969 if (UNTAG_Bool(REGB3
)) {
8971 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8973 /* ../lib/standard/kernel.nit:235 */
8974 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
8976 /* ../lib/standard/collection/array.nit:280 */
8977 REGB3
= TAG_Bool(0);
8980 if (UNTAG_Bool(REGB0
)) {
8982 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
8984 /* ../lib/standard/collection/array.nit:281 */
8985 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
8986 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8987 if (UNTAG_Bool(REGB0
)) {
8988 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8990 /* ../lib/standard/collection/array.nit:724 */
8991 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB2
)];
8992 /* ../lib/standard/collection/array.nit:281 */
8995 /* syntax/typing.nit:1501 */
8996 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8997 if (UNTAG_Bool(REGB2
)) {
8998 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1501);
9000 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9002 fra
.me
.REG
[7] = NIT_NULL
;
9004 /* syntax/typing.nit:1504 */
9006 /* ../lib/standard/kernel.nit:350 */
9008 /* ../lib/standard/kernel.nit:355 */
9010 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
9011 if (UNTAG_Bool(REGB3
)) {
9013 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9015 /* ../lib/standard/kernel.nit:235 */
9016 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
9017 /* ../lib/standard/kernel.nit:355 */
9018 if (UNTAG_Bool(REGB3
)) {
9019 /* syntax/typing.nit:1504 */
9021 /* syntax/typing.nit:1505 */
9022 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9023 if (UNTAG_Bool(REGB4
)) {
9024 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1505);
9026 /* ../lib/standard/collection/array.nit:278 */
9027 fra
.me
.REG
[9] = fra
.me
.REG
[4];
9028 /* ../lib/standard/collection/array.nit:280 */
9030 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
9031 if (UNTAG_Bool(REGB5
)) {
9033 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9035 /* ../lib/standard/kernel.nit:236 */
9036 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
9037 /* ../lib/standard/collection/array.nit:280 */
9038 if (UNTAG_Bool(REGB4
)) {
9039 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
9040 if (UNTAG_Bool(REGB4
)) {
9042 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
9044 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
9045 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
9046 if (UNTAG_Bool(REGB5
)) {
9048 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9050 /* ../lib/standard/kernel.nit:235 */
9051 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
9053 /* ../lib/standard/collection/array.nit:280 */
9054 REGB5
= TAG_Bool(0);
9057 if (UNTAG_Bool(REGB4
)) {
9059 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
9061 /* ../lib/standard/collection/array.nit:281 */
9062 fra
.me
.REG
[9] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
9063 REGB4
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
9064 if (UNTAG_Bool(REGB4
)) {
9065 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
9067 /* ../lib/standard/collection/array.nit:724 */
9068 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[9])->val
[UNTAG_Int(REGB3
)];
9069 /* ../lib/standard/collection/array.nit:281 */
9072 /* syntax/typing.nit:1506 */
9073 fra
.me
.REG
[10] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9074 fra
.me
.REG
[10] = CALL_syntax___typing___AClosureId___to_symbol(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
9075 /* syntax/typing.nit:1507 */
9076 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMSignature___closure_named(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[10]);
9077 /* syntax/typing.nit:1508 */
9078 REGB3
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
9079 if (UNTAG_Bool(REGB3
)) {
9081 REGB4
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
9082 if (UNTAG_Bool(REGB4
)) {
9083 REGB4
= TAG_Bool(0);
9086 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[11])(fra
.me
.REG
[11], NIT_NULL
);
9090 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
9091 if (UNTAG_Bool(REGB3
)) {
9092 /* syntax/typing.nit:1509 */
9093 fra
.me
.REG
[11] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[9], fra
.me
.REG
[11], fra
.me
.REG
[8]);
9094 /* syntax/typing.nit:1510 */
9095 fra
.me
.REG
[12] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9096 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[11], fra
.me
.REG
[7]);
9097 /* syntax/typing.nit:1511 */
9098 CALL_syntax___typing___AClosureDef___accept_typing2(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[1], fra
.me
.REG
[11]);
9099 /* syntax/typing.nit:1512 */
9100 fra
.me
.REG
[11] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9101 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
9103 /* ../lib/standard/collection/array.nit:24 */
9104 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
9105 if (UNTAG_Bool(REGB3
)) {
9107 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9109 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
9110 /* syntax/typing.nit:1513 */
9112 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB3
,REGB4
));
9113 if (UNTAG_Bool(REGB5
)) {
9115 /* ../lib/standard/kernel.nit:230 */
9116 REGB4
= TAG_Bool((REGB3
)==(REGB4
));
9117 /* syntax/typing.nit:1513 */
9120 if (UNTAG_Bool(REGB5
)) {
9121 /* syntax/typing.nit:1514 */
9122 fra
.me
.REG
[11] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9124 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
9125 if (!once_value_11
) {
9126 fra
.me
.REG
[13] = BOX_NativeString("Error: no closure named '!");
9127 REGB5
= TAG_Int(26);
9128 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
9129 once_value_11
= fra
.me
.REG
[13];
9130 register_static_object(&once_value_11
);
9131 } else fra
.me
.REG
[13] = once_value_11
;
9132 fra
.me
.REG
[13] = fra
.me
.REG
[13];
9133 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9134 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
9135 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9136 if (!once_value_12
) {
9137 fra
.me
.REG
[13] = BOX_NativeString("' in ");
9139 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
9140 once_value_12
= fra
.me
.REG
[13];
9141 register_static_object(&once_value_12
);
9142 } else fra
.me
.REG
[13] = once_value_12
;
9143 fra
.me
.REG
[13] = fra
.me
.REG
[13];
9144 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9145 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9146 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9147 if (!once_value_13
) {
9148 fra
.me
.REG
[13] = BOX_NativeString("; only closure is !");
9149 REGB5
= TAG_Int(19);
9150 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
9151 once_value_13
= fra
.me
.REG
[13];
9152 register_static_object(&once_value_13
);
9153 } else fra
.me
.REG
[13] = once_value_13
;
9154 fra
.me
.REG
[13] = fra
.me
.REG
[13];
9155 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9156 fra
.me
.REG
[13] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9157 REGB5
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
9158 if (UNTAG_Bool(REGB5
)) {
9159 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1514);
9161 fra
.me
.REG
[13] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
9162 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
9163 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9164 if (!once_value_14
) {
9165 fra
.me
.REG
[13] = BOX_NativeString(".");
9167 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
9168 once_value_14
= fra
.me
.REG
[13];
9169 register_static_object(&once_value_14
);
9170 } else fra
.me
.REG
[13] = once_value_14
;
9171 fra
.me
.REG
[13] = fra
.me
.REG
[13];
9172 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9173 fra
.me
.REG
[12] = CALL_standard___string___Object___to_s(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
9174 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[11], fra
.me
.REG
[12]);
9176 /* syntax/typing.nit:1516 */
9177 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___init();
9178 /* ../lib/standard/collection/array.nit:266 */
9179 fra
.me
.REG
[11] = fra
.me
.REG
[6];
9180 /* ../lib/standard/collection/array.nit:269 */
9182 /* ../lib/standard/collection/array.nit:270 */
9183 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
9184 if (UNTAG_Bool(REGB4
)) {
9186 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
9188 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
9189 /* ../lib/standard/collection/array.nit:271 */
9190 fra
.me
.REG
[13] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[11]);
9191 /* ../lib/standard/collection/array.nit:272 */
9193 /* ../lib/standard/collection/array.nit:24 */
9194 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
9195 if (UNTAG_Bool(REGB4
)) {
9197 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9199 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
9200 REGB3
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5
), VTID_standard___kernel___Comparable___OTHER(REGB5
))) /*cast OTHER*/;
9201 if (UNTAG_Bool(REGB3
)) {
9203 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9205 /* ../lib/standard/kernel.nit:235 */
9206 REGB4
= TAG_Bool(UNTAG_Int(REGB5
)<UNTAG_Int(REGB4
));
9207 /* ../lib/standard/collection/array.nit:272 */
9208 if (UNTAG_Bool(REGB4
)) {
9209 /* ../lib/standard/collection/array.nit:273 */
9210 REGB4
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
9211 if (UNTAG_Bool(REGB4
)) {
9212 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
9214 /* ../lib/standard/collection/array.nit:724 */
9215 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB5
)];
9216 /* syntax/typing.nit:1518 */
9218 fra
.me
.REG
[15] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4
);
9219 if (!once_value_15
) {
9220 fra
.me
.REG
[16] = BOX_NativeString("!");
9222 fra
.me
.REG
[16] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[16], REGB4
);
9223 once_value_15
= fra
.me
.REG
[16];
9224 register_static_object(&once_value_15
);
9225 } else fra
.me
.REG
[16] = once_value_15
;
9226 fra
.me
.REG
[16] = fra
.me
.REG
[16];
9227 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[16]);
9228 fra
.me
.REG
[14] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
9229 fra
.me
.REG
[14] = CALL_standard___string___Object___to_s(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
9230 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
9231 if (!once_value_16
) {
9232 fra
.me
.REG
[14] = BOX_NativeString("");
9234 fra
.me
.REG
[14] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[14], REGB4
);
9235 once_value_16
= fra
.me
.REG
[14];
9236 register_static_object(&once_value_16
);
9237 } else fra
.me
.REG
[14] = once_value_16
;
9238 fra
.me
.REG
[14] = fra
.me
.REG
[14];
9239 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
9240 fra
.me
.REG
[15] = CALL_standard___string___Object___to_s(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
9241 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[15]);
9242 /* ../lib/standard/collection/array.nit:274 */
9244 /* ../lib/standard/kernel.nit:238 */
9245 REGB4
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB4
));
9246 /* ../lib/standard/collection/array.nit:274 */
9249 /* ../lib/standard/collection/array.nit:272 */
9254 /* syntax/typing.nit:1520 */
9255 fra
.me
.REG
[9] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9257 fra
.me
.REG
[13] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
9258 if (!once_value_18
) {
9259 fra
.me
.REG
[11] = BOX_NativeString("Error: no closure named '!");
9260 REGB5
= TAG_Int(26);
9261 fra
.me
.REG
[11] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[11], REGB5
);
9262 once_value_18
= fra
.me
.REG
[11];
9263 register_static_object(&once_value_18
);
9264 } else fra
.me
.REG
[11] = once_value_18
;
9265 fra
.me
.REG
[11] = fra
.me
.REG
[11];
9266 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[11]);
9267 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
9268 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9269 if (!once_value_19
) {
9270 fra
.me
.REG
[10] = BOX_NativeString("' in ");
9272 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
9273 once_value_19
= fra
.me
.REG
[10];
9274 register_static_object(&once_value_19
);
9275 } else fra
.me
.REG
[10] = once_value_19
;
9276 fra
.me
.REG
[10] = 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 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9279 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9280 if (!once_value_20
) {
9281 fra
.me
.REG
[10] = BOX_NativeString("; only closures are ");
9282 REGB5
= TAG_Int(20);
9283 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
9284 once_value_20
= fra
.me
.REG
[10];
9285 register_static_object(&once_value_20
);
9286 } else fra
.me
.REG
[10] = once_value_20
;
9287 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9288 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9289 if (!once_value_21
) {
9290 fra
.me
.REG
[10] = BOX_NativeString(",");
9292 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
9293 once_value_21
= fra
.me
.REG
[10];
9294 register_static_object(&once_value_21
);
9295 } else fra
.me
.REG
[10] = once_value_21
;
9296 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9297 fra
.me
.REG
[10] = CALL_standard___string___Collection___join(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[10]);
9298 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9299 if (!once_value_22
) {
9300 fra
.me
.REG
[10] = BOX_NativeString(".");
9302 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
9303 once_value_22
= fra
.me
.REG
[10];
9304 register_static_object(&once_value_22
);
9305 } else fra
.me
.REG
[10] = once_value_22
;
9306 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9307 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9308 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
9309 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[9], fra
.me
.REG
[13]);
9312 /* ../lib/standard/kernel.nit:357 */
9314 /* ../lib/standard/kernel.nit:238 */
9315 REGB5
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB5
));
9316 /* ../lib/standard/kernel.nit:357 */
9319 /* ../lib/standard/kernel.nit:355 */
9324 /* syntax/typing.nit:1525 */
9325 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
9326 if (UNTAG_Bool(REGB2
)) {
9328 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
9329 if (UNTAG_Bool(REGB0
)) {
9330 REGB0
= TAG_Bool(0);
9333 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
9337 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
9338 if (UNTAG_Bool(REGB2
)) {
9339 /* syntax/typing.nit:1526 */
9340 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]);
9341 fra
.me
.REG
[5] = fra
.me
.REG
[8];
9346 /* syntax/typing.nit:1529 */
9348 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
9349 if (UNTAG_Bool(REGB0
)) {
9351 /* ../lib/standard/kernel.nit:230 */
9352 REGB2
= TAG_Bool((REGB1
)==(REGB2
));
9353 /* syntax/typing.nit:1529 */
9356 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9357 if (UNTAG_Bool(REGB0
)) {
9358 /* syntax/typing.nit:1530 */
9360 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9361 if (!once_value_24
) {
9362 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
9364 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
9365 once_value_24
= fra
.me
.REG
[6];
9366 register_static_object(&once_value_24
);
9367 } else fra
.me
.REG
[6] = once_value_24
;
9368 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9369 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
9370 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9371 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
9372 if (!once_value_25
) {
9373 fra
.me
.REG
[3] = BOX_NativeString(" does not require blocks.");
9374 REGB0
= TAG_Int(25);
9375 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9376 once_value_25
= fra
.me
.REG
[3];
9377 register_static_object(&once_value_25
);
9378 } else fra
.me
.REG
[3] = once_value_25
;
9379 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9380 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
9381 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9382 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
9385 /* syntax/typing.nit:1532 */
9388 stack_frame_head
= fra
.me
.prev
;
9389 return fra
.me
.REG
[5];
9391 static const char LOCATE_syntax___typing___AAbsSendExpr___do_typing
[] = "typing::AAbsSendExpr::do_typing";
9392 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
){
9393 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
9398 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9399 fra
.me
.file
= LOCATE_syntax___typing
;
9401 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___do_typing
;
9402 fra
.me
.has_broke
= 0;
9403 fra
.me
.REG_size
= 7;
9404 fra
.me
.nitni_local_ref_head
= NULL
;
9405 fra
.me
.REG
[0] = NIT_NULL
;
9406 fra
.me
.REG
[1] = NIT_NULL
;
9407 fra
.me
.REG
[2] = NIT_NULL
;
9408 fra
.me
.REG
[3] = NIT_NULL
;
9409 fra
.me
.REG
[4] = NIT_NULL
;
9410 fra
.me
.REG
[5] = NIT_NULL
;
9411 fra
.me
.REG
[6] = NIT_NULL
;
9420 /* syntax/typing.nit:1540 */
9421 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]);
9422 /* syntax/typing.nit:1541 */
9423 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9424 if (UNTAG_Bool(REGB0
)) {
9426 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9427 if (UNTAG_Bool(REGB2
)) {
9428 REGB2
= TAG_Bool(0);
9431 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9435 if (UNTAG_Bool(REGB0
)) {
9438 /* syntax/typing.nit:1542 */
9439 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
);
9440 /* syntax/typing.nit:1543 */
9441 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9442 if (UNTAG_Bool(REGB1
)) {
9443 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1543);
9445 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9446 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]);
9447 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9448 if (UNTAG_Bool(REGB1
)) {
9451 /* syntax/typing.nit:1544 */
9452 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9453 if (UNTAG_Bool(REGB1
)) {
9454 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1544);
9456 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9457 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]);
9458 /* syntax/typing.nit:1545 */
9459 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9460 if (UNTAG_Bool(REGB1
)) {
9462 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9463 if (UNTAG_Bool(REGB0
)) {
9464 REGB0
= TAG_Bool(0);
9467 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
9471 if (UNTAG_Bool(REGB1
)) {
9472 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9473 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9474 if (UNTAG_Bool(REGB1
)) {
9476 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9477 if (UNTAG_Bool(REGB0
)) {
9478 REGB0
= TAG_Bool(0);
9481 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
9485 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9487 REGB0
= TAG_Bool(0);
9490 if (UNTAG_Bool(REGB1
)) {
9493 /* syntax/typing.nit:1546 */
9494 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
9495 /* syntax/typing.nit:1547 */
9496 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
9497 /* syntax/typing.nit:1548 */
9498 ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
9500 stack_frame_head
= fra
.me
.prev
;
9503 static const char LOCATE_syntax___typing___AAbsSendExpr___get_property
[] = "typing::AAbsSendExpr::get_property";
9504 val_t
syntax___typing___AAbsSendExpr___get_property(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
9505 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
9511 static val_t once_value_1
; /* Once value */
9512 static val_t once_value_2
; /* Once value */
9513 static val_t once_value_3
; /* Once value */
9514 static val_t once_value_4
; /* Once value */
9515 static val_t once_value_5
; /* Once value */
9516 static val_t once_value_6
; /* Once value */
9517 static val_t once_value_8
; /* Once value */
9518 static val_t once_value_9
; /* Once value */
9519 static val_t once_value_10
; /* Once value */
9520 static val_t once_value_11
; /* Once value */
9521 static val_t once_value_12
; /* Once value */
9522 static val_t once_value_13
; /* Once value */
9523 static val_t once_value_14
; /* Once value */
9524 static val_t once_value_15
; /* Once value */
9525 static val_t once_value_16
; /* Once value */
9526 static val_t once_value_17
; /* Once value */
9527 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9528 fra
.me
.file
= LOCATE_syntax___typing
;
9530 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_property
;
9531 fra
.me
.has_broke
= 0;
9532 fra
.me
.REG_size
= 10;
9533 fra
.me
.nitni_local_ref_head
= NULL
;
9534 fra
.me
.REG
[0] = NIT_NULL
;
9535 fra
.me
.REG
[1] = NIT_NULL
;
9536 fra
.me
.REG
[2] = NIT_NULL
;
9537 fra
.me
.REG
[3] = NIT_NULL
;
9538 fra
.me
.REG
[4] = NIT_NULL
;
9539 fra
.me
.REG
[5] = NIT_NULL
;
9540 fra
.me
.REG
[6] = NIT_NULL
;
9541 fra
.me
.REG
[7] = NIT_NULL
;
9542 fra
.me
.REG
[8] = NIT_NULL
;
9543 fra
.me
.REG
[9] = NIT_NULL
;
9549 /* syntax/typing.nit:1553 */
9550 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
9551 if (UNTAG_Bool(REGB1
)) {
9552 /* syntax/typing.nit:1554 */
9553 if (!once_value_1
) {
9554 if (!once_value_2
) {
9555 fra
.me
.REG
[4] = BOX_NativeString("==");
9557 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
9558 once_value_2
= fra
.me
.REG
[4];
9559 register_static_object(&once_value_2
);
9560 } else fra
.me
.REG
[4] = once_value_2
;
9561 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9562 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9563 once_value_1
= fra
.me
.REG
[4];
9564 register_static_object(&once_value_1
);
9565 } else fra
.me
.REG
[4] = once_value_1
;
9566 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9567 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
9568 if (UNTAG_Bool(REGB1
)) {
9570 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9573 if (UNTAG_Bool(REGB1
)) {
9574 REGB1
= TAG_Bool(1);
9576 if (!once_value_3
) {
9577 if (!once_value_4
) {
9578 fra
.me
.REG
[4] = BOX_NativeString("!=");
9580 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB2
);
9581 once_value_4
= fra
.me
.REG
[4];
9582 register_static_object(&once_value_4
);
9583 } else fra
.me
.REG
[4] = once_value_4
;
9584 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9585 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9586 once_value_3
= fra
.me
.REG
[4];
9587 register_static_object(&once_value_3
);
9588 } else fra
.me
.REG
[4] = once_value_3
;
9589 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9590 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
9591 if (UNTAG_Bool(REGB2
)) {
9593 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9598 if (UNTAG_Bool(REGB1
)) {
9599 /* syntax/typing.nit:1556 */
9600 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9601 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9602 fra
.me
.REG
[2] = fra
.me
.REG
[4];
9604 /* syntax/typing.nit:1558 */
9606 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9607 if (!once_value_5
) {
9608 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
9609 REGB1
= TAG_Int(15);
9610 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
9611 once_value_5
= fra
.me
.REG
[5];
9612 register_static_object(&once_value_5
);
9613 } else fra
.me
.REG
[5] = once_value_5
;
9614 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9615 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9616 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9617 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9618 if (!once_value_6
) {
9619 fra
.me
.REG
[5] = BOX_NativeString("' call on 'null'.");
9620 REGB1
= TAG_Int(17);
9621 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
9622 once_value_6
= fra
.me
.REG
[5];
9623 register_static_object(&once_value_6
);
9624 } else fra
.me
.REG
[5] = once_value_6
;
9625 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9626 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9627 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9628 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9629 /* syntax/typing.nit:1559 */
9630 fra
.me
.REG
[4] = NIT_NULL
;
9634 /* syntax/typing.nit:1562 */
9635 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9636 /* syntax/typing.nit:1563 */
9637 fra
.me
.REG
[6] = NIT_NULL
;
9638 /* syntax/typing.nit:1564 */
9639 REGB1
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9640 if (UNTAG_Bool(REGB1
)) {
9641 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9642 fra
.me
.REG
[6] = fra
.me
.REG
[7];
9644 /* syntax/typing.nit:1565 */
9645 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9646 if (UNTAG_Bool(REGB1
)) {
9648 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9649 if (UNTAG_Bool(REGB2
)) {
9650 REGB2
= TAG_Bool(0);
9653 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9657 if (UNTAG_Bool(REGB1
)) {
9658 /* syntax/typing.nit:1566 */
9659 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9660 /* ../lib/standard/collection/array.nit:24 */
9661 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
9662 if (UNTAG_Bool(REGB1
)) {
9664 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9666 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
9667 /* syntax/typing.nit:1567 */
9669 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
9670 if (UNTAG_Bool(REGB3
)) {
9672 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9674 /* ../lib/standard/kernel.nit:237 */
9675 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
9676 /* syntax/typing.nit:1567 */
9677 if (UNTAG_Bool(REGB2
)) {
9678 /* syntax/typing.nit:1568 */
9680 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
9681 if (!once_value_8
) {
9682 fra
.me
.REG
[9] = BOX_NativeString("Error: Ambigous method name '");
9683 REGB2
= TAG_Int(29);
9684 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9685 once_value_8
= fra
.me
.REG
[9];
9686 register_static_object(&once_value_8
);
9687 } else fra
.me
.REG
[9] = once_value_8
;
9688 fra
.me
.REG
[9] = 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 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9691 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9692 if (!once_value_9
) {
9693 fra
.me
.REG
[9] = BOX_NativeString("' for ");
9695 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9696 once_value_9
= fra
.me
.REG
[9];
9697 register_static_object(&once_value_9
);
9698 } else fra
.me
.REG
[9] = once_value_9
;
9699 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9700 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9701 if (!once_value_10
) {
9702 fra
.me
.REG
[9] = BOX_NativeString(", ");
9704 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9705 once_value_10
= fra
.me
.REG
[9];
9706 register_static_object(&once_value_10
);
9707 } else fra
.me
.REG
[9] = once_value_10
;
9708 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9709 fra
.me
.REG
[9] = CALL_standard___string___Collection___join(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
9710 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9711 if (!once_value_11
) {
9712 fra
.me
.REG
[9] = BOX_NativeString(". Use explicit designation.");
9713 REGB2
= TAG_Int(27);
9714 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9715 once_value_11
= fra
.me
.REG
[9];
9716 register_static_object(&once_value_11
);
9717 } else fra
.me
.REG
[9] = once_value_11
;
9718 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9719 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9720 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9721 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
9722 /* syntax/typing.nit:1569 */
9723 fra
.me
.REG
[4] = NIT_NULL
;
9726 /* ../lib/standard/collection/array.nit:24 */
9727 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
9728 if (UNTAG_Bool(REGB2
)) {
9730 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9732 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
9733 /* syntax/typing.nit:1570 */
9735 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
9736 if (UNTAG_Bool(REGB3
)) {
9738 /* ../lib/standard/kernel.nit:230 */
9739 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
9740 /* syntax/typing.nit:1570 */
9743 if (UNTAG_Bool(REGB3
)) {
9744 /* syntax/typing.nit:1571 */
9745 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9746 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9747 if (UNTAG_Bool(REGB3
)) {
9748 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1571);
9750 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9751 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
9752 /* syntax/typing.nit:1572 */
9753 REGB3
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
9754 if (UNTAG_Bool(REGB3
)) {
9756 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1572);
9758 /* syntax/typing.nit:1573 */
9759 fra
.me
.REG
[6] = fra
.me
.REG
[7];
9763 /* syntax/typing.nit:1577 */
9764 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9765 if (UNTAG_Bool(REGB3
)) {
9767 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9768 if (UNTAG_Bool(REGB1
)) {
9769 REGB1
= TAG_Bool(0);
9772 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9776 if (UNTAG_Bool(REGB3
)) {
9777 /* syntax/typing.nit:1578 */
9778 if (UNTAG_Bool(REGB0
)) {
9779 /* syntax/typing.nit:1579 */
9781 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9782 if (!once_value_12
) {
9783 fra
.me
.REG
[5] = BOX_NativeString("Error: Method or variable '");
9784 REGB0
= TAG_Int(27);
9785 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9786 once_value_12
= fra
.me
.REG
[5];
9787 register_static_object(&once_value_12
);
9788 } else fra
.me
.REG
[5] = once_value_12
;
9789 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9790 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9791 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9792 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9793 if (!once_value_13
) {
9794 fra
.me
.REG
[5] = BOX_NativeString("' unknown in ");
9795 REGB0
= TAG_Int(13);
9796 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9797 once_value_13
= fra
.me
.REG
[5];
9798 register_static_object(&once_value_13
);
9799 } else fra
.me
.REG
[5] = once_value_13
;
9800 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9801 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9802 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9803 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9804 if (!once_value_14
) {
9805 fra
.me
.REG
[5] = BOX_NativeString(".");
9807 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9808 once_value_14
= fra
.me
.REG
[5];
9809 register_static_object(&once_value_14
);
9810 } else fra
.me
.REG
[5] = once_value_14
;
9811 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9812 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9813 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9814 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9816 /* syntax/typing.nit:1581 */
9818 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9819 if (!once_value_15
) {
9820 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
9821 REGB0
= TAG_Int(15);
9822 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9823 once_value_15
= fra
.me
.REG
[5];
9824 register_static_object(&once_value_15
);
9825 } else fra
.me
.REG
[5] = once_value_15
;
9826 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9827 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9828 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9829 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
9830 if (!once_value_16
) {
9831 fra
.me
.REG
[3] = BOX_NativeString("' doesn't exists in ");
9832 REGB0
= TAG_Int(20);
9833 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9834 once_value_16
= fra
.me
.REG
[3];
9835 register_static_object(&once_value_16
);
9836 } else fra
.me
.REG
[3] = once_value_16
;
9837 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
9839 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9840 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
9841 if (!once_value_17
) {
9842 fra
.me
.REG
[2] = BOX_NativeString(".");
9844 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
9845 once_value_17
= fra
.me
.REG
[2];
9846 register_static_object(&once_value_17
);
9847 } else fra
.me
.REG
[2] = once_value_17
;
9848 fra
.me
.REG
[2] = fra
.me
.REG
[2];
9849 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
9850 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9851 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9853 /* syntax/typing.nit:1583 */
9854 fra
.me
.REG
[4] = NIT_NULL
;
9857 /* syntax/typing.nit:1585 */
9858 fra
.me
.REG
[4] = fra
.me
.REG
[6];
9861 stack_frame_head
= fra
.me
.prev
;
9862 return fra
.me
.REG
[4];
9864 static const char LOCATE_syntax___typing___AAbsSendExpr___get_signature
[] = "typing::AAbsSendExpr::get_signature";
9865 val_t
syntax___typing___AAbsSendExpr___get_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
9866 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
9869 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9870 fra
.me
.file
= LOCATE_syntax___typing
;
9872 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_signature
;
9873 fra
.me
.has_broke
= 0;
9874 fra
.me
.REG_size
= 6;
9875 fra
.me
.nitni_local_ref_head
= NULL
;
9876 fra
.me
.REG
[0] = NIT_NULL
;
9877 fra
.me
.REG
[1] = NIT_NULL
;
9878 fra
.me
.REG
[2] = NIT_NULL
;
9879 fra
.me
.REG
[3] = NIT_NULL
;
9880 fra
.me
.REG
[4] = NIT_NULL
;
9881 fra
.me
.REG
[5] = NIT_NULL
;
9887 /* syntax/typing.nit:1591 */
9888 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9889 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9890 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
);
9891 /* syntax/typing.nit:1592 */
9892 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
9893 /* syntax/typing.nit:1593 */
9894 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9895 if (UNTAG_Bool(REGB0
)) {
9896 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9897 fra
.me
.REG
[2] = fra
.me
.REG
[3];
9899 /* syntax/typing.nit:1594 */
9902 stack_frame_head
= fra
.me
.prev
;
9903 return fra
.me
.REG
[2];
9905 static const char LOCATE_syntax___typing___AAbsSendExpr___prop
[] = "typing::AAbsSendExpr::(syntax_base::AAbsSendExpr::prop)";
9906 val_t
syntax___typing___AAbsSendExpr___prop(val_t p0
){
9907 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9910 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9911 fra
.me
.file
= LOCATE_syntax___typing
;
9913 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___prop
;
9914 fra
.me
.has_broke
= 0;
9915 fra
.me
.REG_size
= 2;
9916 fra
.me
.nitni_local_ref_head
= NULL
;
9917 fra
.me
.REG
[0] = NIT_NULL
;
9918 fra
.me
.REG
[1] = NIT_NULL
;
9920 /* syntax/typing.nit:1597 */
9921 fra
.me
.REG
[1] = fra
.me
.REG
[0];
9922 /* syntax/typing.nit:1598 */
9923 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[1]);
9924 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
9925 if (UNTAG_Bool(REGB0
)) {
9927 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1598);
9931 stack_frame_head
= fra
.me
.prev
;
9932 return fra
.me
.REG
[1];
9934 static const char LOCATE_syntax___typing___AAbsSendExpr___return_type
[] = "typing::AAbsSendExpr::(syntax_base::AAbsSendExpr::return_type)";
9935 val_t
syntax___typing___AAbsSendExpr___return_type(val_t p0
){
9936 struct {struct stack_frame_t me
;} fra
;
9938 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9939 fra
.me
.file
= LOCATE_syntax___typing
;
9941 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___return_type
;
9942 fra
.me
.has_broke
= 0;
9943 fra
.me
.REG_size
= 1;
9944 fra
.me
.nitni_local_ref_head
= NULL
;
9945 fra
.me
.REG
[0] = NIT_NULL
;
9947 /* syntax/typing.nit:1601 */
9948 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]);
9949 stack_frame_head
= fra
.me
.prev
;
9950 return fra
.me
.REG
[0];
9952 static const char LOCATE_syntax___typing___ASuperInitCall___register_super_init_call
[] = "typing::ASuperInitCall::register_super_init_call";
9953 void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0
, val_t p1
, val_t p2
){
9954 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
9959 static val_t once_value_1
; /* Once value */
9960 static val_t once_value_2
; /* Once value */
9961 static val_t once_value_3
; /* Once value */
9962 static val_t once_value_4
; /* Once value */
9963 static val_t once_value_5
; /* Once value */
9964 static val_t once_value_6
; /* Once value */
9965 static val_t once_value_7
; /* Once value */
9966 static val_t once_value_8
; /* Once value */
9967 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9968 fra
.me
.file
= LOCATE_syntax___typing
;
9970 fra
.me
.meth
= LOCATE_syntax___typing___ASuperInitCall___register_super_init_call
;
9971 fra
.me
.has_broke
= 0;
9972 fra
.me
.REG_size
= 9;
9973 fra
.me
.nitni_local_ref_head
= NULL
;
9974 fra
.me
.REG
[0] = NIT_NULL
;
9975 fra
.me
.REG
[1] = NIT_NULL
;
9976 fra
.me
.REG
[2] = NIT_NULL
;
9977 fra
.me
.REG
[3] = NIT_NULL
;
9978 fra
.me
.REG
[4] = NIT_NULL
;
9979 fra
.me
.REG
[5] = NIT_NULL
;
9980 fra
.me
.REG
[6] = NIT_NULL
;
9981 fra
.me
.REG
[7] = NIT_NULL
;
9982 fra
.me
.REG
[8] = NIT_NULL
;
9986 /* syntax/typing.nit:1608 */
9987 fra
.me
.REG
[3] = fra
.me
.REG
[0];
9988 /* syntax/typing.nit:1610 */
9989 fra
.me
.REG
[4] = CALL_parser___parser_prod___ANode___parent(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9990 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9991 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[4],fra
.me
.REG
[5]));
9992 if (UNTAG_Bool(REGB0
)) {
9994 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9995 if (UNTAG_Bool(REGB1
)) {
9996 REGB1
= TAG_Bool(0);
9999 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10003 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10004 if (UNTAG_Bool(REGB0
)) {
10005 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10006 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[5]));
10007 if (UNTAG_Bool(REGB0
)) {
10009 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10012 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10014 REGB1
= TAG_Bool(0);
10017 if (UNTAG_Bool(REGB0
)) {
10018 /* syntax/typing.nit:1611 */
10019 REGB0
= TAG_Int(3);
10020 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10021 if (!once_value_1
) {
10022 fra
.me
.REG
[4] = BOX_NativeString("Error: Constructor invocation ");
10023 REGB0
= TAG_Int(30);
10024 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10025 once_value_1
= fra
.me
.REG
[4];
10026 register_static_object(&once_value_1
);
10027 } else fra
.me
.REG
[4] = once_value_1
;
10028 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10029 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10030 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10031 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10032 if (!once_value_2
) {
10033 fra
.me
.REG
[4] = BOX_NativeString(" must not be in nested block.");
10034 REGB0
= TAG_Int(29);
10035 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10036 once_value_2
= fra
.me
.REG
[4];
10037 register_static_object(&once_value_2
);
10038 } else fra
.me
.REG
[4] = once_value_2
;
10039 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10040 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10041 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10042 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
10044 /* syntax/typing.nit:1613 */
10045 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10046 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10047 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10048 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10049 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10050 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10051 /* syntax/typing.nit:1614 */
10052 fra
.me
.REG
[5] = NIT_NULL
;
10053 /* syntax/typing.nit:1615 */
10054 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___explicit_super_init_calls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10055 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
10056 if (UNTAG_Bool(REGB0
)) {
10058 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1615);
10060 /* syntax/typing.nit:1616 */
10061 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10062 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10063 if (UNTAG_Bool(REGB0
)) {
10064 /* syntax/typing.nit:1617 */
10065 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10066 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
10067 if (UNTAG_Bool(REGB0
)) {
10068 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1617);
10070 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10071 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10072 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10073 fra
.me
.REG
[5] = fra
.me
.REG
[0];
10075 /* syntax/typing.nit:1619 */
10076 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10077 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10078 fra
.me
.REG
[0] = CALL_metamodel___partial_order___PartialOrderElement___reverse_linear_extension(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10079 /* syntax/typing.nit:1620 */
10080 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10081 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[7]));
10082 if (UNTAG_Bool(REGB0
)) {
10084 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
10087 if (UNTAG_Bool(REGB0
)) {
10088 /* syntax/typing.nit:1621 */
10089 REGB0
= TAG_Bool(1);
10090 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
10092 /* syntax/typing.nit:1622 */
10093 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
10094 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10095 if (UNTAG_Bool(REGB0
)) {
10096 /* syntax/typing.nit:1623 */
10097 REGB0
= TAG_Int(5);
10098 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10099 if (!once_value_3
) {
10100 fra
.me
.REG
[8] = BOX_NativeString("Error: Constructor of class ");
10101 REGB0
= TAG_Int(28);
10102 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
10103 once_value_3
= fra
.me
.REG
[8];
10104 register_static_object(&once_value_3
);
10105 } else fra
.me
.REG
[8] = once_value_3
;
10106 fra
.me
.REG
[8] = 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 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10109 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10110 if (!once_value_4
) {
10111 fra
.me
.REG
[8] = BOX_NativeString(" must be one in ");
10112 REGB0
= TAG_Int(16);
10113 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
10114 once_value_4
= fra
.me
.REG
[8];
10115 register_static_object(&once_value_4
);
10116 } else fra
.me
.REG
[8] = once_value_4
;
10117 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10118 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10119 if (!once_value_5
) {
10120 fra
.me
.REG
[8] = BOX_NativeString(", ");
10121 REGB0
= TAG_Int(2);
10122 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
10123 once_value_5
= fra
.me
.REG
[8];
10124 register_static_object(&once_value_5
);
10125 } else fra
.me
.REG
[8] = once_value_5
;
10126 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10127 fra
.me
.REG
[8] = CALL_standard___string___Collection___join(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[8]);
10128 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10129 if (!once_value_6
) {
10130 fra
.me
.REG
[8] = BOX_NativeString(".");
10131 REGB0
= TAG_Int(1);
10132 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
10133 once_value_6
= fra
.me
.REG
[8];
10134 register_static_object(&once_value_6
);
10135 } else fra
.me
.REG
[8] = once_value_6
;
10136 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10137 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10138 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
10139 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[7]);
10141 /* syntax/typing.nit:1624 */
10142 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[4],fra
.me
.REG
[5]));
10143 if (UNTAG_Bool(REGB0
)) {
10145 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10148 if (UNTAG_Bool(REGB0
)) {
10149 /* syntax/typing.nit:1625 */
10150 REGB0
= TAG_Int(3);
10151 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10152 if (!once_value_7
) {
10153 fra
.me
.REG
[8] = BOX_NativeString("Error: Only one super constructor invocation of class ");
10154 REGB0
= TAG_Int(54);
10155 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
10156 once_value_7
= fra
.me
.REG
[8];
10157 register_static_object(&once_value_7
);
10158 } else fra
.me
.REG
[8] = once_value_7
;
10159 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10160 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10161 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10162 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10163 if (!once_value_8
) {
10164 fra
.me
.REG
[8] = BOX_NativeString(" is allowed.");
10165 REGB0
= TAG_Int(12);
10166 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
10167 once_value_8
= fra
.me
.REG
[8];
10168 register_static_object(&once_value_8
);
10169 } else fra
.me
.REG
[8] = once_value_8
;
10170 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10171 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10172 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
10173 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[7]);
10175 /* ../lib/standard/collection/array.nit:269 */
10176 REGB0
= TAG_Int(0);
10177 /* ../lib/standard/collection/array.nit:270 */
10178 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
10179 if (UNTAG_Bool(REGB1
)) {
10181 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
10183 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
10184 /* ../lib/standard/collection/array.nit:271 */
10185 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
10186 /* ../lib/standard/collection/array.nit:272 */
10188 /* ../lib/standard/collection/array.nit:24 */
10189 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
10190 if (UNTAG_Bool(REGB1
)) {
10192 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
10194 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
10195 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
10196 if (UNTAG_Bool(REGB2
)) {
10198 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
10200 /* ../lib/standard/kernel.nit:235 */
10201 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
10202 /* ../lib/standard/collection/array.nit:272 */
10203 if (UNTAG_Bool(REGB1
)) {
10204 /* ../lib/standard/collection/array.nit:273 */
10205 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
10206 if (UNTAG_Bool(REGB1
)) {
10207 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
10209 /* ../lib/standard/collection/array.nit:724 */
10210 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
10211 /* syntax/typing.nit:1628 */
10212 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[5]));
10213 if (UNTAG_Bool(REGB1
)) {
10215 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10218 if (UNTAG_Bool(REGB1
)) {
10219 /* syntax/typing.nit:1629 */
10220 fra
.me
.REG
[5] = NIT_NULL
;
10222 /* syntax/typing.nit:1630 */
10223 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
10224 if (UNTAG_Bool(REGB1
)) {
10226 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10229 if (UNTAG_Bool(REGB1
)) {
10230 /* syntax/typing.nit:1631 */
10231 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
10232 /* syntax/typing.nit:1632 */
10236 /* ../lib/standard/collection/array.nit:274 */
10237 REGB1
= TAG_Int(1);
10238 /* ../lib/standard/kernel.nit:238 */
10239 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
10240 /* ../lib/standard/collection/array.nit:274 */
10243 /* ../lib/standard/collection/array.nit:272 */
10252 stack_frame_head
= fra
.me
.prev
;
10255 static const char LOCATE_syntax___typing___ANewExpr___compute_raw_arguments
[] = "typing::ANewExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
10256 val_t
syntax___typing___ANewExpr___compute_raw_arguments(val_t p0
){
10257 struct {struct stack_frame_t me
;} fra
;
10259 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10260 fra
.me
.file
= LOCATE_syntax___typing
;
10261 fra
.me
.line
= 1641;
10262 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___compute_raw_arguments
;
10263 fra
.me
.has_broke
= 0;
10264 fra
.me
.REG_size
= 1;
10265 fra
.me
.nitni_local_ref_head
= NULL
;
10266 fra
.me
.REG
[0] = NIT_NULL
;
10267 fra
.me
.REG
[0] = p0
;
10268 /* syntax/typing.nit:1641 */
10269 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ANewExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10270 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10273 stack_frame_head
= fra
.me
.prev
;
10274 return fra
.me
.REG
[0];
10276 static const char LOCATE_syntax___typing___ANewExpr___after_typing
[] = "typing::ANewExpr::(typing::ANode::after_typing)";
10277 void syntax___typing___ANewExpr___after_typing(val_t p0
, val_t p1
){
10278 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10282 static val_t once_value_2
; /* Once value */
10283 static val_t once_value_3
; /* Once value */
10284 static val_t once_value_4
; /* Once value */
10285 static val_t once_value_5
; /* Once value */
10286 static val_t once_value_6
; /* Once value */
10287 static val_t once_value_7
; /* Once value */
10288 static val_t once_value_8
; /* Once value */
10289 static val_t once_value_9
; /* Once value */
10290 static val_t once_value_10
; /* Once value */
10291 static val_t once_value_11
; /* Once value */
10292 static val_t once_value_12
; /* Once value */
10293 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10294 fra
.me
.file
= LOCATE_syntax___typing
;
10295 fra
.me
.line
= 1642;
10296 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___after_typing
;
10297 fra
.me
.has_broke
= 0;
10298 fra
.me
.REG_size
= 5;
10299 fra
.me
.nitni_local_ref_head
= NULL
;
10300 fra
.me
.REG
[0] = NIT_NULL
;
10301 fra
.me
.REG
[1] = NIT_NULL
;
10302 fra
.me
.REG
[2] = NIT_NULL
;
10303 fra
.me
.REG
[3] = NIT_NULL
;
10304 fra
.me
.REG
[4] = NIT_NULL
;
10305 fra
.me
.REG
[0] = p0
;
10306 fra
.me
.REG
[1] = p1
;
10307 /* syntax/typing.nit:1644 */
10308 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10309 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10310 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10311 if (UNTAG_Bool(REGB0
)) {
10314 /* syntax/typing.nit:1645 */
10315 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10316 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10317 /* syntax/typing.nit:1646 */
10318 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10319 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10320 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10321 if (UNTAG_Bool(REGB0
)) {
10322 /* syntax/typing.nit:1647 */
10323 REGB0
= TAG_Int(3);
10324 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10325 if (!once_value_2
) {
10326 fra
.me
.REG
[4] = BOX_NativeString("Error: try to instantiate abstract class ");
10327 REGB0
= TAG_Int(41);
10328 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10329 once_value_2
= fra
.me
.REG
[4];
10330 register_static_object(&once_value_2
);
10331 } else fra
.me
.REG
[4] = once_value_2
;
10332 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10333 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10334 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10335 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10336 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10337 if (!once_value_3
) {
10338 fra
.me
.REG
[4] = BOX_NativeString(".");
10339 REGB0
= TAG_Int(1);
10340 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10341 once_value_3
= fra
.me
.REG
[4];
10342 register_static_object(&once_value_3
);
10343 } else fra
.me
.REG
[4] = once_value_3
;
10344 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10346 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10347 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
10348 /* syntax/typing.nit:1648 */
10351 /* syntax/typing.nit:1650 */
10352 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10353 if (UNTAG_Bool(REGB0
)) {
10354 /* syntax/typing.nit:1651 */
10355 REGB0
= TAG_Int(3);
10356 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10357 if (!once_value_4
) {
10358 fra
.me
.REG
[4] = BOX_NativeString("Type error: cannot instantiate the nullable type ");
10359 REGB0
= TAG_Int(49);
10360 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10361 once_value_4
= fra
.me
.REG
[4];
10362 register_static_object(&once_value_4
);
10363 } else fra
.me
.REG
[4] = once_value_4
;
10364 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10365 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10366 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10367 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10368 if (!once_value_5
) {
10369 fra
.me
.REG
[4] = BOX_NativeString(".");
10370 REGB0
= TAG_Int(1);
10371 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10372 once_value_5
= fra
.me
.REG
[4];
10373 register_static_object(&once_value_5
);
10374 } else fra
.me
.REG
[4] = once_value_5
;
10375 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10376 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10377 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10378 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
10380 /* syntax/typing.nit:1654 */
10381 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10382 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10383 if (UNTAG_Bool(REGB0
)) {
10385 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10386 if (UNTAG_Bool(REGB1
)) {
10387 REGB1
= TAG_Bool(0);
10390 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10394 if (UNTAG_Bool(REGB0
)) {
10395 /* syntax/typing.nit:1655 */
10396 if (!once_value_6
) {
10397 if (!once_value_7
) {
10398 fra
.me
.REG
[3] = BOX_NativeString("init");
10399 REGB0
= TAG_Int(4);
10400 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
10401 once_value_7
= fra
.me
.REG
[3];
10402 register_static_object(&once_value_7
);
10403 } else fra
.me
.REG
[3] = once_value_7
;
10404 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10405 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10406 once_value_6
= fra
.me
.REG
[3];
10407 register_static_object(&once_value_6
);
10408 } else fra
.me
.REG
[3] = once_value_6
;
10409 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10411 /* syntax/typing.nit:1657 */
10412 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10413 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10414 if (UNTAG_Bool(REGB0
)) {
10415 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1657);
10417 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10418 fra
.me
.REG
[3] = fra
.me
.REG
[4];
10420 /* syntax/typing.nit:1660 */
10421 REGB0
= TAG_Bool(0);
10422 REGB1
= TAG_Bool(0);
10423 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10424 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
);
10425 /* syntax/typing.nit:1661 */
10426 fra
.me
.REG
[4] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
10427 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10428 if (UNTAG_Bool(REGB1
)) {
10430 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10431 if (UNTAG_Bool(REGB0
)) {
10432 REGB0
= TAG_Bool(0);
10435 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
10439 if (UNTAG_Bool(REGB1
)) {
10442 /* syntax/typing.nit:1663 */
10443 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10444 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10445 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10446 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10447 if (UNTAG_Bool(REGB1
)) {
10448 /* syntax/typing.nit:1664 */
10449 REGB1
= TAG_Int(3);
10450 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10451 if (!once_value_8
) {
10452 fra
.me
.REG
[3] = BOX_NativeString("Error: ");
10453 REGB1
= TAG_Int(7);
10454 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
10455 once_value_8
= fra
.me
.REG
[3];
10456 register_static_object(&once_value_8
);
10457 } else fra
.me
.REG
[3] = once_value_8
;
10458 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10459 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10460 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10461 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10462 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10463 if (!once_value_9
) {
10464 fra
.me
.REG
[3] = BOX_NativeString(" is not a constructor.");
10465 REGB1
= TAG_Int(22);
10466 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
10467 once_value_9
= fra
.me
.REG
[3];
10468 register_static_object(&once_value_9
);
10469 } else fra
.me
.REG
[3] = once_value_9
;
10470 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10471 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10472 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10473 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
10474 /* syntax/typing.nit:1665 */
10477 /* syntax/typing.nit:1667 */
10478 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10479 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10480 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10481 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10482 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10483 if (UNTAG_Bool(REGB1
)) {
10484 /* syntax/typing.nit:1668 */
10485 REGB1
= TAG_Int(5);
10486 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10487 if (!once_value_10
) {
10488 fra
.me
.REG
[4] = BOX_NativeString("Error: ");
10489 REGB1
= TAG_Int(7);
10490 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
10491 once_value_10
= fra
.me
.REG
[4];
10492 register_static_object(&once_value_10
);
10493 } else fra
.me
.REG
[4] = once_value_10
;
10494 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10495 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10496 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10497 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(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 if (!once_value_11
) {
10500 fra
.me
.REG
[4] = BOX_NativeString(" is not a constructor in ");
10501 REGB1
= TAG_Int(25);
10502 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
10503 once_value_11
= fra
.me
.REG
[4];
10504 register_static_object(&once_value_11
);
10505 } else fra
.me
.REG
[4] = once_value_11
;
10506 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10507 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10508 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10509 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10510 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10511 if (!once_value_12
) {
10512 fra
.me
.REG
[4] = BOX_NativeString(".");
10513 REGB1
= TAG_Int(1);
10514 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
10515 once_value_12
= fra
.me
.REG
[4];
10516 register_static_object(&once_value_12
);
10517 } else fra
.me
.REG
[4] = once_value_12
;
10518 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10519 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10520 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10521 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
10522 /* syntax/typing.nit:1669 */
10525 /* syntax/typing.nit:1671 */
10526 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10527 /* syntax/typing.nit:1672 */
10528 REGB1
= TAG_Bool(1);
10529 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
10531 stack_frame_head
= fra
.me
.prev
;
10534 static const char LOCATE_syntax___typing___ASendExpr___name
[] = "typing::ASendExpr::name";
10535 val_t
syntax___typing___ASendExpr___name(val_t p0
){
10536 struct {struct stack_frame_t me
;} fra
;
10538 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10539 fra
.me
.file
= LOCATE_syntax___typing
;
10540 fra
.me
.line
= 1678;
10541 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___name
;
10542 fra
.me
.has_broke
= 0;
10543 fra
.me
.REG_size
= 0;
10544 fra
.me
.nitni_local_ref_head
= NULL
;
10545 /* syntax/typing.nit:1678 */
10546 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1678);
10547 stack_frame_head
= fra
.me
.prev
;
10550 static const char LOCATE_syntax___typing___ASendExpr___closure_defs
[] = "typing::ASendExpr::(syntax_base::ASendExpr::closure_defs)";
10551 val_t
syntax___typing___ASendExpr___closure_defs(val_t p0
){
10552 struct {struct stack_frame_t me
;} fra
;
10554 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10555 fra
.me
.file
= LOCATE_syntax___typing
;
10556 fra
.me
.line
= 1681;
10557 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___closure_defs
;
10558 fra
.me
.has_broke
= 0;
10559 fra
.me
.REG_size
= 1;
10560 fra
.me
.nitni_local_ref_head
= NULL
;
10561 fra
.me
.REG
[0] = NIT_NULL
;
10562 fra
.me
.REG
[0] = p0
;
10563 /* syntax/typing.nit:1682 */
10564 fra
.me
.REG
[0] = NIT_NULL
;
10567 stack_frame_head
= fra
.me
.prev
;
10568 return fra
.me
.REG
[0];
10570 static const char LOCATE_syntax___typing___ASendExpr___after_typing
[] = "typing::ASendExpr::(typing::ANode::after_typing)";
10571 void syntax___typing___ASendExpr___after_typing(val_t p0
, val_t p1
){
10572 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10574 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10575 fra
.me
.file
= LOCATE_syntax___typing
;
10576 fra
.me
.line
= 1684;
10577 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___after_typing
;
10578 fra
.me
.has_broke
= 0;
10579 fra
.me
.REG_size
= 2;
10580 fra
.me
.nitni_local_ref_head
= NULL
;
10581 fra
.me
.REG
[0] = NIT_NULL
;
10582 fra
.me
.REG
[1] = NIT_NULL
;
10583 fra
.me
.REG
[0] = p0
;
10584 fra
.me
.REG
[1] = p1
;
10585 /* syntax/typing.nit:1686 */
10586 CALL_syntax___typing___ASendExpr___do_all_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10587 stack_frame_head
= fra
.me
.prev
;
10590 static const char LOCATE_syntax___typing___ASendExpr___do_all_typing
[] = "typing::ASendExpr::do_all_typing";
10591 void syntax___typing___ASendExpr___do_all_typing(val_t p0
, val_t p1
){
10592 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
10596 static val_t once_value_2
; /* Once value */
10597 static val_t once_value_3
; /* Once value */
10598 static val_t once_value_4
; /* Once value */
10599 static val_t once_value_5
; /* Once value */
10600 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10601 fra
.me
.file
= LOCATE_syntax___typing
;
10602 fra
.me
.line
= 1689;
10603 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___do_all_typing
;
10604 fra
.me
.has_broke
= 0;
10605 fra
.me
.REG_size
= 7;
10606 fra
.me
.nitni_local_ref_head
= NULL
;
10607 fra
.me
.REG
[0] = NIT_NULL
;
10608 fra
.me
.REG
[1] = NIT_NULL
;
10609 fra
.me
.REG
[2] = NIT_NULL
;
10610 fra
.me
.REG
[3] = NIT_NULL
;
10611 fra
.me
.REG
[4] = NIT_NULL
;
10612 fra
.me
.REG
[5] = NIT_NULL
;
10613 fra
.me
.REG
[6] = NIT_NULL
;
10614 fra
.me
.REG
[0] = p0
;
10615 fra
.me
.REG
[1] = p1
;
10616 /* syntax/typing.nit:1689 */
10617 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10618 /* syntax/typing.nit:1691 */
10619 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10620 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
10621 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10622 if (UNTAG_Bool(REGB0
)) {
10625 /* syntax/typing.nit:1692 */
10626 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10627 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10628 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10629 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10630 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10631 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10632 fra
.me
.REG
[4] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10633 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10634 fra
.me
.REG
[6] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10635 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]);
10636 /* syntax/typing.nit:1693 */
10637 fra
.me
.REG
[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10638 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
10639 if (UNTAG_Bool(REGB1
)) {
10641 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
10642 if (UNTAG_Bool(REGB0
)) {
10643 REGB0
= TAG_Bool(0);
10646 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
10650 if (UNTAG_Bool(REGB1
)) {
10653 /* syntax/typing.nit:1694 */
10654 fra
.me
.REG
[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10655 REGB1
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
10656 if (UNTAG_Bool(REGB1
)) {
10658 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1694);
10660 /* syntax/typing.nit:1696 */
10661 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10662 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10663 if (UNTAG_Bool(REGB1
)) {
10664 /* syntax/typing.nit:1697 */
10665 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10666 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10667 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10668 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10669 if (UNTAG_Bool(REGB1
)) {
10670 /* syntax/typing.nit:1698 */
10671 REGB1
= TAG_Int(3);
10672 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10673 if (!once_value_2
) {
10674 fra
.me
.REG
[5] = BOX_NativeString("Error: try to invoke constructor ");
10675 REGB1
= TAG_Int(33);
10676 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10677 once_value_2
= fra
.me
.REG
[5];
10678 register_static_object(&once_value_2
);
10679 } else fra
.me
.REG
[5] = once_value_2
;
10680 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10681 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10682 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10683 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10684 if (!once_value_3
) {
10685 fra
.me
.REG
[5] = BOX_NativeString(" in a method.");
10686 REGB1
= TAG_Int(13);
10687 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10688 once_value_3
= fra
.me
.REG
[5];
10689 register_static_object(&once_value_3
);
10690 } else fra
.me
.REG
[5] = once_value_3
;
10691 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10692 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10693 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10694 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10696 /* syntax/typing.nit:1699 */
10697 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10698 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10699 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10700 if (UNTAG_Bool(REGB1
)) {
10701 /* syntax/typing.nit:1700 */
10702 REGB1
= TAG_Int(3);
10703 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10704 if (!once_value_4
) {
10705 fra
.me
.REG
[5] = BOX_NativeString("Error: constructor ");
10706 REGB1
= TAG_Int(19);
10707 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10708 once_value_4
= fra
.me
.REG
[5];
10709 register_static_object(&once_value_4
);
10710 } else fra
.me
.REG
[5] = once_value_4
;
10711 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10712 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10713 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10714 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10715 if (!once_value_5
) {
10716 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
10717 REGB1
= TAG_Int(26);
10718 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10719 once_value_5
= fra
.me
.REG
[5];
10720 register_static_object(&once_value_5
);
10721 } else fra
.me
.REG
[5] = once_value_5
;
10722 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10723 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10724 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10725 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10727 /* syntax/typing.nit:1702 */
10728 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[6]);
10732 /* syntax/typing.nit:1706 */
10733 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AAbsSendExpr___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10734 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
10735 /* syntax/typing.nit:1707 */
10736 REGB1
= TAG_Bool(1);
10737 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB1
;
10739 stack_frame_head
= fra
.me
.prev
;
10742 static const char LOCATE_syntax___typing___ASendReassignExpr___read_prop
[] = "typing::ASendReassignExpr::(syntax_base::ASendReassignExpr::read_prop)";
10743 val_t
syntax___typing___ASendReassignExpr___read_prop(val_t p0
){
10744 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10747 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10748 fra
.me
.file
= LOCATE_syntax___typing
;
10749 fra
.me
.line
= 1712;
10750 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___read_prop
;
10751 fra
.me
.has_broke
= 0;
10752 fra
.me
.REG_size
= 2;
10753 fra
.me
.nitni_local_ref_head
= NULL
;
10754 fra
.me
.REG
[0] = NIT_NULL
;
10755 fra
.me
.REG
[1] = NIT_NULL
;
10756 fra
.me
.REG
[0] = p0
;
10757 /* syntax/typing.nit:1712 */
10758 fra
.me
.REG
[1] = fra
.me
.REG
[0];
10759 fra
.me
.REG
[1] = ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[1]);
10760 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
10761 if (UNTAG_Bool(REGB0
)) {
10763 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1712);
10767 stack_frame_head
= fra
.me
.prev
;
10768 return fra
.me
.REG
[1];
10770 static const char LOCATE_syntax___typing___ASendReassignExpr___do_all_typing
[] = "typing::ASendReassignExpr::(typing::ASendExpr::do_all_typing)";
10771 void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0
, val_t p1
){
10772 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
10777 static val_t once_value_2
; /* Once value */
10778 static val_t once_value_3
; /* Once value */
10779 static val_t once_value_4
; /* Once value */
10780 static val_t once_value_5
; /* Once value */
10781 static val_t once_value_6
; /* Once value */
10782 static val_t once_value_7
; /* Once value */
10783 static val_t once_value_8
; /* Once value */
10784 static val_t once_value_9
; /* Once value */
10785 static val_t once_value_10
; /* Once value */
10786 static val_t once_value_11
; /* Once value */
10787 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10788 fra
.me
.file
= LOCATE_syntax___typing
;
10789 fra
.me
.line
= 1714;
10790 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___do_all_typing
;
10791 fra
.me
.has_broke
= 0;
10792 fra
.me
.REG_size
= 7;
10793 fra
.me
.nitni_local_ref_head
= NULL
;
10794 fra
.me
.REG
[0] = NIT_NULL
;
10795 fra
.me
.REG
[1] = NIT_NULL
;
10796 fra
.me
.REG
[2] = NIT_NULL
;
10797 fra
.me
.REG
[3] = NIT_NULL
;
10798 fra
.me
.REG
[4] = NIT_NULL
;
10799 fra
.me
.REG
[5] = NIT_NULL
;
10800 fra
.me
.REG
[6] = NIT_NULL
;
10801 fra
.me
.REG
[0] = p0
;
10802 fra
.me
.REG
[1] = p1
;
10803 /* syntax/typing.nit:1714 */
10804 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10805 /* syntax/typing.nit:1716 */
10806 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10807 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
10808 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10809 if (UNTAG_Bool(REGB0
)) {
10812 /* syntax/typing.nit:1717 */
10813 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10814 /* syntax/typing.nit:1718 */
10815 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10816 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10817 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10818 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10819 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10820 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10821 fra
.me
.REG
[5] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10822 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
);
10823 /* syntax/typing.nit:1719 */
10824 fra
.me
.REG
[5] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10825 /* syntax/typing.nit:1720 */
10826 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10827 if (UNTAG_Bool(REGB1
)) {
10829 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10830 if (UNTAG_Bool(REGB0
)) {
10831 REGB0
= TAG_Bool(0);
10834 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
10838 if (UNTAG_Bool(REGB1
)) {
10841 /* syntax/typing.nit:1721 */
10842 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10843 if (UNTAG_Bool(REGB1
)) {
10844 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1721);
10846 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10847 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10848 if (UNTAG_Bool(REGB1
)) {
10849 /* syntax/typing.nit:1722 */
10850 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10851 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10852 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10853 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10854 if (UNTAG_Bool(REGB1
)) {
10855 /* syntax/typing.nit:1723 */
10856 REGB1
= TAG_Int(3);
10857 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10858 if (!once_value_2
) {
10859 fra
.me
.REG
[6] = BOX_NativeString("Error: try to invoke constructor ");
10860 REGB1
= TAG_Int(33);
10861 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10862 once_value_2
= fra
.me
.REG
[6];
10863 register_static_object(&once_value_2
);
10864 } else fra
.me
.REG
[6] = once_value_2
;
10865 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10866 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10867 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10868 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10869 if (!once_value_3
) {
10870 fra
.me
.REG
[6] = BOX_NativeString(" in a method.");
10871 REGB1
= TAG_Int(13);
10872 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10873 once_value_3
= fra
.me
.REG
[6];
10874 register_static_object(&once_value_3
);
10875 } else fra
.me
.REG
[6] = once_value_3
;
10876 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10877 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10878 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10879 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
10881 /* syntax/typing.nit:1724 */
10882 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10883 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10884 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10885 if (UNTAG_Bool(REGB1
)) {
10886 /* syntax/typing.nit:1725 */
10887 REGB1
= TAG_Int(3);
10888 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10889 if (!once_value_4
) {
10890 fra
.me
.REG
[6] = BOX_NativeString("Error: constructor ");
10891 REGB1
= TAG_Int(19);
10892 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10893 once_value_4
= fra
.me
.REG
[6];
10894 register_static_object(&once_value_4
);
10895 } else fra
.me
.REG
[6] = once_value_4
;
10896 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10897 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10898 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10899 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10900 if (!once_value_5
) {
10901 fra
.me
.REG
[6] = BOX_NativeString(" is not invoken on 'self'.");
10902 REGB1
= TAG_Int(26);
10903 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10904 once_value_5
= fra
.me
.REG
[6];
10905 register_static_object(&once_value_5
);
10906 } else fra
.me
.REG
[6] = once_value_5
;
10907 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10908 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10909 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10910 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
10914 /* syntax/typing.nit:1728 */
10915 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10916 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10917 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10918 if (UNTAG_Bool(REGB1
)) {
10919 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1728);
10921 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10922 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10923 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*/;
10924 if (UNTAG_Bool(REGB1
)) {
10926 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1728);
10928 /* syntax/typing.nit:1729 */
10929 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10930 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10931 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10932 if (UNTAG_Bool(REGB1
)) {
10933 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10934 fra
.me
.REG
[4] = fra
.me
.REG
[0];
10936 /* syntax/typing.nit:1731 */
10937 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]);
10938 /* syntax/typing.nit:1732 */
10939 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10940 if (UNTAG_Bool(REGB1
)) {
10942 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10943 if (UNTAG_Bool(REGB0
)) {
10944 REGB0
= TAG_Bool(0);
10947 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
10951 if (UNTAG_Bool(REGB1
)) {
10954 /* syntax/typing.nit:1733 */
10955 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10956 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10957 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]);
10958 /* syntax/typing.nit:1735 */
10959 ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
10960 /* syntax/typing.nit:1736 */
10961 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10962 fra
.me
.REG
[3] = fra
.me
.REG
[0];
10963 /* syntax/typing.nit:1737 */
10964 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10965 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
10966 /* syntax/typing.nit:1739 */
10967 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10968 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10969 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10970 REGB1
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10971 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10972 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10973 REGB2
= TAG_Int(3);
10974 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
10975 if (!once_value_6
) {
10976 fra
.me
.REG
[6] = BOX_NativeString("");
10977 REGB2
= TAG_Int(0);
10978 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
10979 once_value_6
= fra
.me
.REG
[6];
10980 register_static_object(&once_value_6
);
10981 } else fra
.me
.REG
[6] = once_value_6
;
10982 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10983 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10984 fra
.me
.REG
[6] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10985 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10986 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10987 if (!once_value_7
) {
10988 fra
.me
.REG
[6] = BOX_NativeString("=");
10989 REGB2
= TAG_Int(1);
10990 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
10991 once_value_7
= fra
.me
.REG
[6];
10992 register_static_object(&once_value_7
);
10993 } else fra
.me
.REG
[6] = once_value_7
;
10994 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10995 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10996 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10997 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10998 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
);
10999 /* syntax/typing.nit:1740 */
11000 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
11001 if (UNTAG_Bool(REGB0
)) {
11002 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1740);
11004 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
11005 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11006 if (UNTAG_Bool(REGB0
)) {
11007 /* syntax/typing.nit:1741 */
11008 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11009 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11010 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11011 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11012 if (UNTAG_Bool(REGB0
)) {
11013 /* syntax/typing.nit:1742 */
11014 REGB0
= TAG_Int(3);
11015 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
11016 if (!once_value_8
) {
11017 fra
.me
.REG
[4] = BOX_NativeString("Error: try to invoke constructor ");
11018 REGB0
= TAG_Int(33);
11019 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
11020 once_value_8
= fra
.me
.REG
[4];
11021 register_static_object(&once_value_8
);
11022 } else fra
.me
.REG
[4] = once_value_8
;
11023 fra
.me
.REG
[4] = fra
.me
.REG
[4];
11024 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
11025 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
11026 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
11027 if (!once_value_9
) {
11028 fra
.me
.REG
[4] = BOX_NativeString(" in a method.");
11029 REGB0
= TAG_Int(13);
11030 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
11031 once_value_9
= fra
.me
.REG
[4];
11032 register_static_object(&once_value_9
);
11033 } else fra
.me
.REG
[4] = once_value_9
;
11034 fra
.me
.REG
[4] = fra
.me
.REG
[4];
11035 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
11036 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11037 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
11039 /* syntax/typing.nit:1743 */
11040 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11041 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11042 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11043 if (UNTAG_Bool(REGB0
)) {
11044 /* syntax/typing.nit:1744 */
11045 REGB0
= TAG_Int(3);
11046 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
11047 if (!once_value_10
) {
11048 fra
.me
.REG
[4] = BOX_NativeString("Error: constructor ");
11049 REGB0
= TAG_Int(19);
11050 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
11051 once_value_10
= fra
.me
.REG
[4];
11052 register_static_object(&once_value_10
);
11053 } else fra
.me
.REG
[4] = once_value_10
;
11054 fra
.me
.REG
[4] = fra
.me
.REG
[4];
11055 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
11056 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
11057 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
11058 if (!once_value_11
) {
11059 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
11060 REGB0
= TAG_Int(26);
11061 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
11062 once_value_11
= fra
.me
.REG
[5];
11063 register_static_object(&once_value_11
);
11064 } else fra
.me
.REG
[5] = once_value_11
;
11065 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11066 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
11067 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11068 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
11072 /* syntax/typing.nit:1748 */
11073 REGB0
= TAG_Bool(1);
11074 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
11076 stack_frame_head
= fra
.me
.prev
;
11079 static const char LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments
[] = "typing::ABinopExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
11080 val_t
syntax___typing___ABinopExpr___compute_raw_arguments(val_t p0
){
11081 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11084 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11085 fra
.me
.file
= LOCATE_syntax___typing
;
11086 fra
.me
.line
= 1753;
11087 fra
.me
.meth
= LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments
;
11088 fra
.me
.has_broke
= 0;
11089 fra
.me
.REG_size
= 2;
11090 fra
.me
.nitni_local_ref_head
= NULL
;
11091 fra
.me
.REG
[0] = NIT_NULL
;
11092 fra
.me
.REG
[1] = NIT_NULL
;
11093 fra
.me
.REG
[0] = p0
;
11094 /* syntax/typing.nit:1753 */
11095 REGB0
= TAG_Int(1);
11096 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
11097 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11098 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11101 stack_frame_head
= fra
.me
.prev
;
11102 return fra
.me
.REG
[1];
11104 static const char LOCATE_syntax___typing___AEqExpr___name
[] = "typing::AEqExpr::(typing::ASendExpr::name)";
11105 val_t
syntax___typing___AEqExpr___name(val_t p0
){
11106 struct {struct stack_frame_t me
;} fra
;
11109 static val_t once_value_1
; /* Once value */
11110 static val_t once_value_2
; /* Once value */
11111 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11112 fra
.me
.file
= LOCATE_syntax___typing
;
11113 fra
.me
.line
= 1756;
11114 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___name
;
11115 fra
.me
.has_broke
= 0;
11116 fra
.me
.REG_size
= 1;
11117 fra
.me
.nitni_local_ref_head
= NULL
;
11118 fra
.me
.REG
[0] = NIT_NULL
;
11119 fra
.me
.REG
[0] = p0
;
11120 /* syntax/typing.nit:1756 */
11121 if (!once_value_1
) {
11122 if (!once_value_2
) {
11123 fra
.me
.REG
[0] = BOX_NativeString("==");
11124 REGB0
= TAG_Int(2);
11125 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11126 once_value_2
= fra
.me
.REG
[0];
11127 register_static_object(&once_value_2
);
11128 } else fra
.me
.REG
[0] = once_value_2
;
11129 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11130 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11131 once_value_1
= fra
.me
.REG
[0];
11132 register_static_object(&once_value_1
);
11133 } else fra
.me
.REG
[0] = once_value_1
;
11134 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11137 stack_frame_head
= fra
.me
.prev
;
11138 return fra
.me
.REG
[0];
11140 static const char LOCATE_syntax___typing___AEqExpr___after_typing
[] = "typing::AEqExpr::(typing::ANode::after_typing)";
11141 void syntax___typing___AEqExpr___after_typing(val_t p0
, val_t p1
){
11142 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
11146 static val_t once_value_2
; /* Once value */
11147 static val_t once_value_3
; /* Once value */
11148 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11149 fra
.me
.file
= LOCATE_syntax___typing
;
11150 fra
.me
.line
= 1757;
11151 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___after_typing
;
11152 fra
.me
.has_broke
= 0;
11153 fra
.me
.REG_size
= 4;
11154 fra
.me
.nitni_local_ref_head
= NULL
;
11155 fra
.me
.REG
[0] = NIT_NULL
;
11156 fra
.me
.REG
[1] = NIT_NULL
;
11157 fra
.me
.REG
[2] = NIT_NULL
;
11158 fra
.me
.REG
[3] = NIT_NULL
;
11159 fra
.me
.REG
[0] = p0
;
11160 fra
.me
.REG
[1] = p1
;
11161 /* syntax/typing.nit:1757 */
11162 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11163 fra
.me
.REG
[3] = fra
.me
.REG
[1];
11164 /* syntax/typing.nit:1759 */
11165 CALL_SUPER_syntax___typing___AEqExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11166 /* syntax/typing.nit:1760 */
11167 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11168 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11169 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11170 if (UNTAG_Bool(REGB0
)) {
11171 REGB0
= TAG_Bool(1);
11173 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11174 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11175 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
11178 if (UNTAG_Bool(REGB0
)) {
11181 /* syntax/typing.nit:1761 */
11182 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11183 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11184 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11185 if (UNTAG_Bool(REGB0
)) {
11186 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11187 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11188 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11189 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11191 REGB1
= TAG_Bool(0);
11194 if (UNTAG_Bool(REGB0
)) {
11195 REGB0
= TAG_Bool(1);
11197 /* syntax/typing.nit:1762 */
11198 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11199 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11200 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11201 /* syntax/typing.nit:1761 */
11204 if (UNTAG_Bool(REGB0
)) {
11205 /* syntax/typing.nit:1762 */
11206 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11207 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11208 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11209 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11211 /* syntax/typing.nit:1761 */
11212 REGB1
= TAG_Bool(0);
11215 if (UNTAG_Bool(REGB0
)) {
11216 /* syntax/typing.nit:1763 */
11217 if (!once_value_2
) {
11218 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
11219 REGB0
= TAG_Int(59);
11220 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11221 once_value_2
= fra
.me
.REG
[1];
11222 register_static_object(&once_value_2
);
11223 } else fra
.me
.REG
[1] = once_value_2
;
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:1766 */
11228 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11229 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11230 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11231 if (UNTAG_Bool(REGB0
)) {
11232 /* syntax/typing.nit:1767 */
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:1768 */
11238 if (!once_value_3
) {
11239 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between two null values.");
11240 REGB0
= TAG_Int(45);
11241 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11242 once_value_3
= fra
.me
.REG
[1];
11243 register_static_object(&once_value_3
);
11244 } else fra
.me
.REG
[1] = once_value_3
;
11245 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11246 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11248 /* syntax/typing.nit:1770 */
11249 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11250 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11253 /* syntax/typing.nit:1772 */
11254 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11255 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11256 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11257 if (UNTAG_Bool(REGB0
)) {
11258 /* syntax/typing.nit:1773 */
11259 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11260 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11264 stack_frame_head
= fra
.me
.prev
;
11267 static const char LOCATE_syntax___typing___AEqExpr___try_to_isa
[] = "typing::AEqExpr::try_to_isa";
11268 void syntax___typing___AEqExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
11269 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11273 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11274 fra
.me
.file
= LOCATE_syntax___typing
;
11275 fra
.me
.line
= 1777;
11276 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___try_to_isa
;
11277 fra
.me
.has_broke
= 0;
11278 fra
.me
.REG_size
= 5;
11279 fra
.me
.nitni_local_ref_head
= NULL
;
11280 fra
.me
.REG
[0] = NIT_NULL
;
11281 fra
.me
.REG
[1] = NIT_NULL
;
11282 fra
.me
.REG
[2] = NIT_NULL
;
11283 fra
.me
.REG
[3] = NIT_NULL
;
11284 fra
.me
.REG
[4] = NIT_NULL
;
11285 fra
.me
.REG
[0] = p0
;
11286 fra
.me
.REG
[1] = p1
;
11287 fra
.me
.REG
[2] = p2
;
11288 /* syntax/typing.nit:1779 */
11289 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11290 /* syntax/typing.nit:1780 */
11291 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11292 if (UNTAG_Bool(REGB0
)) {
11294 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11295 if (UNTAG_Bool(REGB1
)) {
11296 REGB1
= TAG_Bool(0);
11299 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
11303 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11304 if (UNTAG_Bool(REGB0
)) {
11305 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11306 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
11308 REGB1
= TAG_Bool(0);
11311 if (UNTAG_Bool(REGB0
)) {
11312 /* syntax/typing.nit:1781 */
11313 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11314 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11315 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11316 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]);
11317 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11318 /* syntax/typing.nit:1782 */
11319 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11320 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11321 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]);
11322 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
11324 stack_frame_head
= fra
.me
.prev
;
11327 static const char LOCATE_syntax___typing___ANeExpr___name
[] = "typing::ANeExpr::(typing::ASendExpr::name)";
11328 val_t
syntax___typing___ANeExpr___name(val_t p0
){
11329 struct {struct stack_frame_t me
;} fra
;
11332 static val_t once_value_1
; /* Once value */
11333 static val_t once_value_2
; /* Once value */
11334 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11335 fra
.me
.file
= LOCATE_syntax___typing
;
11336 fra
.me
.line
= 1787;
11337 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___name
;
11338 fra
.me
.has_broke
= 0;
11339 fra
.me
.REG_size
= 1;
11340 fra
.me
.nitni_local_ref_head
= NULL
;
11341 fra
.me
.REG
[0] = NIT_NULL
;
11342 fra
.me
.REG
[0] = p0
;
11343 /* syntax/typing.nit:1787 */
11344 if (!once_value_1
) {
11345 if (!once_value_2
) {
11346 fra
.me
.REG
[0] = BOX_NativeString("!=");
11347 REGB0
= TAG_Int(2);
11348 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11349 once_value_2
= fra
.me
.REG
[0];
11350 register_static_object(&once_value_2
);
11351 } else fra
.me
.REG
[0] = once_value_2
;
11352 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11353 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11354 once_value_1
= fra
.me
.REG
[0];
11355 register_static_object(&once_value_1
);
11356 } else fra
.me
.REG
[0] = once_value_1
;
11357 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11360 stack_frame_head
= fra
.me
.prev
;
11361 return fra
.me
.REG
[0];
11363 static const char LOCATE_syntax___typing___ANeExpr___after_typing
[] = "typing::ANeExpr::(typing::ANode::after_typing)";
11364 void syntax___typing___ANeExpr___after_typing(val_t p0
, val_t p1
){
11365 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
11369 static val_t once_value_2
; /* Once value */
11370 static val_t once_value_3
; /* Once value */
11371 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11372 fra
.me
.file
= LOCATE_syntax___typing
;
11373 fra
.me
.line
= 1788;
11374 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___after_typing
;
11375 fra
.me
.has_broke
= 0;
11376 fra
.me
.REG_size
= 4;
11377 fra
.me
.nitni_local_ref_head
= NULL
;
11378 fra
.me
.REG
[0] = NIT_NULL
;
11379 fra
.me
.REG
[1] = NIT_NULL
;
11380 fra
.me
.REG
[2] = NIT_NULL
;
11381 fra
.me
.REG
[3] = NIT_NULL
;
11382 fra
.me
.REG
[0] = p0
;
11383 fra
.me
.REG
[1] = p1
;
11384 /* syntax/typing.nit:1788 */
11385 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11386 fra
.me
.REG
[3] = fra
.me
.REG
[1];
11387 /* syntax/typing.nit:1790 */
11388 CALL_SUPER_syntax___typing___ANeExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11389 /* syntax/typing.nit:1791 */
11390 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11391 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11392 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11393 if (UNTAG_Bool(REGB0
)) {
11394 REGB0
= TAG_Bool(1);
11396 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11397 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11398 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
11401 if (UNTAG_Bool(REGB0
)) {
11404 /* syntax/typing.nit:1792 */
11405 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11406 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11407 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11408 if (UNTAG_Bool(REGB0
)) {
11409 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11410 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11411 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11412 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11414 REGB1
= TAG_Bool(0);
11417 if (UNTAG_Bool(REGB0
)) {
11418 REGB0
= TAG_Bool(1);
11420 /* syntax/typing.nit:1793 */
11421 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11422 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11423 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11424 /* syntax/typing.nit:1792 */
11427 if (UNTAG_Bool(REGB0
)) {
11428 /* syntax/typing.nit:1793 */
11429 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11430 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11431 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11432 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11434 /* syntax/typing.nit:1792 */
11435 REGB1
= TAG_Bool(0);
11438 if (UNTAG_Bool(REGB0
)) {
11439 /* syntax/typing.nit:1794 */
11440 if (!once_value_2
) {
11441 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
11442 REGB0
= TAG_Int(59);
11443 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11444 once_value_2
= fra
.me
.REG
[1];
11445 register_static_object(&once_value_2
);
11446 } else fra
.me
.REG
[1] = once_value_2
;
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:1797 */
11451 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11452 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11453 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11454 if (UNTAG_Bool(REGB0
)) {
11455 /* syntax/typing.nit:1798 */
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:1799 */
11461 if (!once_value_3
) {
11462 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between two null values.");
11463 REGB0
= TAG_Int(45);
11464 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11465 once_value_3
= fra
.me
.REG
[1];
11466 register_static_object(&once_value_3
);
11467 } else fra
.me
.REG
[1] = once_value_3
;
11468 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11469 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11471 /* syntax/typing.nit:1801 */
11472 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11473 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11476 /* syntax/typing.nit:1803 */
11477 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11478 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11479 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11480 if (UNTAG_Bool(REGB0
)) {
11481 /* syntax/typing.nit:1804 */
11482 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11483 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11487 stack_frame_head
= fra
.me
.prev
;
11490 static const char LOCATE_syntax___typing___ANeExpr___try_to_isa
[] = "typing::ANeExpr::try_to_isa";
11491 void syntax___typing___ANeExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
11492 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11496 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11497 fra
.me
.file
= LOCATE_syntax___typing
;
11498 fra
.me
.line
= 1808;
11499 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___try_to_isa
;
11500 fra
.me
.has_broke
= 0;
11501 fra
.me
.REG_size
= 5;
11502 fra
.me
.nitni_local_ref_head
= NULL
;
11503 fra
.me
.REG
[0] = NIT_NULL
;
11504 fra
.me
.REG
[1] = NIT_NULL
;
11505 fra
.me
.REG
[2] = NIT_NULL
;
11506 fra
.me
.REG
[3] = NIT_NULL
;
11507 fra
.me
.REG
[4] = NIT_NULL
;
11508 fra
.me
.REG
[0] = p0
;
11509 fra
.me
.REG
[1] = p1
;
11510 fra
.me
.REG
[2] = p2
;
11511 /* syntax/typing.nit:1810 */
11512 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11513 /* syntax/typing.nit:1811 */
11514 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11515 if (UNTAG_Bool(REGB0
)) {
11517 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11518 if (UNTAG_Bool(REGB1
)) {
11519 REGB1
= TAG_Bool(0);
11522 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
11526 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11527 if (UNTAG_Bool(REGB0
)) {
11528 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11529 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
11531 REGB1
= TAG_Bool(0);
11534 if (UNTAG_Bool(REGB0
)) {
11535 /* syntax/typing.nit:1812 */
11536 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11537 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11538 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11539 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]);
11540 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11541 /* syntax/typing.nit:1813 */
11542 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11543 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11544 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]);
11545 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
11547 stack_frame_head
= fra
.me
.prev
;
11550 static const char LOCATE_syntax___typing___ALtExpr___name
[] = "typing::ALtExpr::(typing::ASendExpr::name)";
11551 val_t
syntax___typing___ALtExpr___name(val_t p0
){
11552 struct {struct stack_frame_t me
;} fra
;
11555 static val_t once_value_1
; /* Once value */
11556 static val_t once_value_2
; /* Once value */
11557 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11558 fra
.me
.file
= LOCATE_syntax___typing
;
11559 fra
.me
.line
= 1818;
11560 fra
.me
.meth
= LOCATE_syntax___typing___ALtExpr___name
;
11561 fra
.me
.has_broke
= 0;
11562 fra
.me
.REG_size
= 1;
11563 fra
.me
.nitni_local_ref_head
= NULL
;
11564 fra
.me
.REG
[0] = NIT_NULL
;
11565 fra
.me
.REG
[0] = p0
;
11566 /* syntax/typing.nit:1818 */
11567 if (!once_value_1
) {
11568 if (!once_value_2
) {
11569 fra
.me
.REG
[0] = BOX_NativeString("<");
11570 REGB0
= TAG_Int(1);
11571 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11572 once_value_2
= fra
.me
.REG
[0];
11573 register_static_object(&once_value_2
);
11574 } else fra
.me
.REG
[0] = once_value_2
;
11575 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11576 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11577 once_value_1
= fra
.me
.REG
[0];
11578 register_static_object(&once_value_1
);
11579 } else fra
.me
.REG
[0] = once_value_1
;
11580 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11583 stack_frame_head
= fra
.me
.prev
;
11584 return fra
.me
.REG
[0];
11586 static const char LOCATE_syntax___typing___ALeExpr___name
[] = "typing::ALeExpr::(typing::ASendExpr::name)";
11587 val_t
syntax___typing___ALeExpr___name(val_t p0
){
11588 struct {struct stack_frame_t me
;} fra
;
11591 static val_t once_value_1
; /* Once value */
11592 static val_t once_value_2
; /* Once value */
11593 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11594 fra
.me
.file
= LOCATE_syntax___typing
;
11595 fra
.me
.line
= 1821;
11596 fra
.me
.meth
= LOCATE_syntax___typing___ALeExpr___name
;
11597 fra
.me
.has_broke
= 0;
11598 fra
.me
.REG_size
= 1;
11599 fra
.me
.nitni_local_ref_head
= NULL
;
11600 fra
.me
.REG
[0] = NIT_NULL
;
11601 fra
.me
.REG
[0] = p0
;
11602 /* syntax/typing.nit:1821 */
11603 if (!once_value_1
) {
11604 if (!once_value_2
) {
11605 fra
.me
.REG
[0] = BOX_NativeString("<=");
11606 REGB0
= TAG_Int(2);
11607 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11608 once_value_2
= fra
.me
.REG
[0];
11609 register_static_object(&once_value_2
);
11610 } else fra
.me
.REG
[0] = once_value_2
;
11611 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11612 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11613 once_value_1
= fra
.me
.REG
[0];
11614 register_static_object(&once_value_1
);
11615 } else fra
.me
.REG
[0] = once_value_1
;
11616 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11619 stack_frame_head
= fra
.me
.prev
;
11620 return fra
.me
.REG
[0];
11622 static const char LOCATE_syntax___typing___ALlExpr___name
[] = "typing::ALlExpr::(typing::ASendExpr::name)";
11623 val_t
syntax___typing___ALlExpr___name(val_t p0
){
11624 struct {struct stack_frame_t me
;} fra
;
11627 static val_t once_value_1
; /* Once value */
11628 static val_t once_value_2
; /* Once value */
11629 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11630 fra
.me
.file
= LOCATE_syntax___typing
;
11631 fra
.me
.line
= 1824;
11632 fra
.me
.meth
= LOCATE_syntax___typing___ALlExpr___name
;
11633 fra
.me
.has_broke
= 0;
11634 fra
.me
.REG_size
= 1;
11635 fra
.me
.nitni_local_ref_head
= NULL
;
11636 fra
.me
.REG
[0] = NIT_NULL
;
11637 fra
.me
.REG
[0] = p0
;
11638 /* syntax/typing.nit:1824 */
11639 if (!once_value_1
) {
11640 if (!once_value_2
) {
11641 fra
.me
.REG
[0] = BOX_NativeString("<<");
11642 REGB0
= TAG_Int(2);
11643 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11644 once_value_2
= fra
.me
.REG
[0];
11645 register_static_object(&once_value_2
);
11646 } else fra
.me
.REG
[0] = once_value_2
;
11647 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11648 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11649 once_value_1
= fra
.me
.REG
[0];
11650 register_static_object(&once_value_1
);
11651 } else fra
.me
.REG
[0] = once_value_1
;
11652 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11655 stack_frame_head
= fra
.me
.prev
;
11656 return fra
.me
.REG
[0];
11658 static const char LOCATE_syntax___typing___AGtExpr___name
[] = "typing::AGtExpr::(typing::ASendExpr::name)";
11659 val_t
syntax___typing___AGtExpr___name(val_t p0
){
11660 struct {struct stack_frame_t me
;} fra
;
11663 static val_t once_value_1
; /* Once value */
11664 static val_t once_value_2
; /* Once value */
11665 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11666 fra
.me
.file
= LOCATE_syntax___typing
;
11667 fra
.me
.line
= 1827;
11668 fra
.me
.meth
= LOCATE_syntax___typing___AGtExpr___name
;
11669 fra
.me
.has_broke
= 0;
11670 fra
.me
.REG_size
= 1;
11671 fra
.me
.nitni_local_ref_head
= NULL
;
11672 fra
.me
.REG
[0] = NIT_NULL
;
11673 fra
.me
.REG
[0] = p0
;
11674 /* syntax/typing.nit:1827 */
11675 if (!once_value_1
) {
11676 if (!once_value_2
) {
11677 fra
.me
.REG
[0] = BOX_NativeString(">");
11678 REGB0
= TAG_Int(1);
11679 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11680 once_value_2
= fra
.me
.REG
[0];
11681 register_static_object(&once_value_2
);
11682 } else fra
.me
.REG
[0] = once_value_2
;
11683 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11684 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11685 once_value_1
= fra
.me
.REG
[0];
11686 register_static_object(&once_value_1
);
11687 } else fra
.me
.REG
[0] = once_value_1
;
11688 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11691 stack_frame_head
= fra
.me
.prev
;
11692 return fra
.me
.REG
[0];
11694 static const char LOCATE_syntax___typing___AGeExpr___name
[] = "typing::AGeExpr::(typing::ASendExpr::name)";
11695 val_t
syntax___typing___AGeExpr___name(val_t p0
){
11696 struct {struct stack_frame_t me
;} fra
;
11699 static val_t once_value_1
; /* Once value */
11700 static val_t once_value_2
; /* Once value */
11701 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11702 fra
.me
.file
= LOCATE_syntax___typing
;
11703 fra
.me
.line
= 1830;
11704 fra
.me
.meth
= LOCATE_syntax___typing___AGeExpr___name
;
11705 fra
.me
.has_broke
= 0;
11706 fra
.me
.REG_size
= 1;
11707 fra
.me
.nitni_local_ref_head
= NULL
;
11708 fra
.me
.REG
[0] = NIT_NULL
;
11709 fra
.me
.REG
[0] = p0
;
11710 /* syntax/typing.nit:1830 */
11711 if (!once_value_1
) {
11712 if (!once_value_2
) {
11713 fra
.me
.REG
[0] = BOX_NativeString(">=");
11714 REGB0
= TAG_Int(2);
11715 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11716 once_value_2
= fra
.me
.REG
[0];
11717 register_static_object(&once_value_2
);
11718 } else fra
.me
.REG
[0] = once_value_2
;
11719 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11720 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11721 once_value_1
= fra
.me
.REG
[0];
11722 register_static_object(&once_value_1
);
11723 } else fra
.me
.REG
[0] = once_value_1
;
11724 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11727 stack_frame_head
= fra
.me
.prev
;
11728 return fra
.me
.REG
[0];
11730 static const char LOCATE_syntax___typing___AGgExpr___name
[] = "typing::AGgExpr::(typing::ASendExpr::name)";
11731 val_t
syntax___typing___AGgExpr___name(val_t p0
){
11732 struct {struct stack_frame_t me
;} fra
;
11735 static val_t once_value_1
; /* Once value */
11736 static val_t once_value_2
; /* Once value */
11737 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11738 fra
.me
.file
= LOCATE_syntax___typing
;
11739 fra
.me
.line
= 1833;
11740 fra
.me
.meth
= LOCATE_syntax___typing___AGgExpr___name
;
11741 fra
.me
.has_broke
= 0;
11742 fra
.me
.REG_size
= 1;
11743 fra
.me
.nitni_local_ref_head
= NULL
;
11744 fra
.me
.REG
[0] = NIT_NULL
;
11745 fra
.me
.REG
[0] = p0
;
11746 /* syntax/typing.nit:1833 */
11747 if (!once_value_1
) {
11748 if (!once_value_2
) {
11749 fra
.me
.REG
[0] = BOX_NativeString(">>");
11750 REGB0
= TAG_Int(2);
11751 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11752 once_value_2
= fra
.me
.REG
[0];
11753 register_static_object(&once_value_2
);
11754 } else fra
.me
.REG
[0] = once_value_2
;
11755 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11756 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11757 once_value_1
= fra
.me
.REG
[0];
11758 register_static_object(&once_value_1
);
11759 } else fra
.me
.REG
[0] = once_value_1
;
11760 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11763 stack_frame_head
= fra
.me
.prev
;
11764 return fra
.me
.REG
[0];
11766 static const char LOCATE_syntax___typing___APlusExpr___name
[] = "typing::APlusExpr::(typing::ASendExpr::name)";
11767 val_t
syntax___typing___APlusExpr___name(val_t p0
){
11768 struct {struct stack_frame_t me
;} fra
;
11771 static val_t once_value_1
; /* Once value */
11772 static val_t once_value_2
; /* Once value */
11773 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11774 fra
.me
.file
= LOCATE_syntax___typing
;
11775 fra
.me
.line
= 1836;
11776 fra
.me
.meth
= LOCATE_syntax___typing___APlusExpr___name
;
11777 fra
.me
.has_broke
= 0;
11778 fra
.me
.REG_size
= 1;
11779 fra
.me
.nitni_local_ref_head
= NULL
;
11780 fra
.me
.REG
[0] = NIT_NULL
;
11781 fra
.me
.REG
[0] = p0
;
11782 /* syntax/typing.nit:1836 */
11783 if (!once_value_1
) {
11784 if (!once_value_2
) {
11785 fra
.me
.REG
[0] = BOX_NativeString("+");
11786 REGB0
= TAG_Int(1);
11787 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11788 once_value_2
= fra
.me
.REG
[0];
11789 register_static_object(&once_value_2
);
11790 } else fra
.me
.REG
[0] = once_value_2
;
11791 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11792 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11793 once_value_1
= fra
.me
.REG
[0];
11794 register_static_object(&once_value_1
);
11795 } else fra
.me
.REG
[0] = once_value_1
;
11796 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11799 stack_frame_head
= fra
.me
.prev
;
11800 return fra
.me
.REG
[0];
11802 static const char LOCATE_syntax___typing___AMinusExpr___name
[] = "typing::AMinusExpr::(typing::ASendExpr::name)";
11803 val_t
syntax___typing___AMinusExpr___name(val_t p0
){
11804 struct {struct stack_frame_t me
;} fra
;
11807 static val_t once_value_1
; /* Once value */
11808 static val_t once_value_2
; /* Once value */
11809 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11810 fra
.me
.file
= LOCATE_syntax___typing
;
11811 fra
.me
.line
= 1839;
11812 fra
.me
.meth
= LOCATE_syntax___typing___AMinusExpr___name
;
11813 fra
.me
.has_broke
= 0;
11814 fra
.me
.REG_size
= 1;
11815 fra
.me
.nitni_local_ref_head
= NULL
;
11816 fra
.me
.REG
[0] = NIT_NULL
;
11817 fra
.me
.REG
[0] = p0
;
11818 /* syntax/typing.nit:1839 */
11819 if (!once_value_1
) {
11820 if (!once_value_2
) {
11821 fra
.me
.REG
[0] = BOX_NativeString("-");
11822 REGB0
= TAG_Int(1);
11823 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11824 once_value_2
= fra
.me
.REG
[0];
11825 register_static_object(&once_value_2
);
11826 } else fra
.me
.REG
[0] = once_value_2
;
11827 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11828 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11829 once_value_1
= fra
.me
.REG
[0];
11830 register_static_object(&once_value_1
);
11831 } else fra
.me
.REG
[0] = once_value_1
;
11832 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11835 stack_frame_head
= fra
.me
.prev
;
11836 return fra
.me
.REG
[0];
11838 static const char LOCATE_syntax___typing___AStarshipExpr___name
[] = "typing::AStarshipExpr::(typing::ASendExpr::name)";
11839 val_t
syntax___typing___AStarshipExpr___name(val_t p0
){
11840 struct {struct stack_frame_t me
;} fra
;
11843 static val_t once_value_1
; /* Once value */
11844 static val_t once_value_2
; /* Once value */
11845 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11846 fra
.me
.file
= LOCATE_syntax___typing
;
11847 fra
.me
.line
= 1842;
11848 fra
.me
.meth
= LOCATE_syntax___typing___AStarshipExpr___name
;
11849 fra
.me
.has_broke
= 0;
11850 fra
.me
.REG_size
= 1;
11851 fra
.me
.nitni_local_ref_head
= NULL
;
11852 fra
.me
.REG
[0] = NIT_NULL
;
11853 fra
.me
.REG
[0] = p0
;
11854 /* syntax/typing.nit:1842 */
11855 if (!once_value_1
) {
11856 if (!once_value_2
) {
11857 fra
.me
.REG
[0] = BOX_NativeString("<=>");
11858 REGB0
= TAG_Int(3);
11859 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11860 once_value_2
= fra
.me
.REG
[0];
11861 register_static_object(&once_value_2
);
11862 } else fra
.me
.REG
[0] = once_value_2
;
11863 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11864 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11865 once_value_1
= fra
.me
.REG
[0];
11866 register_static_object(&once_value_1
);
11867 } else fra
.me
.REG
[0] = once_value_1
;
11868 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11871 stack_frame_head
= fra
.me
.prev
;
11872 return fra
.me
.REG
[0];
11874 static const char LOCATE_syntax___typing___AStarExpr___name
[] = "typing::AStarExpr::(typing::ASendExpr::name)";
11875 val_t
syntax___typing___AStarExpr___name(val_t p0
){
11876 struct {struct stack_frame_t me
;} fra
;
11879 static val_t once_value_1
; /* Once value */
11880 static val_t once_value_2
; /* Once value */
11881 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11882 fra
.me
.file
= LOCATE_syntax___typing
;
11883 fra
.me
.line
= 1845;
11884 fra
.me
.meth
= LOCATE_syntax___typing___AStarExpr___name
;
11885 fra
.me
.has_broke
= 0;
11886 fra
.me
.REG_size
= 1;
11887 fra
.me
.nitni_local_ref_head
= NULL
;
11888 fra
.me
.REG
[0] = NIT_NULL
;
11889 fra
.me
.REG
[0] = p0
;
11890 /* syntax/typing.nit:1845 */
11891 if (!once_value_1
) {
11892 if (!once_value_2
) {
11893 fra
.me
.REG
[0] = BOX_NativeString("*");
11894 REGB0
= TAG_Int(1);
11895 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11896 once_value_2
= fra
.me
.REG
[0];
11897 register_static_object(&once_value_2
);
11898 } else fra
.me
.REG
[0] = once_value_2
;
11899 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11900 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11901 once_value_1
= fra
.me
.REG
[0];
11902 register_static_object(&once_value_1
);
11903 } else fra
.me
.REG
[0] = once_value_1
;
11904 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11907 stack_frame_head
= fra
.me
.prev
;
11908 return fra
.me
.REG
[0];
11910 static const char LOCATE_syntax___typing___ASlashExpr___name
[] = "typing::ASlashExpr::(typing::ASendExpr::name)";
11911 val_t
syntax___typing___ASlashExpr___name(val_t p0
){
11912 struct {struct stack_frame_t me
;} fra
;
11915 static val_t once_value_1
; /* Once value */
11916 static val_t once_value_2
; /* Once value */
11917 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11918 fra
.me
.file
= LOCATE_syntax___typing
;
11919 fra
.me
.line
= 1848;
11920 fra
.me
.meth
= LOCATE_syntax___typing___ASlashExpr___name
;
11921 fra
.me
.has_broke
= 0;
11922 fra
.me
.REG_size
= 1;
11923 fra
.me
.nitni_local_ref_head
= NULL
;
11924 fra
.me
.REG
[0] = NIT_NULL
;
11925 fra
.me
.REG
[0] = p0
;
11926 /* syntax/typing.nit:1848 */
11927 if (!once_value_1
) {
11928 if (!once_value_2
) {
11929 fra
.me
.REG
[0] = BOX_NativeString("/");
11930 REGB0
= TAG_Int(1);
11931 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11932 once_value_2
= fra
.me
.REG
[0];
11933 register_static_object(&once_value_2
);
11934 } else fra
.me
.REG
[0] = once_value_2
;
11935 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11936 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11937 once_value_1
= fra
.me
.REG
[0];
11938 register_static_object(&once_value_1
);
11939 } else fra
.me
.REG
[0] = once_value_1
;
11940 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11943 stack_frame_head
= fra
.me
.prev
;
11944 return fra
.me
.REG
[0];
11946 static const char LOCATE_syntax___typing___APercentExpr___name
[] = "typing::APercentExpr::(typing::ASendExpr::name)";
11947 val_t
syntax___typing___APercentExpr___name(val_t p0
){
11948 struct {struct stack_frame_t me
;} fra
;
11951 static val_t once_value_1
; /* Once value */
11952 static val_t once_value_2
; /* Once value */
11953 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11954 fra
.me
.file
= LOCATE_syntax___typing
;
11955 fra
.me
.line
= 1851;
11956 fra
.me
.meth
= LOCATE_syntax___typing___APercentExpr___name
;
11957 fra
.me
.has_broke
= 0;
11958 fra
.me
.REG_size
= 1;
11959 fra
.me
.nitni_local_ref_head
= NULL
;
11960 fra
.me
.REG
[0] = NIT_NULL
;
11961 fra
.me
.REG
[0] = p0
;
11962 /* syntax/typing.nit:1851 */
11963 if (!once_value_1
) {
11964 if (!once_value_2
) {
11965 fra
.me
.REG
[0] = BOX_NativeString("%");
11966 REGB0
= TAG_Int(1);
11967 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11968 once_value_2
= fra
.me
.REG
[0];
11969 register_static_object(&once_value_2
);
11970 } else fra
.me
.REG
[0] = once_value_2
;
11971 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11972 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11973 once_value_1
= fra
.me
.REG
[0];
11974 register_static_object(&once_value_1
);
11975 } else fra
.me
.REG
[0] = once_value_1
;
11976 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11979 stack_frame_head
= fra
.me
.prev
;
11980 return fra
.me
.REG
[0];
11982 static const char LOCATE_syntax___typing___AUminusExpr___name
[] = "typing::AUminusExpr::(typing::ASendExpr::name)";
11983 val_t
syntax___typing___AUminusExpr___name(val_t p0
){
11984 struct {struct stack_frame_t me
;} fra
;
11987 static val_t once_value_1
; /* Once value */
11988 static val_t once_value_2
; /* Once value */
11989 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11990 fra
.me
.file
= LOCATE_syntax___typing
;
11991 fra
.me
.line
= 1855;
11992 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___name
;
11993 fra
.me
.has_broke
= 0;
11994 fra
.me
.REG_size
= 1;
11995 fra
.me
.nitni_local_ref_head
= NULL
;
11996 fra
.me
.REG
[0] = NIT_NULL
;
11997 fra
.me
.REG
[0] = p0
;
11998 /* syntax/typing.nit:1855 */
11999 if (!once_value_1
) {
12000 if (!once_value_2
) {
12001 fra
.me
.REG
[0] = BOX_NativeString("unary -");
12002 REGB0
= TAG_Int(7);
12003 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12004 once_value_2
= fra
.me
.REG
[0];
12005 register_static_object(&once_value_2
);
12006 } else fra
.me
.REG
[0] = once_value_2
;
12007 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12008 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12009 once_value_1
= fra
.me
.REG
[0];
12010 register_static_object(&once_value_1
);
12011 } else fra
.me
.REG
[0] = once_value_1
;
12012 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12015 stack_frame_head
= fra
.me
.prev
;
12016 return fra
.me
.REG
[0];
12018 static const char LOCATE_syntax___typing___AUminusExpr___compute_raw_arguments
[] = "typing::AUminusExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12019 val_t
syntax___typing___AUminusExpr___compute_raw_arguments(val_t p0
){
12020 struct {struct stack_frame_t me
;} fra
;
12022 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12023 fra
.me
.file
= LOCATE_syntax___typing
;
12024 fra
.me
.line
= 1856;
12025 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___compute_raw_arguments
;
12026 fra
.me
.has_broke
= 0;
12027 fra
.me
.REG_size
= 1;
12028 fra
.me
.nitni_local_ref_head
= NULL
;
12029 fra
.me
.REG
[0] = NIT_NULL
;
12030 fra
.me
.REG
[0] = p0
;
12031 /* syntax/typing.nit:1856 */
12032 fra
.me
.REG
[0] = NIT_NULL
;
12035 stack_frame_head
= fra
.me
.prev
;
12036 return fra
.me
.REG
[0];
12038 static const char LOCATE_syntax___typing___ACallFormExpr___after_typing
[] = "typing::ACallFormExpr::(typing::ANode::after_typing)";
12039 void syntax___typing___ACallFormExpr___after_typing(val_t p0
, val_t p1
){
12040 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
12044 static val_t once_value_1
; /* Once value */
12045 static val_t once_value_2
; /* Once value */
12046 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12047 fra
.me
.file
= LOCATE_syntax___typing
;
12048 fra
.me
.line
= 1860;
12049 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___after_typing
;
12050 fra
.me
.has_broke
= 0;
12051 fra
.me
.REG_size
= 9;
12052 fra
.me
.nitni_local_ref_head
= NULL
;
12053 fra
.me
.REG
[0] = NIT_NULL
;
12054 fra
.me
.REG
[1] = NIT_NULL
;
12055 fra
.me
.REG
[2] = NIT_NULL
;
12056 fra
.me
.REG
[3] = NIT_NULL
;
12057 fra
.me
.REG
[4] = NIT_NULL
;
12058 fra
.me
.REG
[5] = NIT_NULL
;
12059 fra
.me
.REG
[6] = NIT_NULL
;
12060 fra
.me
.REG
[7] = NIT_NULL
;
12061 fra
.me
.REG
[8] = NIT_NULL
;
12062 fra
.me
.REG
[0] = p0
;
12063 fra
.me
.REG
[1] = p1
;
12064 /* syntax/typing.nit:1860 */
12065 fra
.me
.REG
[2] = fra
.me
.REG
[0];
12066 fra
.me
.REG
[3] = fra
.me
.REG
[1];
12067 /* syntax/typing.nit:1862 */
12068 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12069 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12070 if (UNTAG_Bool(REGB0
)) {
12071 /* syntax/typing.nit:1863 */
12072 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12073 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12074 /* syntax/typing.nit:1864 */
12075 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12076 fra
.me
.REG
[5] = CALL_syntax___scope___ScopeContext_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
12077 /* syntax/typing.nit:1865 */
12078 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
12079 if (UNTAG_Bool(REGB0
)) {
12081 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
12082 if (UNTAG_Bool(REGB1
)) {
12083 REGB1
= TAG_Bool(0);
12086 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
12090 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12091 if (UNTAG_Bool(REGB0
)) {
12092 /* syntax/typing.nit:1867 */
12093 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*/;
12094 if (UNTAG_Bool(REGB0
)) {
12095 /* syntax/typing.nit:1868 */
12096 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12097 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12098 fra
.me
.REG
[8] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12099 fra
.me
.REG
[8] = NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra
.me
.REG
[6], fra
.me
.REG
[7], fra
.me
.REG
[8]);
12100 /* syntax/typing.nit:1869 */
12101 ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
12103 /* syntax/typing.nit:1871 */
12104 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12105 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
12106 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
12107 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12108 if (UNTAG_Bool(REGB0
)) {
12109 REGB0
= TAG_Bool(1);
12111 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12112 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_parser___parser_nodes___AParExprs
, ID_parser___parser_nodes___AParExprs
)) /*cast AParExprs*/;
12115 if (UNTAG_Bool(REGB0
)) {
12116 /* syntax/typing.nit:1872 */
12117 REGB0
= TAG_Int(3);
12118 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
12119 if (!once_value_1
) {
12120 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
12121 REGB0
= TAG_Int(7);
12122 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
12123 once_value_1
= fra
.me
.REG
[6];
12124 register_static_object(&once_value_1
);
12125 } else fra
.me
.REG
[6] = once_value_1
;
12126 fra
.me
.REG
[6] = fra
.me
.REG
[6];
12127 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
12128 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12129 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
12130 if (!once_value_2
) {
12131 fra
.me
.REG
[4] = BOX_NativeString(" is variable, not a function.");
12132 REGB0
= TAG_Int(29);
12133 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
12134 once_value_2
= fra
.me
.REG
[4];
12135 register_static_object(&once_value_2
);
12136 } else fra
.me
.REG
[4] = once_value_2
;
12137 fra
.me
.REG
[4] = fra
.me
.REG
[4];
12138 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
12139 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
12140 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
12141 /* syntax/typing.nit:1873 */
12144 /* syntax/typing.nit:1875 */
12145 fra
.me
.REG
[7] = CALL_syntax___typing___ACallFormExpr___variable_create(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
12146 fra
.me
.REG
[8] = fra
.me
.REG
[7];
12147 /* syntax/typing.nit:1876 */
12148 ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
12150 /* syntax/typing.nit:1878 */
12151 CALL_parser___parser_prod___ANode___replace_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
12152 /* syntax/typing.nit:1879 */
12153 CALL_syntax___typing___ANode___after_typing(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
12154 /* syntax/typing.nit:1880 */
12158 /* syntax/typing.nit:1884 */
12159 CALL_SUPER_syntax___typing___ACallFormExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12161 stack_frame_head
= fra
.me
.prev
;
12164 static const char LOCATE_syntax___typing___ACallFormExpr___closure_defs
[] = "typing::ACallFormExpr::(syntax_base::ASendExpr::closure_defs)";
12165 val_t
syntax___typing___ACallFormExpr___closure_defs(val_t p0
){
12166 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12169 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12170 fra
.me
.file
= LOCATE_syntax___typing
;
12171 fra
.me
.line
= 1887;
12172 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___closure_defs
;
12173 fra
.me
.has_broke
= 0;
12174 fra
.me
.REG_size
= 2;
12175 fra
.me
.nitni_local_ref_head
= NULL
;
12176 fra
.me
.REG
[0] = NIT_NULL
;
12177 fra
.me
.REG
[1] = NIT_NULL
;
12178 fra
.me
.REG
[0] = p0
;
12179 /* syntax/typing.nit:1889 */
12180 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12181 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12182 if (UNTAG_Bool(REGB0
)) {
12183 /* syntax/typing.nit:1890 */
12184 fra
.me
.REG
[1] = NIT_NULL
;
12187 /* syntax/typing.nit:1892 */
12188 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12189 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12190 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12194 stack_frame_head
= fra
.me
.prev
;
12195 return fra
.me
.REG
[1];
12197 static const char LOCATE_syntax___typing___ACallFormExpr___variable_create
[] = "typing::ACallFormExpr::variable_create";
12198 val_t
syntax___typing___ACallFormExpr___variable_create(val_t p0
, val_t p1
){
12199 struct {struct stack_frame_t me
;} fra
;
12201 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12202 fra
.me
.file
= LOCATE_syntax___typing
;
12203 fra
.me
.line
= 1896;
12204 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___variable_create
;
12205 fra
.me
.has_broke
= 0;
12206 fra
.me
.REG_size
= 0;
12207 fra
.me
.nitni_local_ref_head
= NULL
;
12208 /* syntax/typing.nit:1896 */
12209 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1896);
12210 stack_frame_head
= fra
.me
.prev
;
12213 static const char LOCATE_syntax___typing___ACallExpr___variable_create
[] = "typing::ACallExpr::(typing::ACallFormExpr::variable_create)";
12214 val_t
syntax___typing___ACallExpr___variable_create(val_t p0
, val_t p1
){
12215 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12217 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12218 fra
.me
.file
= LOCATE_syntax___typing
;
12219 fra
.me
.line
= 1901;
12220 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___variable_create
;
12221 fra
.me
.has_broke
= 0;
12222 fra
.me
.REG_size
= 2;
12223 fra
.me
.nitni_local_ref_head
= NULL
;
12224 fra
.me
.REG
[0] = NIT_NULL
;
12225 fra
.me
.REG
[1] = NIT_NULL
;
12226 fra
.me
.REG
[0] = p0
;
12227 fra
.me
.REG
[1] = p1
;
12228 /* syntax/typing.nit:1903 */
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] = NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr(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___name
[] = "typing::ACallExpr::(typing::ASendExpr::name)";
12237 val_t
syntax___typing___ACallExpr___name(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
= 1906;
12243 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___name
;
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:1906 */
12250 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12251 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(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___ACallExpr___compute_raw_arguments
[] = "typing::ACallExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12258 val_t
syntax___typing___ACallExpr___compute_raw_arguments(val_t p0
){
12259 struct {struct stack_frame_t me
;} fra
;
12261 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12262 fra
.me
.file
= LOCATE_syntax___typing
;
12263 fra
.me
.line
= 1907;
12264 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___compute_raw_arguments
;
12265 fra
.me
.has_broke
= 0;
12266 fra
.me
.REG_size
= 1;
12267 fra
.me
.nitni_local_ref_head
= NULL
;
12268 fra
.me
.REG
[0] = NIT_NULL
;
12269 fra
.me
.REG
[0] = p0
;
12270 /* syntax/typing.nit:1907 */
12271 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12272 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12275 stack_frame_head
= fra
.me
.prev
;
12276 return fra
.me
.REG
[0];
12278 static const char LOCATE_syntax___typing___ACallAssignExpr___variable_create
[] = "typing::ACallAssignExpr::(typing::ACallFormExpr::variable_create)";
12279 val_t
syntax___typing___ACallAssignExpr___variable_create(val_t p0
, val_t p1
){
12280 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
12282 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12283 fra
.me
.file
= LOCATE_syntax___typing
;
12284 fra
.me
.line
= 1911;
12285 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___variable_create
;
12286 fra
.me
.has_broke
= 0;
12287 fra
.me
.REG_size
= 3;
12288 fra
.me
.nitni_local_ref_head
= NULL
;
12289 fra
.me
.REG
[0] = NIT_NULL
;
12290 fra
.me
.REG
[1] = NIT_NULL
;
12291 fra
.me
.REG
[2] = NIT_NULL
;
12292 fra
.me
.REG
[0] = p0
;
12293 fra
.me
.REG
[1] = p1
;
12294 /* syntax/typing.nit:1913 */
12295 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12296 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_assign(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12297 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12298 fra
.me
.REG
[0] = NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___init_avarassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
12301 stack_frame_head
= fra
.me
.prev
;
12302 return fra
.me
.REG
[0];
12304 static const char LOCATE_syntax___typing___ACallAssignExpr___name
[] = "typing::ACallAssignExpr::(typing::ASendExpr::name)";
12305 val_t
syntax___typing___ACallAssignExpr___name(val_t p0
){
12306 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12309 static val_t once_value_1
; /* Once value */
12310 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12311 fra
.me
.file
= LOCATE_syntax___typing
;
12312 fra
.me
.line
= 1916;
12313 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___name
;
12314 fra
.me
.has_broke
= 0;
12315 fra
.me
.REG_size
= 2;
12316 fra
.me
.nitni_local_ref_head
= NULL
;
12317 fra
.me
.REG
[0] = NIT_NULL
;
12318 fra
.me
.REG
[1] = NIT_NULL
;
12319 fra
.me
.REG
[0] = p0
;
12320 /* syntax/typing.nit:1916 */
12321 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12322 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12323 if (!once_value_1
) {
12324 fra
.me
.REG
[1] = BOX_NativeString("=");
12325 REGB0
= TAG_Int(1);
12326 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
12327 once_value_1
= fra
.me
.REG
[1];
12328 register_static_object(&once_value_1
);
12329 } else fra
.me
.REG
[1] = once_value_1
;
12330 fra
.me
.REG
[1] = fra
.me
.REG
[1];
12331 fra
.me
.REG
[1] = CALL_standard___string___String_____plus(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12332 fra
.me
.REG
[1] = CALL_symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12335 stack_frame_head
= fra
.me
.prev
;
12336 return fra
.me
.REG
[1];
12338 static const char LOCATE_syntax___typing___ACallAssignExpr___compute_raw_arguments
[] = "typing::ACallAssignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12339 val_t
syntax___typing___ACallAssignExpr___compute_raw_arguments(val_t p0
){
12340 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12342 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12343 fra
.me
.file
= LOCATE_syntax___typing
;
12344 fra
.me
.line
= 1917;
12345 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___compute_raw_arguments
;
12346 fra
.me
.has_broke
= 0;
12347 fra
.me
.REG_size
= 2;
12348 fra
.me
.nitni_local_ref_head
= NULL
;
12349 fra
.me
.REG
[0] = NIT_NULL
;
12350 fra
.me
.REG
[1] = NIT_NULL
;
12351 fra
.me
.REG
[0] = p0
;
12352 /* syntax/typing.nit:1918 */
12353 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12354 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12355 /* syntax/typing.nit:1919 */
12356 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12357 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12358 /* syntax/typing.nit:1920 */
12361 stack_frame_head
= fra
.me
.prev
;
12362 return fra
.me
.REG
[1];
12364 static const char LOCATE_syntax___typing___ACallReassignExpr___variable_create
[] = "typing::ACallReassignExpr::(typing::ACallFormExpr::variable_create)";
12365 val_t
syntax___typing___ACallReassignExpr___variable_create(val_t p0
, val_t p1
){
12366 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
12368 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12369 fra
.me
.file
= LOCATE_syntax___typing
;
12370 fra
.me
.line
= 1925;
12371 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___variable_create
;
12372 fra
.me
.has_broke
= 0;
12373 fra
.me
.REG_size
= 3;
12374 fra
.me
.nitni_local_ref_head
= NULL
;
12375 fra
.me
.REG
[0] = NIT_NULL
;
12376 fra
.me
.REG
[1] = NIT_NULL
;
12377 fra
.me
.REG
[2] = NIT_NULL
;
12378 fra
.me
.REG
[0] = p0
;
12379 fra
.me
.REG
[1] = p1
;
12380 /* syntax/typing.nit:1927 */
12381 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12382 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12383 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12384 fra
.me
.REG
[0] = NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], 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___name
[] = "typing::ACallReassignExpr::(typing::ASendExpr::name)";
12391 val_t
syntax___typing___ACallReassignExpr___name(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
= 1930;
12397 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___name
;
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:1930 */
12404 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12405 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(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___ACallReassignExpr___compute_raw_arguments
[] = "typing::ACallReassignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12412 val_t
syntax___typing___ACallReassignExpr___compute_raw_arguments(val_t p0
){
12413 struct {struct stack_frame_t me
;} fra
;
12415 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12416 fra
.me
.file
= LOCATE_syntax___typing
;
12417 fra
.me
.line
= 1931;
12418 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___compute_raw_arguments
;
12419 fra
.me
.has_broke
= 0;
12420 fra
.me
.REG_size
= 1;
12421 fra
.me
.nitni_local_ref_head
= NULL
;
12422 fra
.me
.REG
[0] = NIT_NULL
;
12423 fra
.me
.REG
[0] = p0
;
12424 /* syntax/typing.nit:1931 */
12425 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12426 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12429 stack_frame_head
= fra
.me
.prev
;
12430 return fra
.me
.REG
[0];
12432 static const char LOCATE_syntax___typing___ABraExpr___name
[] = "typing::ABraExpr::(typing::ASendExpr::name)";
12433 val_t
syntax___typing___ABraExpr___name(val_t p0
){
12434 struct {struct stack_frame_t me
;} fra
;
12437 static val_t once_value_1
; /* Once value */
12438 static val_t once_value_2
; /* Once value */
12439 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12440 fra
.me
.file
= LOCATE_syntax___typing
;
12441 fra
.me
.line
= 1935;
12442 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___name
;
12443 fra
.me
.has_broke
= 0;
12444 fra
.me
.REG_size
= 1;
12445 fra
.me
.nitni_local_ref_head
= NULL
;
12446 fra
.me
.REG
[0] = NIT_NULL
;
12447 fra
.me
.REG
[0] = p0
;
12448 /* syntax/typing.nit:1935 */
12449 if (!once_value_1
) {
12450 if (!once_value_2
) {
12451 fra
.me
.REG
[0] = BOX_NativeString("[]");
12452 REGB0
= TAG_Int(2);
12453 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12454 once_value_2
= fra
.me
.REG
[0];
12455 register_static_object(&once_value_2
);
12456 } else fra
.me
.REG
[0] = once_value_2
;
12457 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12458 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12459 once_value_1
= fra
.me
.REG
[0];
12460 register_static_object(&once_value_1
);
12461 } else fra
.me
.REG
[0] = once_value_1
;
12462 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___compute_raw_arguments
[] = "typing::ABraExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12469 val_t
syntax___typing___ABraExpr___compute_raw_arguments(val_t p0
){
12470 struct {struct stack_frame_t me
;} fra
;
12472 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12473 fra
.me
.file
= LOCATE_syntax___typing
;
12474 fra
.me
.line
= 1936;
12475 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___compute_raw_arguments
;
12476 fra
.me
.has_broke
= 0;
12477 fra
.me
.REG_size
= 1;
12478 fra
.me
.nitni_local_ref_head
= NULL
;
12479 fra
.me
.REG
[0] = NIT_NULL
;
12480 fra
.me
.REG
[0] = p0
;
12481 /* syntax/typing.nit:1936 */
12482 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12483 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12486 stack_frame_head
= fra
.me
.prev
;
12487 return fra
.me
.REG
[0];
12489 static const char LOCATE_syntax___typing___ABraExpr___closure_defs
[] = "typing::ABraExpr::(syntax_base::ASendExpr::closure_defs)";
12490 val_t
syntax___typing___ABraExpr___closure_defs(val_t p0
){
12491 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12494 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12495 fra
.me
.file
= LOCATE_syntax___typing
;
12496 fra
.me
.line
= 1937;
12497 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___closure_defs
;
12498 fra
.me
.has_broke
= 0;
12499 fra
.me
.REG_size
= 2;
12500 fra
.me
.nitni_local_ref_head
= NULL
;
12501 fra
.me
.REG
[0] = NIT_NULL
;
12502 fra
.me
.REG
[1] = NIT_NULL
;
12503 fra
.me
.REG
[0] = p0
;
12504 /* syntax/typing.nit:1939 */
12505 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12506 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12507 if (UNTAG_Bool(REGB0
)) {
12508 /* syntax/typing.nit:1940 */
12509 fra
.me
.REG
[1] = NIT_NULL
;
12512 /* syntax/typing.nit:1942 */
12513 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12514 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12515 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12519 stack_frame_head
= fra
.me
.prev
;
12520 return fra
.me
.REG
[1];
12522 static const char LOCATE_syntax___typing___ABraAssignExpr___name
[] = "typing::ABraAssignExpr::(typing::ASendExpr::name)";
12523 val_t
syntax___typing___ABraAssignExpr___name(val_t p0
){
12524 struct {struct stack_frame_t me
;} fra
;
12527 static val_t once_value_1
; /* Once value */
12528 static val_t once_value_2
; /* Once value */
12529 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12530 fra
.me
.file
= LOCATE_syntax___typing
;
12531 fra
.me
.line
= 1948;
12532 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___name
;
12533 fra
.me
.has_broke
= 0;
12534 fra
.me
.REG_size
= 1;
12535 fra
.me
.nitni_local_ref_head
= NULL
;
12536 fra
.me
.REG
[0] = NIT_NULL
;
12537 fra
.me
.REG
[0] = p0
;
12538 /* syntax/typing.nit:1948 */
12539 if (!once_value_1
) {
12540 if (!once_value_2
) {
12541 fra
.me
.REG
[0] = BOX_NativeString("[]=");
12542 REGB0
= TAG_Int(3);
12543 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12544 once_value_2
= fra
.me
.REG
[0];
12545 register_static_object(&once_value_2
);
12546 } else fra
.me
.REG
[0] = once_value_2
;
12547 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12548 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12549 once_value_1
= fra
.me
.REG
[0];
12550 register_static_object(&once_value_1
);
12551 } else fra
.me
.REG
[0] = once_value_1
;
12552 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12555 stack_frame_head
= fra
.me
.prev
;
12556 return fra
.me
.REG
[0];
12558 static const char LOCATE_syntax___typing___ABraAssignExpr___compute_raw_arguments
[] = "typing::ABraAssignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12559 val_t
syntax___typing___ABraAssignExpr___compute_raw_arguments(val_t p0
){
12560 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12562 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12563 fra
.me
.file
= LOCATE_syntax___typing
;
12564 fra
.me
.line
= 1949;
12565 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___compute_raw_arguments
;
12566 fra
.me
.has_broke
= 0;
12567 fra
.me
.REG_size
= 2;
12568 fra
.me
.nitni_local_ref_head
= NULL
;
12569 fra
.me
.REG
[0] = NIT_NULL
;
12570 fra
.me
.REG
[1] = NIT_NULL
;
12571 fra
.me
.REG
[0] = p0
;
12572 /* syntax/typing.nit:1950 */
12573 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12574 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12575 /* syntax/typing.nit:1951 */
12576 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12577 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12578 /* syntax/typing.nit:1952 */
12581 stack_frame_head
= fra
.me
.prev
;
12582 return fra
.me
.REG
[1];
12584 static const char LOCATE_syntax___typing___ABraReassignExpr___name
[] = "typing::ABraReassignExpr::(typing::ASendExpr::name)";
12585 val_t
syntax___typing___ABraReassignExpr___name(val_t p0
){
12586 struct {struct stack_frame_t me
;} fra
;
12589 static val_t once_value_1
; /* Once value */
12590 static val_t once_value_2
; /* Once value */
12591 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12592 fra
.me
.file
= LOCATE_syntax___typing
;
12593 fra
.me
.line
= 1957;
12594 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___name
;
12595 fra
.me
.has_broke
= 0;
12596 fra
.me
.REG_size
= 1;
12597 fra
.me
.nitni_local_ref_head
= NULL
;
12598 fra
.me
.REG
[0] = NIT_NULL
;
12599 fra
.me
.REG
[0] = p0
;
12600 /* syntax/typing.nit:1957 */
12601 if (!once_value_1
) {
12602 if (!once_value_2
) {
12603 fra
.me
.REG
[0] = BOX_NativeString("[]");
12604 REGB0
= TAG_Int(2);
12605 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12606 once_value_2
= fra
.me
.REG
[0];
12607 register_static_object(&once_value_2
);
12608 } else fra
.me
.REG
[0] = once_value_2
;
12609 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12610 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12611 once_value_1
= fra
.me
.REG
[0];
12612 register_static_object(&once_value_1
);
12613 } else fra
.me
.REG
[0] = once_value_1
;
12614 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___ABraReassignExpr___compute_raw_arguments
[] = "typing::ABraReassignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12621 val_t
syntax___typing___ABraReassignExpr___compute_raw_arguments(val_t p0
){
12622 struct {struct stack_frame_t me
;} fra
;
12624 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12625 fra
.me
.file
= LOCATE_syntax___typing
;
12626 fra
.me
.line
= 1958;
12627 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___compute_raw_arguments
;
12628 fra
.me
.has_broke
= 0;
12629 fra
.me
.REG_size
= 1;
12630 fra
.me
.nitni_local_ref_head
= NULL
;
12631 fra
.me
.REG
[0] = NIT_NULL
;
12632 fra
.me
.REG
[0] = p0
;
12633 /* syntax/typing.nit:1958 */
12634 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12635 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12638 stack_frame_head
= fra
.me
.prev
;
12639 return fra
.me
.REG
[0];
12641 static const char LOCATE_syntax___typing___AInitExpr___name
[] = "typing::AInitExpr::(typing::ASendExpr::name)";
12642 val_t
syntax___typing___AInitExpr___name(val_t p0
){
12643 struct {struct stack_frame_t me
;} fra
;
12646 static val_t once_value_1
; /* Once value */
12647 static val_t once_value_2
; /* Once value */
12648 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12649 fra
.me
.file
= LOCATE_syntax___typing
;
12650 fra
.me
.line
= 1962;
12651 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___name
;
12652 fra
.me
.has_broke
= 0;
12653 fra
.me
.REG_size
= 1;
12654 fra
.me
.nitni_local_ref_head
= NULL
;
12655 fra
.me
.REG
[0] = NIT_NULL
;
12656 fra
.me
.REG
[0] = p0
;
12657 /* syntax/typing.nit:1962 */
12658 if (!once_value_1
) {
12659 if (!once_value_2
) {
12660 fra
.me
.REG
[0] = BOX_NativeString("init");
12661 REGB0
= TAG_Int(4);
12662 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12663 once_value_2
= fra
.me
.REG
[0];
12664 register_static_object(&once_value_2
);
12665 } else fra
.me
.REG
[0] = once_value_2
;
12666 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12667 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12668 once_value_1
= fra
.me
.REG
[0];
12669 register_static_object(&once_value_1
);
12670 } else fra
.me
.REG
[0] = once_value_1
;
12671 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___AInitExpr___compute_raw_arguments
[] = "typing::AInitExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12678 val_t
syntax___typing___AInitExpr___compute_raw_arguments(val_t p0
){
12679 struct {struct stack_frame_t me
;} fra
;
12681 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12682 fra
.me
.file
= LOCATE_syntax___typing
;
12683 fra
.me
.line
= 1963;
12684 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___compute_raw_arguments
;
12685 fra
.me
.has_broke
= 0;
12686 fra
.me
.REG_size
= 1;
12687 fra
.me
.nitni_local_ref_head
= NULL
;
12688 fra
.me
.REG
[0] = NIT_NULL
;
12689 fra
.me
.REG
[0] = p0
;
12690 /* syntax/typing.nit:1963 */
12691 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12692 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12695 stack_frame_head
= fra
.me
.prev
;
12696 return fra
.me
.REG
[0];
12698 static const char LOCATE_syntax___typing___AClosureCallExpr___variable
[] = "typing::AClosureCallExpr::(syntax_base::AClosureCallExpr::variable)";
12699 val_t
syntax___typing___AClosureCallExpr___variable(val_t p0
){
12700 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12703 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12704 fra
.me
.file
= LOCATE_syntax___typing
;
12705 fra
.me
.line
= 1968;
12706 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___variable
;
12707 fra
.me
.has_broke
= 0;
12708 fra
.me
.REG_size
= 2;
12709 fra
.me
.nitni_local_ref_head
= NULL
;
12710 fra
.me
.REG
[0] = NIT_NULL
;
12711 fra
.me
.REG
[1] = NIT_NULL
;
12712 fra
.me
.REG
[0] = p0
;
12713 /* syntax/typing.nit:1968 */
12714 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12715 fra
.me
.REG
[1] = ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[1]);
12716 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
12717 if (UNTAG_Bool(REGB0
)) {
12719 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1968);
12723 stack_frame_head
= fra
.me
.prev
;
12724 return fra
.me
.REG
[1];
12726 static const char LOCATE_syntax___typing___AClosureCallExpr___compute_raw_arguments
[] = "typing::AClosureCallExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12727 val_t
syntax___typing___AClosureCallExpr___compute_raw_arguments(val_t p0
){
12728 struct {struct stack_frame_t me
;} fra
;
12730 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12731 fra
.me
.file
= LOCATE_syntax___typing
;
12732 fra
.me
.line
= 1969;
12733 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___compute_raw_arguments
;
12734 fra
.me
.has_broke
= 0;
12735 fra
.me
.REG_size
= 1;
12736 fra
.me
.nitni_local_ref_head
= NULL
;
12737 fra
.me
.REG
[0] = NIT_NULL
;
12738 fra
.me
.REG
[0] = p0
;
12739 /* syntax/typing.nit:1969 */
12740 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AClosureCallExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12741 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12744 stack_frame_head
= fra
.me
.prev
;
12745 return fra
.me
.REG
[0];
12747 static const char LOCATE_syntax___typing___AClosureCallExpr___after_typing
[] = "typing::AClosureCallExpr::(typing::ANode::after_typing)";
12748 void syntax___typing___AClosureCallExpr___after_typing(val_t p0
, val_t p1
){
12749 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12753 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12754 fra
.me
.file
= LOCATE_syntax___typing
;
12755 fra
.me
.line
= 1971;
12756 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___after_typing
;
12757 fra
.me
.has_broke
= 0;
12758 fra
.me
.REG_size
= 5;
12759 fra
.me
.nitni_local_ref_head
= NULL
;
12760 fra
.me
.REG
[0] = NIT_NULL
;
12761 fra
.me
.REG
[1] = NIT_NULL
;
12762 fra
.me
.REG
[2] = NIT_NULL
;
12763 fra
.me
.REG
[3] = NIT_NULL
;
12764 fra
.me
.REG
[4] = NIT_NULL
;
12765 fra
.me
.REG
[0] = p0
;
12766 fra
.me
.REG
[1] = p1
;
12767 /* syntax/typing.nit:1973 */
12768 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12769 /* syntax/typing.nit:1974 */
12770 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12771 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12772 if (UNTAG_Bool(REGB0
)) {
12773 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12775 /* syntax/typing.nit:1975 */
12776 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12777 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12778 /* syntax/typing.nit:1976 */
12779 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12780 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12781 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12782 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]);
12783 /* syntax/typing.nit:1977 */
12784 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12785 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12786 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
12787 if (UNTAG_Bool(REGB1
)) {
12788 /* syntax/typing.nit:1978 */
12789 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12790 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12791 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12792 fra
.me
.REG
[3] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12793 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]);
12795 /* syntax/typing.nit:1980 */
12796 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12797 if (UNTAG_Bool(REGB0
)) {
12800 /* syntax/typing.nit:1981 */
12801 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12802 /* syntax/typing.nit:1982 */
12803 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12804 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12805 /* syntax/typing.nit:1983 */
12806 REGB0
= TAG_Bool(1);
12807 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12809 stack_frame_head
= fra
.me
.prev
;
12812 static const char LOCATE_syntax___typing___AClosureId___to_symbol
[] = "typing::AClosureId::to_symbol";
12813 val_t
syntax___typing___AClosureId___to_symbol(val_t p0
){
12814 struct {struct stack_frame_t me
;} fra
;
12816 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12817 fra
.me
.file
= LOCATE_syntax___typing
;
12818 fra
.me
.line
= 1988;
12819 fra
.me
.meth
= LOCATE_syntax___typing___AClosureId___to_symbol
;
12820 fra
.me
.has_broke
= 0;
12821 fra
.me
.REG_size
= 0;
12822 fra
.me
.nitni_local_ref_head
= NULL
;
12823 /* syntax/typing.nit:1988 */
12824 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1988);
12825 stack_frame_head
= fra
.me
.prev
;
12828 static const char LOCATE_syntax___typing___ASimpleClosureId___to_symbol
[] = "typing::ASimpleClosureId::(typing::AClosureId::to_symbol)";
12829 val_t
syntax___typing___ASimpleClosureId___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
= 1991;
12835 fra
.me
.meth
= LOCATE_syntax___typing___ASimpleClosureId___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:1991 */
12842 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASimpleClosureId___n_id(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___ABreakClosureId___to_symbol
[] = "typing::ABreakClosureId::(typing::AClosureId::to_symbol)";
12850 val_t
syntax___typing___ABreakClosureId___to_symbol(val_t p0
){
12851 struct {struct stack_frame_t me
;} fra
;
12853 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12854 fra
.me
.file
= LOCATE_syntax___typing
;
12855 fra
.me
.line
= 1994;
12856 fra
.me
.meth
= LOCATE_syntax___typing___ABreakClosureId___to_symbol
;
12857 fra
.me
.has_broke
= 0;
12858 fra
.me
.REG_size
= 1;
12859 fra
.me
.nitni_local_ref_head
= NULL
;
12860 fra
.me
.REG
[0] = NIT_NULL
;
12861 fra
.me
.REG
[0] = p0
;
12862 /* syntax/typing.nit:1994 */
12863 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABreakClosureId___n_kwbreak(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12864 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12867 stack_frame_head
= fra
.me
.prev
;
12868 return fra
.me
.REG
[0];
12870 static const char LOCATE_syntax___typing___AClosureDef___closure
[] = "typing::AClosureDef::(syntax_base::AClosureDef::closure)";
12871 val_t
syntax___typing___AClosureDef___closure(val_t p0
){
12872 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12875 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12876 fra
.me
.file
= LOCATE_syntax___typing
;
12877 fra
.me
.line
= 1999;
12878 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___closure
;
12879 fra
.me
.has_broke
= 0;
12880 fra
.me
.REG_size
= 2;
12881 fra
.me
.nitni_local_ref_head
= NULL
;
12882 fra
.me
.REG
[0] = NIT_NULL
;
12883 fra
.me
.REG
[1] = NIT_NULL
;
12884 fra
.me
.REG
[0] = p0
;
12885 /* syntax/typing.nit:1999 */
12886 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12887 fra
.me
.REG
[1] = ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[1]);
12888 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
12889 if (UNTAG_Bool(REGB0
)) {
12891 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1999);
12895 stack_frame_head
= fra
.me
.prev
;
12896 return fra
.me
.REG
[1];
12898 static const char LOCATE_syntax___typing___AClosureDef___escapable
[] = "typing::AClosureDef::escapable";
12899 val_t
syntax___typing___AClosureDef___escapable(val_t p0
){
12900 struct {struct stack_frame_t me
;} fra
;
12902 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12903 fra
.me
.file
= LOCATE_syntax___typing
;
12904 fra
.me
.line
= 2001;
12905 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___escapable
;
12906 fra
.me
.has_broke
= 0;
12907 fra
.me
.REG_size
= 1;
12908 fra
.me
.nitni_local_ref_head
= NULL
;
12909 fra
.me
.REG
[0] = NIT_NULL
;
12910 fra
.me
.REG
[0] = p0
;
12911 /* syntax/typing.nit:2001 */
12912 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]);
12913 stack_frame_head
= fra
.me
.prev
;
12914 return fra
.me
.REG
[0];
12916 static const char LOCATE_syntax___typing___AClosureDef___accept_typing
[] = "typing::AClosureDef::(typing::ANode::accept_typing)";
12917 void syntax___typing___AClosureDef___accept_typing(val_t p0
, val_t p1
){
12918 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
12921 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12922 fra
.me
.file
= LOCATE_syntax___typing
;
12923 fra
.me
.line
= 2005;
12924 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing
;
12925 fra
.me
.has_broke
= 0;
12926 fra
.me
.REG_size
= 3;
12927 fra
.me
.nitni_local_ref_head
= NULL
;
12928 fra
.me
.REG
[0] = NIT_NULL
;
12929 fra
.me
.REG
[1] = NIT_NULL
;
12930 fra
.me
.REG
[2] = NIT_NULL
;
12931 fra
.me
.REG
[0] = p0
;
12932 fra
.me
.REG
[1] = p1
;
12933 /* syntax/typing.nit:2005 */
12934 fra
.me
.REG
[2] = fra
.me
.REG
[0];
12935 /* syntax/typing.nit:2008 */
12936 REGB0
= TAG_Bool(ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2])!=NIT_NULL
);
12937 if (UNTAG_Bool(REGB0
)) {
12939 nit_abort("Uninitialized attribute %s", "_accept_typing2", LOCATE_syntax___typing
, 2008);
12941 REGB0
= ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2]);
12942 if (UNTAG_Bool(REGB0
)) {
12943 CALL_SUPER_syntax___typing___AClosureDef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12945 stack_frame_head
= fra
.me
.prev
;
12948 static const char LOCATE_syntax___typing___AClosureDef___accept_typing2
[] = "typing::AClosureDef::accept_typing2";
12949 void syntax___typing___AClosureDef___accept_typing2(val_t p0
, val_t p1
, val_t p2
){
12950 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
12956 static val_t once_value_1
; /* Once value */
12957 static val_t once_value_2
; /* Once value */
12958 static val_t once_value_3
; /* Once value */
12959 static val_t once_value_6
; /* Once value */
12960 static val_t once_value_7
; /* Once value */
12961 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12962 fra
.me
.file
= LOCATE_syntax___typing
;
12963 fra
.me
.line
= 2011;
12964 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing2
;
12965 fra
.me
.has_broke
= 0;
12966 fra
.me
.REG_size
= 8;
12967 fra
.me
.nitni_local_ref_head
= NULL
;
12968 fra
.me
.REG
[0] = NIT_NULL
;
12969 fra
.me
.REG
[1] = NIT_NULL
;
12970 fra
.me
.REG
[2] = NIT_NULL
;
12971 fra
.me
.REG
[3] = NIT_NULL
;
12972 fra
.me
.REG
[4] = NIT_NULL
;
12973 fra
.me
.REG
[5] = NIT_NULL
;
12974 fra
.me
.REG
[6] = NIT_NULL
;
12975 fra
.me
.REG
[7] = NIT_NULL
;
12976 fra
.me
.REG
[0] = p0
;
12977 fra
.me
.REG
[1] = p1
;
12978 fra
.me
.REG
[2] = p2
;
12979 /* syntax/typing.nit:2013 */
12980 ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12981 /* syntax/typing.nit:2015 */
12982 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12983 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12984 /* syntax/typing.nit:2016 */
12985 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12986 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12987 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12988 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
12989 if (UNTAG_Bool(REGB2
)) {
12991 /* ../lib/standard/kernel.nit:230 */
12992 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
12993 /* syntax/typing.nit:2016 */
12996 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
12997 if (UNTAG_Bool(REGB2
)) {
12998 /* syntax/typing.nit:2017 */
12999 REGB2
= TAG_Int(5);
13000 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
13001 if (!once_value_1
) {
13002 fra
.me
.REG
[5] = BOX_NativeString("Error: ");
13003 REGB2
= TAG_Int(7);
13004 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
13005 once_value_1
= fra
.me
.REG
[5];
13006 register_static_object(&once_value_1
);
13007 } else fra
.me
.REG
[5] = once_value_1
;
13008 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13009 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13010 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13011 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
13012 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13013 if (!once_value_2
) {
13014 fra
.me
.REG
[5] = BOX_NativeString(" automatic variable names expected, ");
13015 REGB2
= TAG_Int(36);
13016 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
13017 once_value_2
= fra
.me
.REG
[5];
13018 register_static_object(&once_value_2
);
13019 } else fra
.me
.REG
[5] = once_value_2
;
13020 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13021 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13022 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13023 REGB2
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
13024 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
13025 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13026 if (!once_value_3
) {
13027 fra
.me
.REG
[5] = BOX_NativeString(" found.");
13028 REGB2
= TAG_Int(7);
13029 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
13030 once_value_3
= fra
.me
.REG
[5];
13031 register_static_object(&once_value_3
);
13032 } else fra
.me
.REG
[5] = once_value_3
;
13033 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13034 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13035 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13036 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13037 /* syntax/typing.nit:2018 */
13040 /* syntax/typing.nit:2021 */
13041 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13042 ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
13043 /* syntax/typing.nit:2023 */
13044 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13045 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
13046 /* syntax/typing.nit:2024 */
13047 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13048 /* syntax/typing.nit:2025 */
13049 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13050 /* syntax/typing.nit:2026 */
13051 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13052 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
13053 /* syntax/typing.nit:2027 */
13054 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___init();
13055 CALL_syntax___syntax_base___AClosureDef___variables__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
13056 /* syntax/typing.nit:2028 */
13057 REGB2
= TAG_Int(0);
13058 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13059 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
13060 /* ../lib/standard/kernel.nit:355 */
13062 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
13063 if (UNTAG_Bool(REGB0
)) {
13065 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
13067 /* ../lib/standard/kernel.nit:235 */
13068 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
13069 /* ../lib/standard/kernel.nit:355 */
13070 if (UNTAG_Bool(REGB0
)) {
13071 /* syntax/typing.nit:2028 */
13073 /* syntax/typing.nit:2029 */
13074 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13075 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
13076 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
13077 if (UNTAG_Bool(REGB3
)) {
13078 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 2029);
13080 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
13081 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13082 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
13083 fra
.me
.REG
[7] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
13084 /* syntax/typing.nit:2030 */
13085 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13086 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
13087 if (UNTAG_Bool(REGB3
)) {
13088 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 2030);
13090 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
13091 /* syntax/typing.nit:2031 */
13092 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
13093 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
13094 /* syntax/typing.nit:2032 */
13095 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13096 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
13097 /* ../lib/standard/kernel.nit:357 */
13098 REGB0
= TAG_Int(1);
13099 /* ../lib/standard/kernel.nit:238 */
13100 REGB0
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB0
));
13101 /* ../lib/standard/kernel.nit:357 */
13104 /* ../lib/standard/kernel.nit:355 */
13109 /* syntax/typing.nit:2035 */
13110 REGB2
= TAG_Bool(1);
13111 ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[0]) = REGB2
;
13112 /* syntax/typing.nit:2036 */
13113 CALL_syntax___typing___ANode___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
13114 /* syntax/typing.nit:2038 */
13115 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13116 REGB2
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13117 REGB1
= TAG_Bool(0);
13118 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
13119 if (UNTAG_Bool(REGB0
)) {
13121 /* ../lib/standard/kernel.nit:198 */
13122 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
13123 /* syntax/typing.nit:2038 */
13126 if (UNTAG_Bool(REGB0
)) {
13127 /* syntax/typing.nit:2039 */
13128 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13129 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13130 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13131 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13132 if (UNTAG_Bool(REGB0
)) {
13134 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13135 if (UNTAG_Bool(REGB1
)) {
13136 REGB1
= TAG_Bool(0);
13139 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
13143 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13144 if (UNTAG_Bool(REGB0
)) {
13145 /* syntax/typing.nit:2040 */
13146 if (!once_value_6
) {
13147 fra
.me
.REG
[3] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
13148 REGB0
= TAG_Int(77);
13149 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
13150 once_value_6
= fra
.me
.REG
[3];
13151 register_static_object(&once_value_6
);
13152 } else fra
.me
.REG
[3] = once_value_6
;
13153 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13154 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
13156 /* syntax/typing.nit:2041 */
13157 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13158 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13159 if (UNTAG_Bool(REGB0
)) {
13160 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13161 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
13162 if (UNTAG_Bool(REGB0
)) {
13164 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
13165 if (UNTAG_Bool(REGB1
)) {
13166 REGB1
= TAG_Bool(0);
13169 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
13173 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13175 REGB1
= TAG_Bool(0);
13178 if (UNTAG_Bool(REGB0
)) {
13179 /* syntax/typing.nit:2042 */
13180 if (!once_value_7
) {
13181 fra
.me
.REG
[2] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
13182 REGB0
= TAG_Int(80);
13183 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
13184 once_value_7
= fra
.me
.REG
[2];
13185 register_static_object(&once_value_7
);
13186 } else fra
.me
.REG
[2] = once_value_7
;
13187 fra
.me
.REG
[2] = fra
.me
.REG
[2];
13188 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
13192 /* syntax/typing.nit:2045 */
13193 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
13194 /* syntax/typing.nit:2046 */
13195 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
13196 /* syntax/typing.nit:2047 */
13197 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13198 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13200 stack_frame_head
= fra
.me
.prev
;
13203 static const char LOCATE_syntax___typing___ATypeCheckExpr___check_expr_cast
[] = "typing::ATypeCheckExpr::check_expr_cast";
13204 void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
13205 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
13209 static val_t once_value_2
; /* Once value */
13210 static val_t once_value_3
; /* Once value */
13211 static val_t once_value_4
; /* Once value */
13212 static val_t once_value_5
; /* Once value */
13213 static val_t once_value_6
; /* Once value */
13214 static val_t once_value_7
; /* Once value */
13215 static val_t once_value_8
; /* Once value */
13216 static val_t once_value_9
; /* Once value */
13217 static val_t once_value_10
; /* Once value */
13218 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13219 fra
.me
.file
= LOCATE_syntax___typing
;
13220 fra
.me
.line
= 2053;
13221 fra
.me
.meth
= LOCATE_syntax___typing___ATypeCheckExpr___check_expr_cast
;
13222 fra
.me
.has_broke
= 0;
13223 fra
.me
.REG_size
= 6;
13224 fra
.me
.nitni_local_ref_head
= NULL
;
13225 fra
.me
.REG
[0] = NIT_NULL
;
13226 fra
.me
.REG
[1] = NIT_NULL
;
13227 fra
.me
.REG
[2] = NIT_NULL
;
13228 fra
.me
.REG
[3] = NIT_NULL
;
13229 fra
.me
.REG
[4] = NIT_NULL
;
13230 fra
.me
.REG
[5] = NIT_NULL
;
13231 fra
.me
.REG
[0] = p0
;
13232 fra
.me
.REG
[1] = p1
;
13233 fra
.me
.REG
[2] = p2
;
13234 fra
.me
.REG
[3] = p3
;
13235 /* syntax/typing.nit:2055 */
13236 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
13237 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13238 if (UNTAG_Bool(REGB0
)) {
13241 /* syntax/typing.nit:2056 */
13242 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13243 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13244 if (UNTAG_Bool(REGB0
)) {
13247 /* syntax/typing.nit:2057 */
13248 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13249 /* syntax/typing.nit:2058 */
13250 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13251 /* syntax/typing.nit:2059 */
13252 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
13253 if (UNTAG_Bool(REGB0
)) {
13255 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13258 if (UNTAG_Bool(REGB0
)) {
13259 /* syntax/typing.nit:2060 */
13260 REGB0
= TAG_Int(3);
13261 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13262 if (!once_value_2
) {
13263 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
13264 REGB0
= TAG_Int(33);
13265 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13266 once_value_2
= fra
.me
.REG
[5];
13267 register_static_object(&once_value_2
);
13268 } else fra
.me
.REG
[5] = once_value_2
;
13269 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13270 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13271 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13272 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13273 if (!once_value_3
) {
13274 fra
.me
.REG
[5] = BOX_NativeString(".");
13275 REGB0
= TAG_Int(1);
13276 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13277 once_value_3
= fra
.me
.REG
[5];
13278 register_static_object(&once_value_3
);
13279 } else fra
.me
.REG
[5] = once_value_3
;
13280 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13281 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13282 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13283 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13285 /* syntax/typing.nit:2061 */
13286 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13287 if (UNTAG_Bool(REGB0
)) {
13288 /* syntax/typing.nit:2062 */
13289 REGB0
= CALL_metamodel___type_formal___MMType___has_formal(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13290 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13291 if (UNTAG_Bool(REGB0
)) {
13292 REGB0
= CALL_metamodel___type_formal___MMType___has_formal(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13293 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13295 REGB1
= TAG_Bool(0);
13298 if (UNTAG_Bool(REGB0
)) {
13299 /* syntax/typing.nit:2064 */
13300 REGB0
= TAG_Int(5);
13301 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13302 if (!once_value_4
) {
13303 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
13304 REGB0
= TAG_Int(33);
13305 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13306 once_value_4
= fra
.me
.REG
[5];
13307 register_static_object(&once_value_4
);
13308 } else fra
.me
.REG
[5] = once_value_4
;
13309 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13310 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13311 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13312 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13313 if (!once_value_5
) {
13314 fra
.me
.REG
[5] = BOX_NativeString(" since it is a ");
13315 REGB0
= TAG_Int(15);
13316 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13317 once_value_5
= fra
.me
.REG
[5];
13318 register_static_object(&once_value_5
);
13319 } else fra
.me
.REG
[5] = once_value_5
;
13320 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13321 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13322 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13323 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13324 if (!once_value_6
) {
13325 fra
.me
.REG
[5] = BOX_NativeString(".");
13326 REGB0
= TAG_Int(1);
13327 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13328 once_value_6
= fra
.me
.REG
[5];
13329 register_static_object(&once_value_6
);
13330 } else fra
.me
.REG
[5] = once_value_6
;
13331 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13332 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13333 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13334 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13337 /* syntax/typing.nit:2066 */
13338 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
13339 if (UNTAG_Bool(REGB0
)) {
13340 /* syntax/typing.nit:2068 */
13341 REGB0
= TAG_Int(3);
13342 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13343 if (!once_value_7
) {
13344 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is null therefore cannot be a ");
13345 REGB0
= TAG_Int(50);
13346 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13347 once_value_7
= fra
.me
.REG
[5];
13348 register_static_object(&once_value_7
);
13349 } else fra
.me
.REG
[5] = once_value_7
;
13350 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13351 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13352 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13354 if (!once_value_8
) {
13355 fra
.me
.REG
[5] = BOX_NativeString(".");
13356 REGB0
= TAG_Int(1);
13357 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13358 once_value_8
= fra
.me
.REG
[5];
13359 register_static_object(&once_value_8
);
13360 } else fra
.me
.REG
[5] = once_value_8
;
13361 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13362 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13363 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13364 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13366 /* syntax/typing.nit:2069 */
13367 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13368 if (UNTAG_Bool(REGB0
)) {
13369 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13370 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
13371 if (UNTAG_Bool(REGB0
)) {
13373 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13377 REGB1
= TAG_Bool(0);
13380 if (UNTAG_Bool(REGB0
)) {
13381 /* syntax/typing.nit:2070 */
13382 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___type_formal___MMTypeFormal
, ID_metamodel___type_formal___MMTypeFormal
)) /*cast MMTypeFormal*/;
13383 if (UNTAG_Bool(REGB0
)) {
13384 fra
.me
.REG
[3] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13385 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13387 REGB1
= TAG_Bool(0);
13390 if (UNTAG_Bool(REGB0
)) {
13392 /* syntax/typing.nit:2076 */
13393 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_parser___parser_nodes___AIsaExpr
, ID_parser___parser_nodes___AIsaExpr
)) /*cast AIsaExpr*/;
13394 if (UNTAG_Bool(REGB0
)) {
13395 /* syntax/typing.nit:2077 */
13396 if (!once_value_9
) {
13397 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '!= null'.");
13398 REGB0
= TAG_Int(26);
13399 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
13400 once_value_9
= fra
.me
.REG
[3];
13401 register_static_object(&once_value_9
);
13402 } else fra
.me
.REG
[3] = once_value_9
;
13403 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13404 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
13406 /* syntax/typing.nit:2079 */
13407 if (!once_value_10
) {
13408 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '.as(not null)'.");
13409 REGB0
= TAG_Int(32);
13410 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
13411 once_value_10
= fra
.me
.REG
[3];
13412 register_static_object(&once_value_10
);
13413 } else fra
.me
.REG
[3] = once_value_10
;
13414 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13415 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
13423 stack_frame_head
= fra
.me
.prev
;
13426 static const char LOCATE_syntax___typing___AIsaExpr___after_typing
[] = "typing::AIsaExpr::(typing::ANode::after_typing)";
13427 void syntax___typing___AIsaExpr___after_typing(val_t p0
, val_t p1
){
13428 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
13432 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13433 fra
.me
.file
= LOCATE_syntax___typing
;
13434 fra
.me
.line
= 2087;
13435 fra
.me
.meth
= LOCATE_syntax___typing___AIsaExpr___after_typing
;
13436 fra
.me
.has_broke
= 0;
13437 fra
.me
.REG_size
= 5;
13438 fra
.me
.nitni_local_ref_head
= NULL
;
13439 fra
.me
.REG
[0] = NIT_NULL
;
13440 fra
.me
.REG
[1] = NIT_NULL
;
13441 fra
.me
.REG
[2] = NIT_NULL
;
13442 fra
.me
.REG
[3] = NIT_NULL
;
13443 fra
.me
.REG
[4] = NIT_NULL
;
13444 fra
.me
.REG
[0] = p0
;
13445 fra
.me
.REG
[1] = p1
;
13446 /* syntax/typing.nit:2089 */
13447 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13448 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13449 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]);
13450 /* syntax/typing.nit:2090 */
13451 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13452 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13453 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13454 if (UNTAG_Bool(REGB0
)) {
13457 /* syntax/typing.nit:2091 */
13458 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13459 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13460 /* syntax/typing.nit:2092 */
13461 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13462 if (UNTAG_Bool(REGB0
)) {
13464 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13465 if (UNTAG_Bool(REGB1
)) {
13466 REGB1
= TAG_Bool(0);
13469 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
13473 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13474 if (UNTAG_Bool(REGB0
)) {
13475 /* syntax/typing.nit:2093 */
13476 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13477 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13478 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13479 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]);
13480 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
13482 /* syntax/typing.nit:2095 */
13483 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13484 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13485 /* syntax/typing.nit:2096 */
13486 REGB0
= TAG_Bool(1);
13487 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13489 stack_frame_head
= fra
.me
.prev
;
13492 static const char LOCATE_syntax___typing___AAsCastExpr___after_typing
[] = "typing::AAsCastExpr::(typing::ANode::after_typing)";
13493 void syntax___typing___AAsCastExpr___after_typing(val_t p0
, val_t p1
){
13494 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
13498 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13499 fra
.me
.file
= LOCATE_syntax___typing
;
13500 fra
.me
.line
= 2102;
13501 fra
.me
.meth
= LOCATE_syntax___typing___AAsCastExpr___after_typing
;
13502 fra
.me
.has_broke
= 0;
13503 fra
.me
.REG_size
= 4;
13504 fra
.me
.nitni_local_ref_head
= NULL
;
13505 fra
.me
.REG
[0] = NIT_NULL
;
13506 fra
.me
.REG
[1] = NIT_NULL
;
13507 fra
.me
.REG
[2] = NIT_NULL
;
13508 fra
.me
.REG
[3] = NIT_NULL
;
13509 fra
.me
.REG
[0] = p0
;
13510 fra
.me
.REG
[1] = p1
;
13511 /* syntax/typing.nit:2104 */
13512 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13513 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13514 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]);
13515 /* syntax/typing.nit:2105 */
13516 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13517 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13518 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13519 if (UNTAG_Bool(REGB0
)) {
13522 /* syntax/typing.nit:2106 */
13523 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13524 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13525 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
13526 /* syntax/typing.nit:2107 */
13527 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
13528 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13529 if (UNTAG_Bool(REGB0
)) {
13531 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13532 if (UNTAG_Bool(REGB1
)) {
13533 REGB1
= TAG_Bool(0);
13536 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
13540 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13541 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13543 stack_frame_head
= fra
.me
.prev
;
13546 static const char LOCATE_syntax___typing___AAsNotnullExpr___after_typing
[] = "typing::AAsNotnullExpr::(typing::ANode::after_typing)";
13547 void syntax___typing___AAsNotnullExpr___after_typing(val_t p0
, val_t p1
){
13548 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
13551 static val_t once_value_2
; /* Once value */
13552 static val_t once_value_3
; /* Once value */
13553 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13554 fra
.me
.file
= LOCATE_syntax___typing
;
13555 fra
.me
.line
= 2112;
13556 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotnullExpr___after_typing
;
13557 fra
.me
.has_broke
= 0;
13558 fra
.me
.REG_size
= 5;
13559 fra
.me
.nitni_local_ref_head
= NULL
;
13560 fra
.me
.REG
[0] = NIT_NULL
;
13561 fra
.me
.REG
[1] = NIT_NULL
;
13562 fra
.me
.REG
[2] = NIT_NULL
;
13563 fra
.me
.REG
[3] = NIT_NULL
;
13564 fra
.me
.REG
[4] = NIT_NULL
;
13565 fra
.me
.REG
[0] = p0
;
13566 fra
.me
.REG
[1] = p1
;
13567 /* syntax/typing.nit:2114 */
13568 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13569 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
13570 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13571 if (UNTAG_Bool(REGB0
)) {
13574 /* syntax/typing.nit:2115 */
13575 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13576 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13577 /* syntax/typing.nit:2116 */
13578 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
13579 if (UNTAG_Bool(REGB0
)) {
13580 /* syntax/typing.nit:2117 */
13581 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13582 if (!once_value_2
) {
13583 fra
.me
.REG
[4] = BOX_NativeString("Type error: 'as(not null)' on 'null' value.");
13584 REGB0
= TAG_Int(43);
13585 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
13586 once_value_2
= fra
.me
.REG
[4];
13587 register_static_object(&once_value_2
);
13588 } else fra
.me
.REG
[4] = once_value_2
;
13589 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13590 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
13591 /* syntax/typing.nit:2118 */
13594 /* syntax/typing.nit:2119 */
13595 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13596 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13597 if (UNTAG_Bool(REGB0
)) {
13598 /* syntax/typing.nit:2120 */
13599 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13600 if (!once_value_3
) {
13601 fra
.me
.REG
[4] = BOX_NativeString("Warning: 'as(not null)' on non nullable type.");
13602 REGB0
= TAG_Int(45);
13603 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
13604 once_value_3
= fra
.me
.REG
[4];
13605 register_static_object(&once_value_3
);
13606 } else fra
.me
.REG
[4] = once_value_3
;
13607 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13608 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
13611 /* syntax/typing.nit:2122 */
13612 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13613 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13614 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13615 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
13616 /* syntax/typing.nit:2123 */
13617 REGB0
= TAG_Bool(1);
13618 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13620 stack_frame_head
= fra
.me
.prev
;
13623 static const char LOCATE_syntax___typing___AProxyExpr___after_typing
[] = "typing::AProxyExpr::(typing::ANode::after_typing)";
13624 void syntax___typing___AProxyExpr___after_typing(val_t p0
, val_t p1
){
13625 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
13628 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13629 fra
.me
.file
= LOCATE_syntax___typing
;
13630 fra
.me
.line
= 2128;
13631 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___after_typing
;
13632 fra
.me
.has_broke
= 0;
13633 fra
.me
.REG_size
= 2;
13634 fra
.me
.nitni_local_ref_head
= NULL
;
13635 fra
.me
.REG
[0] = NIT_NULL
;
13636 fra
.me
.REG
[1] = NIT_NULL
;
13637 fra
.me
.REG
[0] = p0
;
13638 fra
.me
.REG
[1] = p1
;
13639 /* syntax/typing.nit:2130 */
13640 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13641 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13642 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13643 if (UNTAG_Bool(REGB0
)) {
13646 /* syntax/typing.nit:2131 */
13647 REGB0
= TAG_Bool(1);
13648 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13649 /* syntax/typing.nit:2132 */
13650 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13651 REGB0
= CALL_syntax___syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13652 if (UNTAG_Bool(REGB0
)) {
13655 /* syntax/typing.nit:2133 */
13656 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13657 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13658 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13659 /* syntax/typing.nit:2134 */
13660 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13661 fra
.me
.REG
[1] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[1]);
13662 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13663 /* syntax/typing.nit:2135 */
13664 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13665 fra
.me
.REG
[1] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[1]);
13666 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13668 stack_frame_head
= fra
.me
.prev
;
13671 static const char LOCATE_syntax___typing___AProxyExpr___is_self
[] = "typing::AProxyExpr::(typing::AExpr::is_self)";
13672 val_t
syntax___typing___AProxyExpr___is_self(val_t p0
){
13673 struct {struct stack_frame_t me
;} fra
;
13676 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13677 fra
.me
.file
= LOCATE_syntax___typing
;
13678 fra
.me
.line
= 2138;
13679 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___is_self
;
13680 fra
.me
.has_broke
= 0;
13681 fra
.me
.REG_size
= 1;
13682 fra
.me
.nitni_local_ref_head
= NULL
;
13683 fra
.me
.REG
[0] = NIT_NULL
;
13684 fra
.me
.REG
[0] = p0
;
13685 /* syntax/typing.nit:2138 */
13686 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13687 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13690 stack_frame_head
= fra
.me
.prev
;
13693 static const char LOCATE_syntax___typing___AProxyExpr___its_variable
[] = "typing::AProxyExpr::(typing::AExpr::its_variable)";
13694 val_t
syntax___typing___AProxyExpr___its_variable(val_t p0
){
13695 struct {struct stack_frame_t me
;} fra
;
13697 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13698 fra
.me
.file
= LOCATE_syntax___typing
;
13699 fra
.me
.line
= 2140;
13700 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___its_variable
;
13701 fra
.me
.has_broke
= 0;
13702 fra
.me
.REG_size
= 1;
13703 fra
.me
.nitni_local_ref_head
= NULL
;
13704 fra
.me
.REG
[0] = NIT_NULL
;
13705 fra
.me
.REG
[0] = p0
;
13706 /* syntax/typing.nit:2140 */
13707 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13708 fra
.me
.REG
[0] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13711 stack_frame_head
= fra
.me
.prev
;
13712 return fra
.me
.REG
[0];
13714 static const char LOCATE_syntax___typing___AOnceExpr___accept_typing
[] = "typing::AOnceExpr::(typing::ANode::accept_typing)";
13715 void syntax___typing___AOnceExpr___accept_typing(val_t p0
, val_t p1
){
13716 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
13721 static val_t once_value_1
; /* Once value */
13722 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13723 fra
.me
.file
= LOCATE_syntax___typing
;
13724 fra
.me
.line
= 2144;
13725 fra
.me
.meth
= LOCATE_syntax___typing___AOnceExpr___accept_typing
;
13726 fra
.me
.has_broke
= 0;
13727 fra
.me
.REG_size
= 5;
13728 fra
.me
.nitni_local_ref_head
= NULL
;
13729 fra
.me
.REG
[0] = NIT_NULL
;
13730 fra
.me
.REG
[1] = NIT_NULL
;
13731 fra
.me
.REG
[2] = NIT_NULL
;
13732 fra
.me
.REG
[3] = NIT_NULL
;
13733 fra
.me
.REG
[4] = NIT_NULL
;
13734 fra
.me
.REG
[0] = p0
;
13735 fra
.me
.REG
[1] = p1
;
13736 /* syntax/typing.nit:2144 */
13737 fra
.me
.REG
[2] = fra
.me
.REG
[0];
13738 fra
.me
.REG
[3] = fra
.me
.REG
[1];
13739 /* syntax/typing.nit:2146 */
13740 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13741 REGB1
= TAG_Int(0);
13742 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
13743 if (UNTAG_Bool(REGB2
)) {
13745 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
13747 /* ../lib/standard/kernel.nit:237 */
13748 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
13749 /* syntax/typing.nit:2146 */
13750 if (UNTAG_Bool(REGB1
)) {
13751 /* syntax/typing.nit:2147 */
13752 if (!once_value_1
) {
13753 fra
.me
.REG
[4] = BOX_NativeString("Useless once in a once expression.");
13754 REGB1
= TAG_Int(34);
13755 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
13756 once_value_1
= fra
.me
.REG
[4];
13757 register_static_object(&once_value_1
);
13758 } else fra
.me
.REG
[4] = once_value_1
;
13759 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13760 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
13762 /* syntax/typing.nit:2149 */
13763 REGB1
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13764 REGB0
= TAG_Int(1);
13765 /* ../lib/standard/kernel.nit:238 */
13766 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
13767 /* syntax/typing.nit:2149 */
13768 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
13769 /* syntax/typing.nit:2151 */
13770 CALL_SUPER_syntax___typing___AOnceExpr___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
13771 /* syntax/typing.nit:2153 */
13772 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13773 REGB1
= TAG_Int(1);
13774 /* ../lib/standard/kernel.nit:240 */
13775 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
13776 /* syntax/typing.nit:2153 */
13777 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
13778 stack_frame_head
= fra
.me
.prev
;
13781 static const char LOCATE_syntax___typing___ADebugTypeExpr___after_typing
[] = "typing::ADebugTypeExpr::(typing::ANode::after_typing)";
13782 void syntax___typing___ADebugTypeExpr___after_typing(val_t p0
, val_t p1
){
13783 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
13787 static val_t once_value_2
; /* Once value */
13788 static val_t once_value_3
; /* Once value */
13789 static val_t once_value_4
; /* Once value */
13790 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13791 fra
.me
.file
= LOCATE_syntax___typing
;
13792 fra
.me
.line
= 2158;
13793 fra
.me
.meth
= LOCATE_syntax___typing___ADebugTypeExpr___after_typing
;
13794 fra
.me
.has_broke
= 0;
13795 fra
.me
.REG_size
= 6;
13796 fra
.me
.nitni_local_ref_head
= NULL
;
13797 fra
.me
.REG
[0] = NIT_NULL
;
13798 fra
.me
.REG
[1] = NIT_NULL
;
13799 fra
.me
.REG
[2] = NIT_NULL
;
13800 fra
.me
.REG
[3] = NIT_NULL
;
13801 fra
.me
.REG
[4] = NIT_NULL
;
13802 fra
.me
.REG
[5] = NIT_NULL
;
13803 fra
.me
.REG
[0] = p0
;
13804 fra
.me
.REG
[1] = p1
;
13805 /* syntax/typing.nit:2160 */
13806 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13807 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
13808 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13809 if (UNTAG_Bool(REGB0
)) {
13812 /* syntax/typing.nit:2161 */
13813 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13814 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13815 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13816 if (UNTAG_Bool(REGB0
)) {
13819 /* syntax/typing.nit:2162 */
13820 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13821 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13822 /* syntax/typing.nit:2163 */
13823 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ADebugTypeExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13824 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13825 /* syntax/typing.nit:2164 */
13826 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
13827 if (UNTAG_Bool(REGB0
)) {
13829 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13832 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13833 if (UNTAG_Bool(REGB0
)) {
13834 /* syntax/typing.nit:2165 */
13835 REGB0
= TAG_Int(5);
13836 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13837 if (!once_value_2
) {
13838 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is a ");
13839 REGB0
= TAG_Int(25);
13840 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13841 once_value_2
= fra
.me
.REG
[5];
13842 register_static_object(&once_value_2
);
13843 } else fra
.me
.REG
[5] = once_value_2
;
13844 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13845 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13846 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
13848 if (!once_value_3
) {
13849 fra
.me
.REG
[2] = BOX_NativeString(", expected ");
13850 REGB0
= TAG_Int(11);
13851 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
13852 once_value_3
= fra
.me
.REG
[2];
13853 register_static_object(&once_value_3
);
13854 } else fra
.me
.REG
[2] = once_value_3
;
13855 fra
.me
.REG
[2] = fra
.me
.REG
[2];
13856 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
13857 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13858 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
13859 if (!once_value_4
) {
13860 fra
.me
.REG
[3] = BOX_NativeString(".");
13861 REGB0
= TAG_Int(1);
13862 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
13863 once_value_4
= fra
.me
.REG
[3];
13864 register_static_object(&once_value_4
);
13865 } else fra
.me
.REG
[3] = once_value_4
;
13866 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13867 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
13868 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13869 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13872 stack_frame_head
= fra
.me
.prev
;