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:718 */
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:718 */
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:718 */
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:718 */
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:718 */
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:718 */
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 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3015 /* syntax/typing.nit:446 */
3016 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3017 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3018 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3021 /* syntax/typing.nit:448 */
3022 REGB0
= TAG_Bool(1);
3023 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3025 stack_frame_head
= fra
.me
.prev
;
3028 static const char LOCATE_syntax___typing___ABlockExpr___accept_typing
[] = "typing::ABlockExpr::(typing::ANode::accept_typing)";
3029 void syntax___typing___ABlockExpr___accept_typing(val_t p0
, val_t p1
){
3030 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3033 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3034 fra
.me
.file
= LOCATE_syntax___typing
;
3036 fra
.me
.meth
= LOCATE_syntax___typing___ABlockExpr___accept_typing
;
3037 fra
.me
.has_broke
= 0;
3038 fra
.me
.REG_size
= 3;
3039 fra
.me
.nitni_local_ref_head
= NULL
;
3040 fra
.me
.REG
[0] = NIT_NULL
;
3041 fra
.me
.REG
[1] = NIT_NULL
;
3042 fra
.me
.REG
[2] = NIT_NULL
;
3045 /* syntax/typing.nit:455 */
3046 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3047 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
));
3048 /* syntax/typing.nit:464 */
3049 REGB0
= TAG_Bool(1);
3050 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3051 stack_frame_head
= fra
.me
.prev
;
3054 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
){
3055 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3059 static val_t once_value_2
; /* Once value */
3060 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3061 fra
.me
.file
= LOCATE_syntax___typing
;
3063 fra
.me
.meth
= LOCATE_syntax___typing___ABlockExpr___accept_typing
;
3064 fra
.me
.has_broke
= 0;
3065 fra
.me
.REG_size
= 2;
3066 fra
.me
.nitni_local_ref_head
= NULL
;
3067 fra
.me
.REG
[0] = NIT_NULL
;
3068 fra
.me
.REG
[1] = NIT_NULL
;
3069 fra
.me
.closure_ctx
= closctx_param
;
3070 fra
.me
.closure_funs
= CREG
;
3072 CREG
[0] = clos_fun0
;
3073 /* syntax/typing.nit:456 */
3074 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
3075 REGB0
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3076 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3077 if (UNTAG_Bool(REGB0
)) {
3078 /* syntax/typing.nit:457 */
3079 CALL_parser___parser_prod___Visitor___enter_visit(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
3081 /* syntax/typing.nit:458 */
3082 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
3083 REGB0
= CALL_syntax___flow___FlowContext___already_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3084 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3085 if (UNTAG_Bool(REGB0
)) {
3086 /* syntax/typing.nit:459 */
3087 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
3088 REGB0
= TAG_Bool(1);
3089 CALL_syntax___flow___FlowContext___already_unreash__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
3090 /* syntax/typing.nit:460 */
3091 if (!once_value_2
) {
3092 fra
.me
.REG
[1] = BOX_NativeString("Error: unreachable statement.");
3093 REGB0
= TAG_Int(29);
3094 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
3095 once_value_2
= fra
.me
.REG
[1];
3096 register_static_object(&once_value_2
);
3097 } else fra
.me
.REG
[1] = once_value_2
;
3098 fra
.me
.REG
[1] = fra
.me
.REG
[1];
3099 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[1]);
3102 stack_frame_head
= fra
.me
.prev
;
3105 static const char LOCATE_syntax___typing___AReturnExpr___after_typing
[] = "typing::AReturnExpr::(typing::ANode::after_typing)";
3106 void syntax___typing___AReturnExpr___after_typing(val_t p0
, val_t p1
){
3107 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3111 static val_t once_value_1
; /* Once value */
3112 static val_t once_value_3
; /* Once value */
3113 static val_t once_value_4
; /* Once value */
3114 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3115 fra
.me
.file
= LOCATE_syntax___typing
;
3117 fra
.me
.meth
= LOCATE_syntax___typing___AReturnExpr___after_typing
;
3118 fra
.me
.has_broke
= 0;
3119 fra
.me
.REG_size
= 5;
3120 fra
.me
.nitni_local_ref_head
= NULL
;
3121 fra
.me
.REG
[0] = NIT_NULL
;
3122 fra
.me
.REG
[1] = NIT_NULL
;
3123 fra
.me
.REG
[2] = NIT_NULL
;
3124 fra
.me
.REG
[3] = NIT_NULL
;
3125 fra
.me
.REG
[4] = NIT_NULL
;
3128 /* syntax/typing.nit:471 */
3129 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3130 /* syntax/typing.nit:472 */
3131 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3132 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3133 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3134 if (UNTAG_Bool(REGB0
)) {
3135 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 472);
3137 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3138 /* syntax/typing.nit:474 */
3139 REGB0
= CALL_syntax___typing___TypingVisitor___is_default_closure_definition(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3140 if (UNTAG_Bool(REGB0
)) {
3141 /* syntax/typing.nit:475 */
3142 if (!once_value_1
) {
3143 fra
.me
.REG
[3] = BOX_NativeString("Error: 'return' invalid in default closure definitions. Use 'continue' or 'break'.");
3144 REGB0
= TAG_Int(82);
3145 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3146 once_value_1
= fra
.me
.REG
[3];
3147 register_static_object(&once_value_1
);
3148 } else fra
.me
.REG
[3] = once_value_1
;
3149 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3150 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3151 /* syntax/typing.nit:476 */
3154 /* syntax/typing.nit:479 */
3155 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3156 /* syntax/typing.nit:480 */
3157 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3158 if (UNTAG_Bool(REGB0
)) {
3160 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3161 if (UNTAG_Bool(REGB1
)) {
3162 REGB1
= TAG_Bool(0);
3165 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3169 if (UNTAG_Bool(REGB0
)) {
3170 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3171 if (UNTAG_Bool(REGB0
)) {
3173 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3174 if (UNTAG_Bool(REGB1
)) {
3175 REGB1
= TAG_Bool(0);
3178 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3182 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3184 REGB1
= TAG_Bool(0);
3187 if (UNTAG_Bool(REGB0
)) {
3188 /* syntax/typing.nit:481 */
3189 if (!once_value_3
) {
3190 fra
.me
.REG
[4] = BOX_NativeString("Error: Return without value in a function.");
3191 REGB0
= TAG_Int(42);
3192 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3193 once_value_3
= fra
.me
.REG
[4];
3194 register_static_object(&once_value_3
);
3195 } else fra
.me
.REG
[4] = once_value_3
;
3196 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3197 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3199 /* syntax/typing.nit:482 */
3200 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3201 if (UNTAG_Bool(REGB0
)) {
3203 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3204 if (UNTAG_Bool(REGB1
)) {
3205 REGB1
= TAG_Bool(0);
3208 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3212 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3213 if (UNTAG_Bool(REGB0
)) {
3214 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3215 if (UNTAG_Bool(REGB0
)) {
3217 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3218 if (UNTAG_Bool(REGB1
)) {
3219 REGB1
= TAG_Bool(0);
3222 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3227 REGB1
= TAG_Bool(0);
3230 if (UNTAG_Bool(REGB0
)) {
3231 /* syntax/typing.nit:483 */
3232 if (!once_value_4
) {
3233 fra
.me
.REG
[4] = BOX_NativeString("Error: Return with value in a procedure.");
3234 REGB0
= TAG_Int(40);
3235 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3236 once_value_4
= fra
.me
.REG
[4];
3237 register_static_object(&once_value_4
);
3238 } else fra
.me
.REG
[4] = once_value_4
;
3239 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3240 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3242 /* syntax/typing.nit:484 */
3243 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3244 if (UNTAG_Bool(REGB0
)) {
3246 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3247 if (UNTAG_Bool(REGB1
)) {
3248 REGB1
= TAG_Bool(0);
3251 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3255 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3256 if (UNTAG_Bool(REGB0
)) {
3257 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3258 if (UNTAG_Bool(REGB0
)) {
3260 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3261 if (UNTAG_Bool(REGB1
)) {
3262 REGB1
= TAG_Bool(0);
3265 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3269 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3271 REGB1
= TAG_Bool(0);
3274 if (UNTAG_Bool(REGB0
)) {
3275 /* syntax/typing.nit:485 */
3276 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3280 /* syntax/typing.nit:487 */
3281 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3282 if (UNTAG_Bool(REGB0
)) {
3284 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3285 if (UNTAG_Bool(REGB1
)) {
3286 REGB1
= TAG_Bool(0);
3289 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3293 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3294 if (UNTAG_Bool(REGB0
)) {
3295 /* syntax/typing.nit:488 */
3296 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3297 if (UNTAG_Bool(REGB0
)) {
3298 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 488);
3300 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3302 /* syntax/typing.nit:490 */
3303 REGB0
= TAG_Bool(1);
3304 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3306 stack_frame_head
= fra
.me
.prev
;
3309 static const char LOCATE_syntax___typing___AContinueExpr___after_typing
[] = "typing::AContinueExpr::(typing::ANode::after_typing)";
3310 void syntax___typing___AContinueExpr___after_typing(val_t p0
, val_t p1
){
3311 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3315 static val_t once_value_2
; /* Once value */
3316 static val_t once_value_3
; /* Once value */
3317 static val_t once_value_4
; /* Once value */
3318 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3319 fra
.me
.file
= LOCATE_syntax___typing
;
3321 fra
.me
.meth
= LOCATE_syntax___typing___AContinueExpr___after_typing
;
3322 fra
.me
.has_broke
= 0;
3323 fra
.me
.REG_size
= 5;
3324 fra
.me
.nitni_local_ref_head
= NULL
;
3325 fra
.me
.REG
[0] = NIT_NULL
;
3326 fra
.me
.REG
[1] = NIT_NULL
;
3327 fra
.me
.REG
[2] = NIT_NULL
;
3328 fra
.me
.REG
[3] = NIT_NULL
;
3329 fra
.me
.REG
[4] = NIT_NULL
;
3332 /* syntax/typing.nit:497 */
3333 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3334 /* syntax/typing.nit:498 */
3335 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3336 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
3337 /* syntax/typing.nit:499 */
3338 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3339 if (UNTAG_Bool(REGB0
)) {
3341 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3342 if (UNTAG_Bool(REGB1
)) {
3343 REGB1
= TAG_Bool(0);
3346 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3350 if (UNTAG_Bool(REGB0
)) {
3353 /* syntax/typing.nit:501 */
3354 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3355 if (UNTAG_Bool(REGB0
)) {
3356 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 501);
3358 REGB0
= CALL_syntax___scope___EscapableBlock___is_break_block(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3359 if (UNTAG_Bool(REGB0
)) {
3360 /* syntax/typing.nit:502 */
3361 if (!once_value_2
) {
3362 fra
.me
.REG
[3] = BOX_NativeString("Error: cannot 'continue', only 'break'.");
3363 REGB0
= TAG_Int(39);
3364 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
3365 once_value_2
= fra
.me
.REG
[3];
3366 register_static_object(&once_value_2
);
3367 } else fra
.me
.REG
[3] = once_value_2
;
3368 fra
.me
.REG
[3] = fra
.me
.REG
[3];
3369 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
3370 /* syntax/typing.nit:503 */
3373 /* syntax/typing.nit:506 */
3374 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3375 if (UNTAG_Bool(REGB0
)) {
3376 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 506);
3378 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___continue_stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3379 /* syntax/typing.nit:507 */
3380 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3381 /* syntax/typing.nit:508 */
3382 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3383 if (UNTAG_Bool(REGB0
)) {
3385 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3386 if (UNTAG_Bool(REGB1
)) {
3387 REGB1
= TAG_Bool(0);
3390 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3394 if (UNTAG_Bool(REGB0
)) {
3395 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3396 if (UNTAG_Bool(REGB0
)) {
3398 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3399 if (UNTAG_Bool(REGB1
)) {
3400 REGB1
= TAG_Bool(0);
3403 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3407 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3409 REGB1
= TAG_Bool(0);
3412 if (UNTAG_Bool(REGB0
)) {
3413 /* syntax/typing.nit:509 */
3414 if (!once_value_3
) {
3415 fra
.me
.REG
[4] = BOX_NativeString("Error: continue with a value required in this block.");
3416 REGB0
= TAG_Int(52);
3417 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3418 once_value_3
= fra
.me
.REG
[4];
3419 register_static_object(&once_value_3
);
3420 } else fra
.me
.REG
[4] = once_value_3
;
3421 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3422 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3424 /* syntax/typing.nit:510 */
3425 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3426 if (UNTAG_Bool(REGB0
)) {
3428 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3429 if (UNTAG_Bool(REGB1
)) {
3430 REGB1
= TAG_Bool(0);
3433 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3437 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3438 if (UNTAG_Bool(REGB0
)) {
3439 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3440 if (UNTAG_Bool(REGB0
)) {
3442 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3443 if (UNTAG_Bool(REGB1
)) {
3444 REGB1
= TAG_Bool(0);
3447 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3452 REGB1
= TAG_Bool(0);
3455 if (UNTAG_Bool(REGB0
)) {
3456 /* syntax/typing.nit:511 */
3457 if (!once_value_4
) {
3458 fra
.me
.REG
[4] = BOX_NativeString("Error: continue without value required in this block.");
3459 REGB0
= TAG_Int(53);
3460 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3461 once_value_4
= fra
.me
.REG
[4];
3462 register_static_object(&once_value_4
);
3463 } else fra
.me
.REG
[4] = once_value_4
;
3464 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3465 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3467 /* syntax/typing.nit:512 */
3468 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3469 if (UNTAG_Bool(REGB0
)) {
3471 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3472 if (UNTAG_Bool(REGB1
)) {
3473 REGB1
= TAG_Bool(0);
3476 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3480 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3481 if (UNTAG_Bool(REGB0
)) {
3482 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3483 if (UNTAG_Bool(REGB0
)) {
3485 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3486 if (UNTAG_Bool(REGB1
)) {
3487 REGB1
= TAG_Bool(0);
3490 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3494 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3496 REGB1
= TAG_Bool(0);
3499 if (UNTAG_Bool(REGB0
)) {
3500 /* syntax/typing.nit:513 */
3501 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3505 /* syntax/typing.nit:515 */
3506 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3507 if (UNTAG_Bool(REGB0
)) {
3509 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3510 if (UNTAG_Bool(REGB1
)) {
3511 REGB1
= TAG_Bool(0);
3514 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3518 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3519 if (UNTAG_Bool(REGB0
)) {
3520 /* syntax/typing.nit:516 */
3521 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3522 if (UNTAG_Bool(REGB0
)) {
3523 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 516);
3525 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3527 /* syntax/typing.nit:518 */
3528 REGB0
= TAG_Bool(1);
3529 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3531 stack_frame_head
= fra
.me
.prev
;
3534 static const char LOCATE_syntax___typing___ABreakExpr___after_typing
[] = "typing::ABreakExpr::(typing::ANode::after_typing)";
3535 void syntax___typing___ABreakExpr___after_typing(val_t p0
, val_t p1
){
3536 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3540 static val_t once_value_2
; /* Once value */
3541 static val_t once_value_3
; /* Once value */
3542 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3543 fra
.me
.file
= LOCATE_syntax___typing
;
3545 fra
.me
.meth
= LOCATE_syntax___typing___ABreakExpr___after_typing
;
3546 fra
.me
.has_broke
= 0;
3547 fra
.me
.REG_size
= 5;
3548 fra
.me
.nitni_local_ref_head
= NULL
;
3549 fra
.me
.REG
[0] = NIT_NULL
;
3550 fra
.me
.REG
[1] = NIT_NULL
;
3551 fra
.me
.REG
[2] = NIT_NULL
;
3552 fra
.me
.REG
[3] = NIT_NULL
;
3553 fra
.me
.REG
[4] = NIT_NULL
;
3556 /* syntax/typing.nit:525 */
3557 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3558 /* syntax/typing.nit:526 */
3559 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3560 /* syntax/typing.nit:527 */
3561 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3562 fra
.me
.REG
[3] = CALL_syntax___scope___AEscapeExpr___compute_escapable_block(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
3563 /* syntax/typing.nit:528 */
3564 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3565 if (UNTAG_Bool(REGB0
)) {
3567 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3568 if (UNTAG_Bool(REGB1
)) {
3569 REGB1
= TAG_Bool(0);
3572 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3576 if (UNTAG_Bool(REGB0
)) {
3579 /* syntax/typing.nit:530 */
3580 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3581 if (UNTAG_Bool(REGB0
)) {
3582 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 530);
3584 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3585 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
3586 /* syntax/typing.nit:532 */
3587 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3588 if (UNTAG_Bool(REGB0
)) {
3589 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 532);
3591 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3592 /* syntax/typing.nit:533 */
3593 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3594 /* syntax/typing.nit:534 */
3595 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3596 if (UNTAG_Bool(REGB0
)) {
3598 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3599 if (UNTAG_Bool(REGB1
)) {
3600 REGB1
= TAG_Bool(0);
3603 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3607 if (UNTAG_Bool(REGB0
)) {
3608 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3609 if (UNTAG_Bool(REGB0
)) {
3611 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3612 if (UNTAG_Bool(REGB1
)) {
3613 REGB1
= TAG_Bool(0);
3616 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3620 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3622 REGB1
= TAG_Bool(0);
3625 if (UNTAG_Bool(REGB0
)) {
3626 /* syntax/typing.nit:535 */
3627 if (!once_value_2
) {
3628 fra
.me
.REG
[4] = BOX_NativeString("Error: break with a value required in this block.");
3629 REGB0
= TAG_Int(49);
3630 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3631 once_value_2
= fra
.me
.REG
[4];
3632 register_static_object(&once_value_2
);
3633 } else fra
.me
.REG
[4] = once_value_2
;
3634 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3635 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3637 /* syntax/typing.nit:536 */
3638 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3639 if (UNTAG_Bool(REGB0
)) {
3641 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3642 if (UNTAG_Bool(REGB1
)) {
3643 REGB1
= TAG_Bool(0);
3646 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3650 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3651 if (UNTAG_Bool(REGB0
)) {
3652 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3653 if (UNTAG_Bool(REGB0
)) {
3655 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3656 if (UNTAG_Bool(REGB1
)) {
3657 REGB1
= TAG_Bool(0);
3660 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3665 REGB1
= TAG_Bool(0);
3668 if (UNTAG_Bool(REGB0
)) {
3669 /* syntax/typing.nit:537 */
3670 if (!once_value_3
) {
3671 fra
.me
.REG
[4] = BOX_NativeString("Error: break without value required in this block.");
3672 REGB0
= TAG_Int(50);
3673 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3674 once_value_3
= fra
.me
.REG
[4];
3675 register_static_object(&once_value_3
);
3676 } else fra
.me
.REG
[4] = once_value_3
;
3677 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3678 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
3680 /* syntax/typing.nit:538 */
3681 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3682 if (UNTAG_Bool(REGB0
)) {
3684 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3685 if (UNTAG_Bool(REGB1
)) {
3686 REGB1
= TAG_Bool(0);
3689 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3693 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3694 if (UNTAG_Bool(REGB0
)) {
3695 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3696 if (UNTAG_Bool(REGB0
)) {
3698 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3699 if (UNTAG_Bool(REGB1
)) {
3700 REGB1
= TAG_Bool(0);
3703 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3707 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3709 REGB1
= TAG_Bool(0);
3712 if (UNTAG_Bool(REGB0
)) {
3713 /* syntax/typing.nit:540 */
3714 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3715 if (UNTAG_Bool(REGB0
)) {
3716 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 540);
3718 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3722 /* syntax/typing.nit:542 */
3723 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3724 if (UNTAG_Bool(REGB0
)) {
3726 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3727 if (UNTAG_Bool(REGB1
)) {
3728 REGB1
= TAG_Bool(0);
3731 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3735 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3736 if (UNTAG_Bool(REGB0
)) {
3737 /* syntax/typing.nit:543 */
3738 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3739 if (UNTAG_Bool(REGB0
)) {
3740 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 543);
3742 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
3744 /* syntax/typing.nit:545 */
3745 REGB0
= TAG_Bool(1);
3746 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3748 stack_frame_head
= fra
.me
.prev
;
3751 static const char LOCATE_syntax___typing___AAbortExpr___after_typing
[] = "typing::AAbortExpr::(typing::ANode::after_typing)";
3752 void syntax___typing___AAbortExpr___after_typing(val_t p0
, val_t p1
){
3753 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3756 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3757 fra
.me
.file
= LOCATE_syntax___typing
;
3759 fra
.me
.meth
= LOCATE_syntax___typing___AAbortExpr___after_typing
;
3760 fra
.me
.has_broke
= 0;
3761 fra
.me
.REG_size
= 2;
3762 fra
.me
.nitni_local_ref_head
= NULL
;
3763 fra
.me
.REG
[0] = NIT_NULL
;
3764 fra
.me
.REG
[1] = NIT_NULL
;
3767 /* syntax/typing.nit:552 */
3768 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3769 /* syntax/typing.nit:553 */
3770 REGB0
= TAG_Bool(1);
3771 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3772 stack_frame_head
= fra
.me
.prev
;
3775 static const char LOCATE_syntax___typing___AAbsControl___escapable
[] = "typing::AAbsControl::escapable";
3776 val_t
syntax___typing___AAbsControl___escapable(val_t p0
){
3777 struct {struct stack_frame_t me
;} fra
;
3779 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3780 fra
.me
.file
= LOCATE_syntax___typing
;
3782 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___escapable
;
3783 fra
.me
.has_broke
= 0;
3784 fra
.me
.REG_size
= 1;
3785 fra
.me
.nitni_local_ref_head
= NULL
;
3786 fra
.me
.REG
[0] = NIT_NULL
;
3788 /* syntax/typing.nit:560 */
3789 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]);
3790 stack_frame_head
= fra
.me
.prev
;
3791 return fra
.me
.REG
[0];
3793 static const char LOCATE_syntax___typing___AAbsControl___process_control
[] = "typing::AAbsControl::process_control";
3794 void syntax___typing___AAbsControl___process_control(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
3795 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3799 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3800 fra
.me
.file
= LOCATE_syntax___typing
;
3802 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___process_control
;
3803 fra
.me
.has_broke
= 0;
3804 fra
.me
.REG_size
= 7;
3805 fra
.me
.nitni_local_ref_head
= NULL
;
3806 fra
.me
.REG
[0] = NIT_NULL
;
3807 fra
.me
.REG
[1] = NIT_NULL
;
3808 fra
.me
.REG
[2] = NIT_NULL
;
3809 fra
.me
.REG
[3] = NIT_NULL
;
3810 fra
.me
.REG
[4] = NIT_NULL
;
3811 fra
.me
.REG
[5] = NIT_NULL
;
3812 fra
.me
.REG
[6] = NIT_NULL
;
3818 /* syntax/typing.nit:567 */
3819 ATTR_syntax___typing___AAbsControl____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
3820 /* syntax/typing.nit:568 */
3821 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3822 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3823 /* syntax/typing.nit:571 */
3824 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3825 /* syntax/typing.nit:572 */
3826 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3827 /* syntax/typing.nit:573 */
3828 if (UNTAG_Bool(REGB0
)) {
3829 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3830 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3832 /* syntax/typing.nit:576 */
3833 CALL_syntax___typing___AAbsControl___process_control_inside(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3834 /* syntax/typing.nit:579 */
3835 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3836 REGB1
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
3837 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
3838 if (UNTAG_Bool(REGB1
)) {
3839 /* syntax/typing.nit:580 */
3840 fra
.me
.REG
[5] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3841 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3842 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3844 /* syntax/typing.nit:584 */
3845 fra
.me
.REG
[6] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3846 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3847 if (UNTAG_Bool(REGB1
)) {
3848 /* syntax/typing.nit:585 */
3849 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3850 /* syntax/typing.nit:586 */
3851 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3853 /* syntax/typing.nit:588 */
3854 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3855 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]);
3856 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3858 /* syntax/typing.nit:591 */
3859 if (UNTAG_Bool(REGB0
)) {
3860 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3862 /* syntax/typing.nit:592 */
3863 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3864 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3865 /* syntax/typing.nit:593 */
3866 REGB0
= TAG_Bool(1);
3867 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3868 stack_frame_head
= fra
.me
.prev
;
3871 static const char LOCATE_syntax___typing___AAbsControl___process_control_inside
[] = "typing::AAbsControl::process_control_inside";
3872 void syntax___typing___AAbsControl___process_control_inside(val_t p0
, val_t p1
){
3873 struct {struct stack_frame_t me
;} fra
;
3875 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3876 fra
.me
.file
= LOCATE_syntax___typing
;
3878 fra
.me
.meth
= LOCATE_syntax___typing___AAbsControl___process_control_inside
;
3879 fra
.me
.has_broke
= 0;
3880 fra
.me
.REG_size
= 0;
3881 fra
.me
.nitni_local_ref_head
= NULL
;
3882 /* syntax/typing.nit:596 */
3883 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 596);
3884 stack_frame_head
= fra
.me
.prev
;
3887 static const char LOCATE_syntax___typing___ADoExpr___accept_typing
[] = "typing::ADoExpr::(typing::ANode::accept_typing)";
3888 void syntax___typing___ADoExpr___accept_typing(val_t p0
, val_t p1
){
3889 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3892 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3893 fra
.me
.file
= LOCATE_syntax___typing
;
3895 fra
.me
.meth
= LOCATE_syntax___typing___ADoExpr___accept_typing
;
3896 fra
.me
.has_broke
= 0;
3897 fra
.me
.REG_size
= 4;
3898 fra
.me
.nitni_local_ref_head
= NULL
;
3899 fra
.me
.REG
[0] = NIT_NULL
;
3900 fra
.me
.REG
[1] = NIT_NULL
;
3901 fra
.me
.REG
[2] = NIT_NULL
;
3902 fra
.me
.REG
[3] = NIT_NULL
;
3905 /* syntax/typing.nit:604 */
3906 fra
.me
.REG
[2] = NEW_BreakOnlyEscapableBlock_syntax___scope___BreakOnlyEscapableBlock___init(fra
.me
.REG
[0]);
3907 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3908 REGB0
= TAG_Bool(0);
3909 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
);
3910 stack_frame_head
= fra
.me
.prev
;
3913 static const char LOCATE_syntax___typing___ADoExpr___process_control_inside
[] = "typing::ADoExpr::(typing::AAbsControl::process_control_inside)";
3914 void syntax___typing___ADoExpr___process_control_inside(val_t p0
, val_t p1
){
3915 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3917 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3918 fra
.me
.file
= LOCATE_syntax___typing
;
3920 fra
.me
.meth
= LOCATE_syntax___typing___ADoExpr___process_control_inside
;
3921 fra
.me
.has_broke
= 0;
3922 fra
.me
.REG_size
= 2;
3923 fra
.me
.nitni_local_ref_head
= NULL
;
3924 fra
.me
.REG
[0] = NIT_NULL
;
3925 fra
.me
.REG
[1] = NIT_NULL
;
3928 /* syntax/typing.nit:609 */
3929 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3930 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3931 stack_frame_head
= fra
.me
.prev
;
3934 static const char LOCATE_syntax___typing___AIfExpr___accept_typing
[] = "typing::AIfExpr::(typing::ANode::accept_typing)";
3935 void syntax___typing___AIfExpr___accept_typing(val_t p0
, val_t p1
){
3936 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3939 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3940 fra
.me
.file
= LOCATE_syntax___typing
;
3942 fra
.me
.meth
= LOCATE_syntax___typing___AIfExpr___accept_typing
;
3943 fra
.me
.has_broke
= 0;
3944 fra
.me
.REG_size
= 5;
3945 fra
.me
.nitni_local_ref_head
= NULL
;
3946 fra
.me
.REG
[0] = NIT_NULL
;
3947 fra
.me
.REG
[1] = NIT_NULL
;
3948 fra
.me
.REG
[2] = NIT_NULL
;
3949 fra
.me
.REG
[3] = NIT_NULL
;
3950 fra
.me
.REG
[4] = NIT_NULL
;
3953 /* syntax/typing.nit:616 */
3954 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3955 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3956 /* syntax/typing.nit:617 */
3957 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3958 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3959 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
3960 /* syntax/typing.nit:619 */
3961 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3962 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3963 /* syntax/typing.nit:622 */
3964 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3965 /* syntax/typing.nit:623 */
3966 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3967 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3968 /* syntax/typing.nit:626 */
3969 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3970 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3971 /* syntax/typing.nit:629 */
3972 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3973 /* syntax/typing.nit:632 */
3974 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3975 /* syntax/typing.nit:633 */
3976 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3977 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3978 /* syntax/typing.nit:636 */
3979 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3980 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3981 /* syntax/typing.nit:639 */
3982 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3983 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3984 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]);
3985 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3986 /* syntax/typing.nit:640 */
3987 REGB0
= TAG_Bool(1);
3988 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
3989 stack_frame_head
= fra
.me
.prev
;
3992 static const char LOCATE_syntax___typing___AWhileExpr___accept_typing
[] = "typing::AWhileExpr::(typing::ANode::accept_typing)";
3993 void syntax___typing___AWhileExpr___accept_typing(val_t p0
, val_t p1
){
3994 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3997 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3998 fra
.me
.file
= LOCATE_syntax___typing
;
4000 fra
.me
.meth
= LOCATE_syntax___typing___AWhileExpr___accept_typing
;
4001 fra
.me
.has_broke
= 0;
4002 fra
.me
.REG_size
= 4;
4003 fra
.me
.nitni_local_ref_head
= NULL
;
4004 fra
.me
.REG
[0] = NIT_NULL
;
4005 fra
.me
.REG
[1] = NIT_NULL
;
4006 fra
.me
.REG
[2] = NIT_NULL
;
4007 fra
.me
.REG
[3] = NIT_NULL
;
4010 /* syntax/typing.nit:648 */
4011 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
4012 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4013 REGB0
= TAG_Bool(1);
4014 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
);
4015 stack_frame_head
= fra
.me
.prev
;
4018 static const char LOCATE_syntax___typing___AWhileExpr___process_control_inside
[] = "typing::AWhileExpr::(typing::AAbsControl::process_control_inside)";
4019 void syntax___typing___AWhileExpr___process_control_inside(val_t p0
, val_t p1
){
4020 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4023 static val_t once_value_1
; /* Once value */
4024 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4025 fra
.me
.file
= LOCATE_syntax___typing
;
4027 fra
.me
.meth
= LOCATE_syntax___typing___AWhileExpr___process_control_inside
;
4028 fra
.me
.has_broke
= 0;
4029 fra
.me
.REG_size
= 5;
4030 fra
.me
.nitni_local_ref_head
= NULL
;
4031 fra
.me
.REG
[0] = NIT_NULL
;
4032 fra
.me
.REG
[1] = NIT_NULL
;
4033 fra
.me
.REG
[2] = NIT_NULL
;
4034 fra
.me
.REG
[3] = NIT_NULL
;
4035 fra
.me
.REG
[4] = NIT_NULL
;
4038 /* syntax/typing.nit:653 */
4039 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4040 /* syntax/typing.nit:656 */
4041 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4042 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4043 /* syntax/typing.nit:657 */
4044 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4045 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4046 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
4047 /* syntax/typing.nit:659 */
4048 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4049 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_parser___parser_nodes___ATrueExpr
, ID_parser___parser_nodes___ATrueExpr
)) /*cast ATrueExpr*/;
4050 if (UNTAG_Bool(REGB0
)) {
4051 /* syntax/typing.nit:660 */
4052 if (!once_value_1
) {
4053 fra
.me
.REG
[4] = BOX_NativeString("Warning: use 'loop' instead of 'while true do'.");
4054 REGB0
= TAG_Int(47);
4055 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4056 once_value_1
= fra
.me
.REG
[4];
4057 register_static_object(&once_value_1
);
4058 } else fra
.me
.REG
[4] = once_value_1
;
4059 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4060 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
4062 /* syntax/typing.nit:662 */
4063 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4064 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
4066 /* syntax/typing.nit:666 */
4067 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4068 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4069 /* syntax/typing.nit:669 */
4070 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4071 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4072 /* syntax/typing.nit:672 */
4073 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4074 /* syntax/typing.nit:673 */
4075 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4076 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4077 /* syntax/typing.nit:674 */
4078 fra
.me
.REG
[0] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4079 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
4080 if (UNTAG_Bool(REGB0
)) {
4081 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 674);
4083 fra
.me
.REG
[0] = CALL_syntax___scope___EscapableBlock___break_flow_contexts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4084 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4085 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
4086 stack_frame_head
= fra
.me
.prev
;
4089 static const char LOCATE_syntax___typing___ALoopExpr___accept_typing
[] = "typing::ALoopExpr::(typing::ANode::accept_typing)";
4090 void syntax___typing___ALoopExpr___accept_typing(val_t p0
, val_t p1
){
4091 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4094 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4095 fra
.me
.file
= LOCATE_syntax___typing
;
4097 fra
.me
.meth
= LOCATE_syntax___typing___ALoopExpr___accept_typing
;
4098 fra
.me
.has_broke
= 0;
4099 fra
.me
.REG_size
= 4;
4100 fra
.me
.nitni_local_ref_head
= NULL
;
4101 fra
.me
.REG
[0] = NIT_NULL
;
4102 fra
.me
.REG
[1] = NIT_NULL
;
4103 fra
.me
.REG
[2] = NIT_NULL
;
4104 fra
.me
.REG
[3] = NIT_NULL
;
4107 /* syntax/typing.nit:682 */
4108 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
4109 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4110 REGB0
= TAG_Bool(1);
4111 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
);
4112 stack_frame_head
= fra
.me
.prev
;
4115 static const char LOCATE_syntax___typing___ALoopExpr___process_control_inside
[] = "typing::ALoopExpr::(typing::AAbsControl::process_control_inside)";
4116 void syntax___typing___ALoopExpr___process_control_inside(val_t p0
, val_t p1
){
4117 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4119 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4120 fra
.me
.file
= LOCATE_syntax___typing
;
4122 fra
.me
.meth
= LOCATE_syntax___typing___ALoopExpr___process_control_inside
;
4123 fra
.me
.has_broke
= 0;
4124 fra
.me
.REG_size
= 3;
4125 fra
.me
.nitni_local_ref_head
= NULL
;
4126 fra
.me
.REG
[0] = NIT_NULL
;
4127 fra
.me
.REG
[1] = NIT_NULL
;
4128 fra
.me
.REG
[2] = NIT_NULL
;
4131 /* syntax/typing.nit:688 */
4132 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4133 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4134 /* syntax/typing.nit:691 */
4135 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4136 stack_frame_head
= fra
.me
.prev
;
4139 static const char LOCATE_syntax___typing___AForExpr___variables
[] = "typing::AForExpr::(syntax_base::AForExpr::variables)";
4140 val_t
syntax___typing___AForExpr___variables(val_t p0
){
4141 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4144 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4145 fra
.me
.file
= LOCATE_syntax___typing
;
4147 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___variables
;
4148 fra
.me
.has_broke
= 0;
4149 fra
.me
.REG_size
= 2;
4150 fra
.me
.nitni_local_ref_head
= NULL
;
4151 fra
.me
.REG
[0] = NIT_NULL
;
4152 fra
.me
.REG
[1] = NIT_NULL
;
4154 /* syntax/typing.nit:698 */
4155 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4156 fra
.me
.REG
[1] = ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[1]);
4157 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4158 if (UNTAG_Bool(REGB0
)) {
4160 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 698);
4164 stack_frame_head
= fra
.me
.prev
;
4165 return fra
.me
.REG
[1];
4167 static const char LOCATE_syntax___typing___AForExpr___accept_typing
[] = "typing::AForExpr::(typing::ANode::accept_typing)";
4168 void syntax___typing___AForExpr___accept_typing(val_t p0
, val_t p1
){
4169 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4172 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4173 fra
.me
.file
= LOCATE_syntax___typing
;
4175 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___accept_typing
;
4176 fra
.me
.has_broke
= 0;
4177 fra
.me
.REG_size
= 4;
4178 fra
.me
.nitni_local_ref_head
= NULL
;
4179 fra
.me
.REG
[0] = NIT_NULL
;
4180 fra
.me
.REG
[1] = NIT_NULL
;
4181 fra
.me
.REG
[2] = NIT_NULL
;
4182 fra
.me
.REG
[3] = NIT_NULL
;
4185 /* syntax/typing.nit:702 */
4186 fra
.me
.REG
[2] = NEW_EscapableBlock_syntax___scope___EscapableBlock___init(fra
.me
.REG
[0]);
4187 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4188 REGB0
= TAG_Bool(1);
4189 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
);
4190 stack_frame_head
= fra
.me
.prev
;
4193 static const char LOCATE_syntax___typing___AForExpr___process_control_inside
[] = "typing::AForExpr::(typing::AAbsControl::process_control_inside)";
4194 void syntax___typing___AForExpr___process_control_inside(val_t p0
, val_t p1
){
4195 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4197 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4198 fra
.me
.file
= LOCATE_syntax___typing
;
4200 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___process_control_inside
;
4201 fra
.me
.has_broke
= 0;
4202 fra
.me
.REG_size
= 3;
4203 fra
.me
.nitni_local_ref_head
= NULL
;
4204 fra
.me
.REG
[0] = NIT_NULL
;
4205 fra
.me
.REG
[1] = NIT_NULL
;
4206 fra
.me
.REG
[2] = NIT_NULL
;
4209 /* syntax/typing.nit:707 */
4210 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4211 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
4212 /* syntax/typing.nit:708 */
4213 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4214 /* syntax/typing.nit:710 */
4215 CALL_syntax___typing___AForExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
4216 /* syntax/typing.nit:713 */
4217 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4218 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4219 /* syntax/typing.nit:716 */
4220 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4221 /* syntax/typing.nit:717 */
4222 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4223 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4224 stack_frame_head
= fra
.me
.prev
;
4227 static const char LOCATE_syntax___typing___AForExpr___do_typing
[] = "typing::AForExpr::do_typing";
4228 void syntax___typing___AForExpr___do_typing(val_t p0
, val_t p1
){
4229 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4237 static val_t once_value_3
; /* Once value */
4238 static val_t once_value_4
; /* Once value */
4239 static val_t once_value_5
; /* Once value */
4240 static val_t once_value_6
; /* Once value */
4241 static val_t once_value_7
; /* Once value */
4242 static val_t once_value_8
; /* Once value */
4243 static val_t once_value_9
; /* Once value */
4244 static val_t once_value_10
; /* Once value */
4245 static val_t once_value_11
; /* Once value */
4246 static val_t once_value_12
; /* Once value */
4247 static val_t once_value_13
; /* Once value */
4248 static val_t once_value_14
; /* Once value */
4249 static val_t once_value_15
; /* Once value */
4250 static val_t once_value_16
; /* Once value */
4251 static val_t once_value_17
; /* Once value */
4252 static val_t once_value_18
; /* Once value */
4253 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4254 fra
.me
.file
= LOCATE_syntax___typing
;
4256 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
4257 fra
.me
.has_broke
= 0;
4258 fra
.me
.REG_size
= 8;
4259 fra
.me
.nitni_local_ref_head
= NULL
;
4260 fra
.me
.REG
[0] = NIT_NULL
;
4261 fra
.me
.REG
[1] = NIT_NULL
;
4262 fra
.me
.REG
[2] = NIT_NULL
;
4263 fra
.me
.REG
[3] = NIT_NULL
;
4264 fra
.me
.REG
[4] = NIT_NULL
;
4265 fra
.me
.REG
[5] = NIT_NULL
;
4266 fra
.me
.REG
[6] = NIT_NULL
;
4267 fra
.me
.REG
[7] = NIT_NULL
;
4270 /* syntax/typing.nit:723 */
4271 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
4272 /* syntax/typing.nit:724 */
4273 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4274 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
));
4275 /* syntax/typing.nit:729 */
4276 ATTR_syntax___typing___AForExpr____variables(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4277 /* syntax/typing.nit:732 */
4278 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4279 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4280 /* syntax/typing.nit:733 */
4281 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4282 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4283 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4284 if (UNTAG_Bool(REGB0
)) {
4287 /* syntax/typing.nit:734 */
4288 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4289 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4290 /* syntax/typing.nit:736 */
4291 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4292 if (UNTAG_Bool(REGB0
)) {
4293 /* syntax/typing.nit:737 */
4294 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4295 if (!once_value_3
) {
4296 fra
.me
.REG
[5] = BOX_NativeString("Type error: 'for' on a nullable expression.");
4297 REGB0
= TAG_Int(43);
4298 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4299 once_value_3
= fra
.me
.REG
[5];
4300 register_static_object(&once_value_3
);
4301 } else fra
.me
.REG
[5] = once_value_3
;
4302 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4303 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
4304 /* syntax/typing.nit:738 */
4307 /* syntax/typing.nit:740 */
4308 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4309 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
4310 /* syntax/typing.nit:743 */
4311 if (!once_value_4
) {
4312 if (!once_value_5
) {
4313 fra
.me
.REG
[5] = BOX_NativeString("iterate");
4315 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4316 once_value_5
= fra
.me
.REG
[5];
4317 register_static_object(&once_value_5
);
4318 } else fra
.me
.REG
[5] = once_value_5
;
4319 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4320 fra
.me
.REG
[5] = CALL_symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4321 once_value_4
= fra
.me
.REG
[5];
4322 register_static_object(&once_value_4
);
4323 } else fra
.me
.REG
[5] = once_value_4
;
4324 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4325 /* syntax/typing.nit:744 */
4326 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4327 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
4328 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4329 if (UNTAG_Bool(REGB0
)) {
4330 /* syntax/typing.nit:745 */
4331 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4333 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4334 if (!once_value_6
) {
4335 fra
.me
.REG
[7] = BOX_NativeString("Type error: Expected a type with an 'iterate' method. Found ");
4336 REGB0
= TAG_Int(60);
4337 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4338 once_value_6
= fra
.me
.REG
[7];
4339 register_static_object(&once_value_6
);
4340 } else fra
.me
.REG
[7] = once_value_6
;
4341 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4342 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4343 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4344 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4345 if (!once_value_7
) {
4346 fra
.me
.REG
[7] = BOX_NativeString(".");
4348 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
4349 once_value_7
= fra
.me
.REG
[7];
4350 register_static_object(&once_value_7
);
4351 } else fra
.me
.REG
[7] = once_value_7
;
4352 fra
.me
.REG
[7] = fra
.me
.REG
[7];
4353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
4354 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4355 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
4356 /* syntax/typing.nit:746 */
4359 /* syntax/typing.nit:748 */
4360 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4361 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
4362 /* syntax/typing.nit:749 */
4363 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4364 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4365 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4366 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4367 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
);
4368 /* syntax/typing.nit:750 */
4369 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
4370 /* syntax/typing.nit:751 */
4371 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4372 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4373 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4374 if (UNTAG_Bool(REGB0
)) {
4375 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4376 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4378 /* syntax/typing.nit:752 */
4379 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4381 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4382 if (UNTAG_Bool(REGB2
)) {
4384 /* ../lib/standard/kernel.nit:230 */
4385 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
4386 /* syntax/typing.nit:752 */
4389 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4390 if (UNTAG_Bool(REGB2
)) {
4391 /* syntax/typing.nit:753 */
4392 if (!once_value_8
) {
4393 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require no arguments.");
4394 REGB2
= TAG_Int(63);
4395 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
4396 once_value_8
= fra
.me
.REG
[5];
4397 register_static_object(&once_value_8
);
4398 } else fra
.me
.REG
[5] = once_value_8
;
4399 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4400 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4401 /* syntax/typing.nit:754 */
4404 /* syntax/typing.nit:755 */
4405 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4406 /* ../lib/standard/collection/array.nit:24 */
4407 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4408 if (UNTAG_Bool(REGB2
)) {
4410 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4412 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4413 /* syntax/typing.nit:755 */
4415 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4416 if (UNTAG_Bool(REGB0
)) {
4418 /* ../lib/standard/kernel.nit:230 */
4419 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4420 /* syntax/typing.nit:755 */
4423 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4424 if (UNTAG_Bool(REGB0
)) {
4425 /* syntax/typing.nit:756 */
4426 if (!once_value_9
) {
4427 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one closure.");
4428 REGB0
= TAG_Int(62);
4429 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4430 once_value_9
= fra
.me
.REG
[5];
4431 register_static_object(&once_value_9
);
4432 } else fra
.me
.REG
[5] = once_value_9
;
4433 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4434 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4435 /* syntax/typing.nit:757 */
4439 /* syntax/typing.nit:759 */
4440 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4441 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4442 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4443 if (UNTAG_Bool(REGB0
)) {
4444 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 759);
4446 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4447 fra
.me
.REG
[3] = fra
.me
.REG
[5];
4448 /* syntax/typing.nit:760 */
4449 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4450 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4451 if (UNTAG_Bool(REGB0
)) {
4453 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4454 if (UNTAG_Bool(REGB1
)) {
4455 REGB1
= TAG_Bool(0);
4458 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
4462 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4463 if (UNTAG_Bool(REGB0
)) {
4464 /* syntax/typing.nit:761 */
4465 if (!once_value_10
) {
4466 fra
.me
.REG
[5] = BOX_NativeString("Error: 'iterate' incompatible with 'for': require one procedural closure.");
4467 REGB0
= TAG_Int(73);
4468 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4469 once_value_10
= fra
.me
.REG
[5];
4470 register_static_object(&once_value_10
);
4471 } else fra
.me
.REG
[5] = once_value_10
;
4472 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4473 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4474 /* syntax/typing.nit:762 */
4477 /* ../lib/standard/collection/array.nit:24 */
4478 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4479 if (UNTAG_Bool(REGB0
)) {
4481 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4483 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4484 /* syntax/typing.nit:764 */
4485 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4486 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
4487 if (UNTAG_Bool(REGB2
)) {
4489 /* ../lib/standard/kernel.nit:230 */
4490 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
4491 /* syntax/typing.nit:764 */
4494 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
4495 if (UNTAG_Bool(REGB2
)) {
4496 /* syntax/typing.nit:765 */
4497 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4499 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
4500 if (UNTAG_Bool(REGB0
)) {
4502 /* ../lib/standard/kernel.nit:230 */
4503 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
4504 /* syntax/typing.nit:765 */
4507 if (UNTAG_Bool(REGB0
)) {
4508 /* syntax/typing.nit:766 */
4510 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4511 if (!once_value_11
) {
4512 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4513 REGB0
= TAG_Int(16);
4514 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4515 once_value_11
= fra
.me
.REG
[4];
4516 register_static_object(&once_value_11
);
4517 } else fra
.me
.REG
[4] = once_value_11
;
4518 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4519 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4520 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4521 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4522 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4523 if (!once_value_12
) {
4524 fra
.me
.REG
[4] = BOX_NativeString(" variable ");
4525 REGB0
= TAG_Int(10);
4526 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4527 once_value_12
= fra
.me
.REG
[4];
4528 register_static_object(&once_value_12
);
4529 } else fra
.me
.REG
[4] = once_value_12
;
4530 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4531 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4532 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4534 if (!once_value_13
) {
4535 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4537 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4538 once_value_13
= fra
.me
.REG
[4];
4539 register_static_object(&once_value_13
);
4540 } else fra
.me
.REG
[4] = once_value_13
;
4541 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4542 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4543 /* ../lib/standard/collection/array.nit:24 */
4544 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4545 if (UNTAG_Bool(REGB0
)) {
4547 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4549 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4550 /* syntax/typing.nit:766 */
4551 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4552 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4553 if (!once_value_14
) {
4554 fra
.me
.REG
[4] = BOX_NativeString(".");
4556 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4557 once_value_14
= fra
.me
.REG
[4];
4558 register_static_object(&once_value_14
);
4559 } else fra
.me
.REG
[4] = once_value_14
;
4560 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4561 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4562 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4563 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4565 /* syntax/typing.nit:768 */
4567 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4568 if (!once_value_15
) {
4569 fra
.me
.REG
[4] = BOX_NativeString("Error: Expected ");
4570 REGB0
= TAG_Int(16);
4571 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4572 once_value_15
= fra
.me
.REG
[4];
4573 register_static_object(&once_value_15
);
4574 } else fra
.me
.REG
[4] = once_value_15
;
4575 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4576 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4577 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4578 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4579 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4580 if (!once_value_16
) {
4581 fra
.me
.REG
[4] = BOX_NativeString(" variables ");
4582 REGB0
= TAG_Int(11);
4583 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4584 once_value_16
= fra
.me
.REG
[4];
4585 register_static_object(&once_value_16
);
4586 } else fra
.me
.REG
[4] = once_value_16
;
4587 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4588 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4589 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4590 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4591 if (!once_value_17
) {
4592 fra
.me
.REG
[4] = BOX_NativeString(", found ");
4594 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4595 once_value_17
= fra
.me
.REG
[4];
4596 register_static_object(&once_value_17
);
4597 } else fra
.me
.REG
[4] = once_value_17
;
4598 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4599 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4600 /* ../lib/standard/collection/array.nit:24 */
4601 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4602 if (UNTAG_Bool(REGB0
)) {
4604 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4606 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4607 /* syntax/typing.nit:768 */
4608 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
4609 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4610 if (!once_value_18
) {
4611 fra
.me
.REG
[4] = BOX_NativeString(".");
4613 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
4614 once_value_18
= fra
.me
.REG
[4];
4615 register_static_object(&once_value_18
);
4616 } else fra
.me
.REG
[4] = once_value_18
;
4617 fra
.me
.REG
[4] = fra
.me
.REG
[4];
4618 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4619 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4620 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
4622 /* syntax/typing.nit:770 */
4625 /* syntax/typing.nit:774 */
4627 /* ../lib/standard/collection/array.nit:24 */
4628 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
4629 if (UNTAG_Bool(REGB1
)) {
4631 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4633 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
4634 /* ../lib/standard/kernel.nit:355 */
4636 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
4637 if (UNTAG_Bool(REGB2
)) {
4639 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4641 /* ../lib/standard/kernel.nit:235 */
4642 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
4643 /* ../lib/standard/kernel.nit:355 */
4644 if (UNTAG_Bool(REGB2
)) {
4645 /* syntax/typing.nit:774 */
4647 /* ../lib/standard/collection/array.nit:278 */
4648 fra
.me
.REG
[5] = fra
.me
.REG
[2];
4650 /* ../lib/standard/collection/array.nit:280 */
4652 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
4653 if (UNTAG_Bool(REGB5
)) {
4655 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4657 /* ../lib/standard/kernel.nit:236 */
4658 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
4659 /* ../lib/standard/collection/array.nit:280 */
4660 if (UNTAG_Bool(REGB4
)) {
4661 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
4662 if (UNTAG_Bool(REGB4
)) {
4664 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
4666 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
4667 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
4668 if (UNTAG_Bool(REGB5
)) {
4670 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4672 /* ../lib/standard/kernel.nit:235 */
4673 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
4675 /* ../lib/standard/collection/array.nit:280 */
4676 REGB5
= TAG_Bool(0);
4679 if (UNTAG_Bool(REGB4
)) {
4681 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
4683 /* ../lib/standard/collection/array.nit:281 */
4684 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
4685 REGB4
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4686 if (UNTAG_Bool(REGB4
)) {
4687 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
4689 /* ../lib/standard/collection/array.nit:718 */
4690 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
4691 /* ../lib/standard/collection/array.nit:281 */
4694 /* syntax/typing.nit:775 */
4695 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
4696 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
4697 if (UNTAG_Bool(REGB2
)) {
4698 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 775);
4700 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
4701 /* ../lib/standard/kernel.nit:357 */
4703 /* ../lib/standard/kernel.nit:238 */
4704 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
4705 /* ../lib/standard/kernel.nit:357 */
4708 /* ../lib/standard/kernel.nit:355 */
4714 stack_frame_head
= fra
.me
.prev
;
4717 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
){
4718 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4721 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4722 fra
.me
.file
= LOCATE_syntax___typing
;
4724 fra
.me
.meth
= LOCATE_syntax___typing___AForExpr___do_typing
;
4725 fra
.me
.has_broke
= 0;
4726 fra
.me
.REG_size
= 2;
4727 fra
.me
.nitni_local_ref_head
= NULL
;
4728 fra
.me
.REG
[0] = NIT_NULL
;
4729 fra
.me
.REG
[1] = NIT_NULL
;
4730 fra
.me
.closure_ctx
= closctx_param
;
4731 fra
.me
.closure_funs
= CREG
;
4733 CREG
[0] = clos_fun0
;
4734 /* syntax/typing.nit:725 */
4735 fra
.me
.REG
[1] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4736 fra
.me
.REG
[0] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4737 /* syntax/typing.nit:726 */
4738 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(closctx
->REG
[1])(closctx
->REG
[1]);
4739 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4740 /* syntax/typing.nit:727 */
4741 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
4742 stack_frame_head
= fra
.me
.prev
;
4745 static const char LOCATE_syntax___typing___AAssertExpr___accept_typing
[] = "typing::AAssertExpr::(typing::ANode::accept_typing)";
4746 void syntax___typing___AAssertExpr___accept_typing(val_t p0
, val_t p1
){
4747 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4751 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4752 fra
.me
.file
= LOCATE_syntax___typing
;
4754 fra
.me
.meth
= LOCATE_syntax___typing___AAssertExpr___accept_typing
;
4755 fra
.me
.has_broke
= 0;
4756 fra
.me
.REG_size
= 4;
4757 fra
.me
.nitni_local_ref_head
= NULL
;
4758 fra
.me
.REG
[0] = NIT_NULL
;
4759 fra
.me
.REG
[1] = NIT_NULL
;
4760 fra
.me
.REG
[2] = NIT_NULL
;
4761 fra
.me
.REG
[3] = NIT_NULL
;
4764 /* syntax/typing.nit:784 */
4765 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4766 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4767 /* syntax/typing.nit:785 */
4768 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4769 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4770 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
4771 /* syntax/typing.nit:786 */
4772 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4773 CALL_syntax___typing___AExpr___warn_parentheses(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
4774 /* syntax/typing.nit:789 */
4775 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4776 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4777 if (UNTAG_Bool(REGB0
)) {
4779 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4780 if (UNTAG_Bool(REGB1
)) {
4781 REGB1
= TAG_Bool(0);
4784 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4788 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4789 if (UNTAG_Bool(REGB0
)) {
4790 /* syntax/typing.nit:790 */
4791 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4792 /* syntax/typing.nit:791 */
4793 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4794 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4795 /* syntax/typing.nit:792 */
4796 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4797 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4798 /* syntax/typing.nit:793 */
4799 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4801 /* syntax/typing.nit:797 */
4802 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4803 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4804 /* syntax/typing.nit:798 */
4805 REGB0
= TAG_Bool(1);
4806 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4807 stack_frame_head
= fra
.me
.prev
;
4810 static const char LOCATE_syntax___typing___AVarFormExpr___variable
[] = "typing::AVarFormExpr::(syntax_base::AVarFormExpr::variable)";
4811 val_t
syntax___typing___AVarFormExpr___variable(val_t p0
){
4812 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4815 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4816 fra
.me
.file
= LOCATE_syntax___typing
;
4818 fra
.me
.meth
= LOCATE_syntax___typing___AVarFormExpr___variable
;
4819 fra
.me
.has_broke
= 0;
4820 fra
.me
.REG_size
= 2;
4821 fra
.me
.nitni_local_ref_head
= NULL
;
4822 fra
.me
.REG
[0] = NIT_NULL
;
4823 fra
.me
.REG
[1] = NIT_NULL
;
4825 /* syntax/typing.nit:804 */
4826 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4827 fra
.me
.REG
[1] = ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[1]);
4828 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
4829 if (UNTAG_Bool(REGB0
)) {
4831 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 804);
4835 stack_frame_head
= fra
.me
.prev
;
4836 return fra
.me
.REG
[1];
4838 static const char LOCATE_syntax___typing___AVarExpr___its_variable
[] = "typing::AVarExpr::(typing::AExpr::its_variable)";
4839 val_t
syntax___typing___AVarExpr___its_variable(val_t p0
){
4840 struct {struct stack_frame_t me
;} fra
;
4842 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4843 fra
.me
.file
= LOCATE_syntax___typing
;
4845 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___its_variable
;
4846 fra
.me
.has_broke
= 0;
4847 fra
.me
.REG_size
= 1;
4848 fra
.me
.nitni_local_ref_head
= NULL
;
4849 fra
.me
.REG
[0] = NIT_NULL
;
4851 /* syntax/typing.nit:808 */
4852 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4855 stack_frame_head
= fra
.me
.prev
;
4856 return fra
.me
.REG
[0];
4858 static const char LOCATE_syntax___typing___AVarExpr___after_typing
[] = "typing::AVarExpr::(typing::ANode::after_typing)";
4859 void syntax___typing___AVarExpr___after_typing(val_t p0
, val_t p1
){
4860 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4864 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4865 fra
.me
.file
= LOCATE_syntax___typing
;
4867 fra
.me
.meth
= LOCATE_syntax___typing___AVarExpr___after_typing
;
4868 fra
.me
.has_broke
= 0;
4869 fra
.me
.REG_size
= 4;
4870 fra
.me
.nitni_local_ref_head
= NULL
;
4871 fra
.me
.REG
[0] = NIT_NULL
;
4872 fra
.me
.REG
[1] = NIT_NULL
;
4873 fra
.me
.REG
[2] = NIT_NULL
;
4874 fra
.me
.REG
[3] = NIT_NULL
;
4877 /* syntax/typing.nit:812 */
4878 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4879 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4880 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
4881 /* syntax/typing.nit:813 */
4882 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4883 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4884 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4885 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
4886 /* syntax/typing.nit:814 */
4887 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
4888 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4889 if (UNTAG_Bool(REGB0
)) {
4891 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4892 if (UNTAG_Bool(REGB1
)) {
4893 REGB1
= TAG_Bool(0);
4896 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4900 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4901 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4902 stack_frame_head
= fra
.me
.prev
;
4905 static const char LOCATE_syntax___typing___AVarAssignExpr___after_typing
[] = "typing::AVarAssignExpr::(typing::ANode::after_typing)";
4906 void syntax___typing___AVarAssignExpr___after_typing(val_t p0
, val_t p1
){
4907 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4911 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4912 fra
.me
.file
= LOCATE_syntax___typing
;
4914 fra
.me
.meth
= LOCATE_syntax___typing___AVarAssignExpr___after_typing
;
4915 fra
.me
.has_broke
= 0;
4916 fra
.me
.REG_size
= 5;
4917 fra
.me
.nitni_local_ref_head
= NULL
;
4918 fra
.me
.REG
[0] = NIT_NULL
;
4919 fra
.me
.REG
[1] = NIT_NULL
;
4920 fra
.me
.REG
[2] = NIT_NULL
;
4921 fra
.me
.REG
[3] = NIT_NULL
;
4922 fra
.me
.REG
[4] = NIT_NULL
;
4925 /* syntax/typing.nit:821 */
4926 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4927 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4928 /* syntax/typing.nit:824 */
4929 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4930 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4931 fra
.me
.REG
[3] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4932 /* syntax/typing.nit:825 */
4933 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4934 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4935 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4936 if (UNTAG_Bool(REGB0
)) {
4939 /* syntax/typing.nit:826 */
4940 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4941 if (UNTAG_Bool(REGB0
)) {
4943 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
4944 if (UNTAG_Bool(REGB1
)) {
4945 REGB1
= TAG_Bool(0);
4948 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
4952 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4953 if (UNTAG_Bool(REGB0
)) {
4954 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4955 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]);
4956 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4958 REGB1
= TAG_Bool(0);
4961 if (UNTAG_Bool(REGB0
)) {
4964 /* syntax/typing.nit:829 */
4965 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4966 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4967 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4968 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4969 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]);
4970 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4971 /* syntax/typing.nit:831 */
4972 REGB0
= TAG_Bool(1);
4973 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
4975 stack_frame_head
= fra
.me
.prev
;
4978 static const char LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing
[] = "typing::AReassignFormExpr::do_rvalue_typing";
4979 val_t
syntax___typing___AReassignFormExpr___do_rvalue_typing(val_t p0
, val_t p1
, val_t p2
){
4980 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
4984 static val_t once_value_2
; /* Once value */
4985 static val_t once_value_3
; /* Once value */
4986 static val_t once_value_4
; /* Once value */
4987 static val_t once_value_5
; /* Once value */
4988 static val_t once_value_6
; /* Once value */
4989 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4990 fra
.me
.file
= LOCATE_syntax___typing
;
4992 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___do_rvalue_typing
;
4993 fra
.me
.has_broke
= 0;
4994 fra
.me
.REG_size
= 8;
4995 fra
.me
.nitni_local_ref_head
= NULL
;
4996 fra
.me
.REG
[0] = NIT_NULL
;
4997 fra
.me
.REG
[1] = NIT_NULL
;
4998 fra
.me
.REG
[2] = NIT_NULL
;
4999 fra
.me
.REG
[3] = NIT_NULL
;
5000 fra
.me
.REG
[4] = NIT_NULL
;
5001 fra
.me
.REG
[5] = NIT_NULL
;
5002 fra
.me
.REG
[6] = NIT_NULL
;
5003 fra
.me
.REG
[7] = NIT_NULL
;
5007 /* syntax/typing.nit:841 */
5008 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5009 if (UNTAG_Bool(REGB0
)) {
5011 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5012 if (UNTAG_Bool(REGB1
)) {
5013 REGB1
= TAG_Bool(0);
5016 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5020 if (UNTAG_Bool(REGB0
)) {
5021 /* syntax/typing.nit:842 */
5022 fra
.me
.REG
[3] = NIT_NULL
;
5025 /* syntax/typing.nit:844 */
5026 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5027 fra
.me
.REG
[4] = CALL_syntax___typing___AAssignOp___method_name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5028 /* syntax/typing.nit:845 */
5029 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*/;
5030 if (UNTAG_Bool(REGB0
)) {
5031 /* syntax/typing.nit:846 */
5033 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5034 if (!once_value_2
) {
5035 fra
.me
.REG
[6] = BOX_NativeString("Error: Method '");
5036 REGB0
= TAG_Int(15);
5037 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5038 once_value_2
= fra
.me
.REG
[6];
5039 register_static_object(&once_value_2
);
5040 } else fra
.me
.REG
[6] = once_value_2
;
5041 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5042 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5043 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5044 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5045 if (!once_value_3
) {
5046 fra
.me
.REG
[6] = BOX_NativeString("' call on 'null'.");
5047 REGB0
= TAG_Int(17);
5048 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5049 once_value_3
= fra
.me
.REG
[6];
5050 register_static_object(&once_value_3
);
5051 } else fra
.me
.REG
[6] = once_value_3
;
5052 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5053 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5054 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5055 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
5056 /* syntax/typing.nit:847 */
5057 fra
.me
.REG
[3] = NIT_NULL
;
5060 /* syntax/typing.nit:849 */
5061 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5062 if (UNTAG_Bool(REGB0
)) {
5063 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 849);
5065 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5066 /* syntax/typing.nit:850 */
5067 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5068 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5069 if (UNTAG_Bool(REGB0
)) {
5070 /* syntax/typing.nit:851 */
5072 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5073 if (!once_value_4
) {
5074 fra
.me
.REG
[7] = BOX_NativeString("Error: Method '");
5075 REGB0
= TAG_Int(15);
5076 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5077 once_value_4
= fra
.me
.REG
[7];
5078 register_static_object(&once_value_4
);
5079 } else fra
.me
.REG
[7] = once_value_4
;
5080 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5081 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5082 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5083 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5084 if (!once_value_5
) {
5085 fra
.me
.REG
[7] = BOX_NativeString("' doesn't exists in ");
5086 REGB0
= TAG_Int(20);
5087 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5088 once_value_5
= fra
.me
.REG
[7];
5089 register_static_object(&once_value_5
);
5090 } else fra
.me
.REG
[7] = once_value_5
;
5091 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5092 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5093 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5094 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5095 if (!once_value_6
) {
5096 fra
.me
.REG
[7] = BOX_NativeString(".");
5098 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
5099 once_value_6
= fra
.me
.REG
[7];
5100 register_static_object(&once_value_6
);
5101 } else fra
.me
.REG
[7] = once_value_6
;
5102 fra
.me
.REG
[7] = fra
.me
.REG
[7];
5103 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
5104 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5105 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
5106 /* syntax/typing.nit:852 */
5107 fra
.me
.REG
[3] = NIT_NULL
;
5110 /* syntax/typing.nit:854 */
5111 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5112 /* syntax/typing.nit:855 */
5113 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5114 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5115 REGB0
= TAG_Bool(0);
5116 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
);
5117 /* syntax/typing.nit:856 */
5118 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5119 /* syntax/typing.nit:857 */
5120 ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5121 /* syntax/typing.nit:858 */
5122 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5124 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
5125 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5126 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]);
5127 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5128 if (UNTAG_Bool(REGB0
)) {
5129 fra
.me
.REG
[3] = NIT_NULL
;
5132 /* syntax/typing.nit:859 */
5133 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5134 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5135 if (UNTAG_Bool(REGB0
)) {
5136 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 859);
5138 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5139 fra
.me
.REG
[3] = fra
.me
.REG
[2];
5142 stack_frame_head
= fra
.me
.prev
;
5143 return fra
.me
.REG
[3];
5145 static const char LOCATE_syntax___typing___AReassignFormExpr___assign_method
[] = "typing::AReassignFormExpr::(syntax_base::AReassignFormExpr::assign_method)";
5146 val_t
syntax___typing___AReassignFormExpr___assign_method(val_t p0
){
5147 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5150 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5151 fra
.me
.file
= LOCATE_syntax___typing
;
5153 fra
.me
.meth
= LOCATE_syntax___typing___AReassignFormExpr___assign_method
;
5154 fra
.me
.has_broke
= 0;
5155 fra
.me
.REG_size
= 2;
5156 fra
.me
.nitni_local_ref_head
= NULL
;
5157 fra
.me
.REG
[0] = NIT_NULL
;
5158 fra
.me
.REG
[1] = NIT_NULL
;
5160 /* syntax/typing.nit:862 */
5161 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5162 fra
.me
.REG
[1] = ATTR_syntax___typing___AReassignFormExpr____assign_method(fra
.me
.REG
[1]);
5163 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
5164 if (UNTAG_Bool(REGB0
)) {
5166 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 862);
5170 stack_frame_head
= fra
.me
.prev
;
5171 return fra
.me
.REG
[1];
5173 static const char LOCATE_syntax___typing___AVarReassignExpr___after_typing
[] = "typing::AVarReassignExpr::(typing::ANode::after_typing)";
5174 void syntax___typing___AVarReassignExpr___after_typing(val_t p0
, val_t p1
){
5175 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5179 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5180 fra
.me
.file
= LOCATE_syntax___typing
;
5182 fra
.me
.meth
= LOCATE_syntax___typing___AVarReassignExpr___after_typing
;
5183 fra
.me
.has_broke
= 0;
5184 fra
.me
.REG_size
= 5;
5185 fra
.me
.nitni_local_ref_head
= NULL
;
5186 fra
.me
.REG
[0] = NIT_NULL
;
5187 fra
.me
.REG
[1] = NIT_NULL
;
5188 fra
.me
.REG
[2] = NIT_NULL
;
5189 fra
.me
.REG
[3] = NIT_NULL
;
5190 fra
.me
.REG
[4] = NIT_NULL
;
5193 /* syntax/typing.nit:869 */
5194 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5195 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5196 CALL_syntax___flow___FlowContext___check_is_set(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[3]);
5197 /* syntax/typing.nit:870 */
5198 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5199 CALL_syntax___typing___TypingVisitor___mark_is_set(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5200 /* syntax/typing.nit:871 */
5201 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5202 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5203 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5204 /* syntax/typing.nit:872 */
5205 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]);
5206 /* syntax/typing.nit:873 */
5207 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5208 if (UNTAG_Bool(REGB0
)) {
5210 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5211 if (UNTAG_Bool(REGB1
)) {
5212 REGB1
= TAG_Bool(0);
5215 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5219 if (UNTAG_Bool(REGB0
)) {
5222 /* syntax/typing.nit:876 */
5223 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5224 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5225 fra
.me
.REG
[4] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5226 /* syntax/typing.nit:877 */
5227 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5228 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5229 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5230 if (UNTAG_Bool(REGB0
)) {
5233 /* syntax/typing.nit:878 */
5234 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5235 if (UNTAG_Bool(REGB0
)) {
5237 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5238 if (UNTAG_Bool(REGB1
)) {
5239 REGB1
= TAG_Bool(0);
5242 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5246 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5247 if (UNTAG_Bool(REGB0
)) {
5248 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5249 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]);
5250 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5252 REGB1
= TAG_Bool(0);
5255 if (UNTAG_Bool(REGB0
)) {
5258 /* syntax/typing.nit:881 */
5259 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5260 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5261 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]);
5262 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5263 /* syntax/typing.nit:883 */
5264 REGB0
= TAG_Bool(1);
5265 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5267 stack_frame_head
= fra
.me
.prev
;
5270 static const char LOCATE_syntax___typing___AAssignOp___method_name
[] = "typing::AAssignOp::method_name";
5271 val_t
syntax___typing___AAssignOp___method_name(val_t p0
){
5272 struct {struct stack_frame_t me
;} fra
;
5274 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5275 fra
.me
.file
= LOCATE_syntax___typing
;
5277 fra
.me
.meth
= LOCATE_syntax___typing___AAssignOp___method_name
;
5278 fra
.me
.has_broke
= 0;
5279 fra
.me
.REG_size
= 0;
5280 fra
.me
.nitni_local_ref_head
= NULL
;
5281 /* syntax/typing.nit:888 */
5282 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 888);
5283 stack_frame_head
= fra
.me
.prev
;
5286 static const char LOCATE_syntax___typing___APlusAssignOp___method_name
[] = "typing::APlusAssignOp::(typing::AAssignOp::method_name)";
5287 val_t
syntax___typing___APlusAssignOp___method_name(val_t p0
){
5288 struct {struct stack_frame_t me
;} fra
;
5291 static val_t once_value_1
; /* Once value */
5292 static val_t once_value_2
; /* Once value */
5293 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5294 fra
.me
.file
= LOCATE_syntax___typing
;
5296 fra
.me
.meth
= LOCATE_syntax___typing___APlusAssignOp___method_name
;
5297 fra
.me
.has_broke
= 0;
5298 fra
.me
.REG_size
= 1;
5299 fra
.me
.nitni_local_ref_head
= NULL
;
5300 fra
.me
.REG
[0] = NIT_NULL
;
5302 /* syntax/typing.nit:891 */
5303 if (!once_value_1
) {
5304 if (!once_value_2
) {
5305 fra
.me
.REG
[0] = BOX_NativeString("+");
5307 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5308 once_value_2
= fra
.me
.REG
[0];
5309 register_static_object(&once_value_2
);
5310 } else fra
.me
.REG
[0] = once_value_2
;
5311 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5312 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5313 once_value_1
= fra
.me
.REG
[0];
5314 register_static_object(&once_value_1
);
5315 } else fra
.me
.REG
[0] = once_value_1
;
5316 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5319 stack_frame_head
= fra
.me
.prev
;
5320 return fra
.me
.REG
[0];
5322 static const char LOCATE_syntax___typing___AMinusAssignOp___method_name
[] = "typing::AMinusAssignOp::(typing::AAssignOp::method_name)";
5323 val_t
syntax___typing___AMinusAssignOp___method_name(val_t p0
){
5324 struct {struct stack_frame_t me
;} fra
;
5327 static val_t once_value_1
; /* Once value */
5328 static val_t once_value_2
; /* Once value */
5329 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5330 fra
.me
.file
= LOCATE_syntax___typing
;
5332 fra
.me
.meth
= LOCATE_syntax___typing___AMinusAssignOp___method_name
;
5333 fra
.me
.has_broke
= 0;
5334 fra
.me
.REG_size
= 1;
5335 fra
.me
.nitni_local_ref_head
= NULL
;
5336 fra
.me
.REG
[0] = NIT_NULL
;
5338 /* syntax/typing.nit:894 */
5339 if (!once_value_1
) {
5340 if (!once_value_2
) {
5341 fra
.me
.REG
[0] = BOX_NativeString("-");
5343 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
5344 once_value_2
= fra
.me
.REG
[0];
5345 register_static_object(&once_value_2
);
5346 } else fra
.me
.REG
[0] = once_value_2
;
5347 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5348 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5349 once_value_1
= fra
.me
.REG
[0];
5350 register_static_object(&once_value_1
);
5351 } else fra
.me
.REG
[0] = once_value_1
;
5352 fra
.me
.REG
[0] = fra
.me
.REG
[0];
5355 stack_frame_head
= fra
.me
.prev
;
5356 return fra
.me
.REG
[0];
5358 static const char LOCATE_syntax___typing___ASelfExpr___variable
[] = "typing::ASelfExpr::(syntax_base::ASelfExpr::variable)";
5359 val_t
syntax___typing___ASelfExpr___variable(val_t p0
){
5360 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5363 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5364 fra
.me
.file
= LOCATE_syntax___typing
;
5366 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___variable
;
5367 fra
.me
.has_broke
= 0;
5368 fra
.me
.REG_size
= 2;
5369 fra
.me
.nitni_local_ref_head
= NULL
;
5370 fra
.me
.REG
[0] = NIT_NULL
;
5371 fra
.me
.REG
[1] = NIT_NULL
;
5373 /* syntax/typing.nit:899 */
5374 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5375 fra
.me
.REG
[1] = ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[1]);
5376 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
5377 if (UNTAG_Bool(REGB0
)) {
5379 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 899);
5383 stack_frame_head
= fra
.me
.prev
;
5384 return fra
.me
.REG
[1];
5386 static const char LOCATE_syntax___typing___ASelfExpr___its_variable
[] = "typing::ASelfExpr::(typing::AExpr::its_variable)";
5387 val_t
syntax___typing___ASelfExpr___its_variable(val_t p0
){
5388 struct {struct stack_frame_t me
;} fra
;
5390 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5391 fra
.me
.file
= LOCATE_syntax___typing
;
5393 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___its_variable
;
5394 fra
.me
.has_broke
= 0;
5395 fra
.me
.REG_size
= 1;
5396 fra
.me
.nitni_local_ref_head
= NULL
;
5397 fra
.me
.REG
[0] = NIT_NULL
;
5399 /* syntax/typing.nit:901 */
5400 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5403 stack_frame_head
= fra
.me
.prev
;
5404 return fra
.me
.REG
[0];
5406 static const char LOCATE_syntax___typing___ASelfExpr___after_typing
[] = "typing::ASelfExpr::(typing::ANode::after_typing)";
5407 void syntax___typing___ASelfExpr___after_typing(val_t p0
, val_t p1
){
5408 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5411 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5412 fra
.me
.file
= LOCATE_syntax___typing
;
5414 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___after_typing
;
5415 fra
.me
.has_broke
= 0;
5416 fra
.me
.REG_size
= 3;
5417 fra
.me
.nitni_local_ref_head
= NULL
;
5418 fra
.me
.REG
[0] = NIT_NULL
;
5419 fra
.me
.REG
[1] = NIT_NULL
;
5420 fra
.me
.REG
[2] = NIT_NULL
;
5423 /* syntax/typing.nit:905 */
5424 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5425 ATTR_syntax___typing___ASelfExpr____variable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5426 /* syntax/typing.nit:906 */
5427 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5428 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5429 fra
.me
.REG
[2] = CALL_syntax___flow___FlowContext___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5430 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5431 /* syntax/typing.nit:907 */
5432 REGB0
= TAG_Bool(1);
5433 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5434 stack_frame_head
= fra
.me
.prev
;
5437 static const char LOCATE_syntax___typing___ASelfExpr___is_self
[] = "typing::ASelfExpr::(typing::AExpr::is_self)";
5438 val_t
syntax___typing___ASelfExpr___is_self(val_t p0
){
5439 struct {struct stack_frame_t me
;} fra
;
5442 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5443 fra
.me
.file
= LOCATE_syntax___typing
;
5445 fra
.me
.meth
= LOCATE_syntax___typing___ASelfExpr___is_self
;
5446 fra
.me
.has_broke
= 0;
5447 fra
.me
.REG_size
= 1;
5448 fra
.me
.nitni_local_ref_head
= NULL
;
5449 fra
.me
.REG
[0] = NIT_NULL
;
5451 /* syntax/typing.nit:910 */
5452 REGB0
= TAG_Bool(1);
5455 stack_frame_head
= fra
.me
.prev
;
5458 static const char LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self
[] = "typing::AImplicitSelfExpr::(typing::AExpr::is_implicit_self)";
5459 val_t
syntax___typing___AImplicitSelfExpr___is_implicit_self(val_t p0
){
5460 struct {struct stack_frame_t me
;} fra
;
5463 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5464 fra
.me
.file
= LOCATE_syntax___typing
;
5466 fra
.me
.meth
= LOCATE_syntax___typing___AImplicitSelfExpr___is_implicit_self
;
5467 fra
.me
.has_broke
= 0;
5468 fra
.me
.REG_size
= 1;
5469 fra
.me
.nitni_local_ref_head
= NULL
;
5470 fra
.me
.REG
[0] = NIT_NULL
;
5472 /* syntax/typing.nit:914 */
5473 REGB0
= TAG_Bool(1);
5476 stack_frame_head
= fra
.me
.prev
;
5479 static const char LOCATE_syntax___typing___AIfexprExpr___accept_typing
[] = "typing::AIfexprExpr::(typing::ANode::accept_typing)";
5480 void syntax___typing___AIfexprExpr___accept_typing(val_t p0
, val_t p1
){
5481 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5485 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5486 fra
.me
.file
= LOCATE_syntax___typing
;
5488 fra
.me
.meth
= LOCATE_syntax___typing___AIfexprExpr___accept_typing
;
5489 fra
.me
.has_broke
= 0;
5490 fra
.me
.REG_size
= 5;
5491 fra
.me
.nitni_local_ref_head
= NULL
;
5492 fra
.me
.REG
[0] = NIT_NULL
;
5493 fra
.me
.REG
[1] = NIT_NULL
;
5494 fra
.me
.REG
[2] = NIT_NULL
;
5495 fra
.me
.REG
[3] = NIT_NULL
;
5496 fra
.me
.REG
[4] = NIT_NULL
;
5499 /* syntax/typing.nit:920 */
5500 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5501 /* syntax/typing.nit:923 */
5502 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5503 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5504 /* syntax/typing.nit:924 */
5505 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5506 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5507 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5508 /* syntax/typing.nit:927 */
5509 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5510 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5511 /* syntax/typing.nit:930 */
5512 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5513 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5514 /* syntax/typing.nit:933 */
5515 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5516 /* syntax/typing.nit:936 */
5517 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5518 /* syntax/typing.nit:937 */
5519 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5520 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5521 /* syntax/typing.nit:940 */
5522 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5523 CALL_syntax___typing___TypingVisitor___enter_visit_block(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5524 /* syntax/typing.nit:943 */
5525 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5526 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5527 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]);
5528 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5529 /* syntax/typing.nit:945 */
5531 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5532 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5534 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5535 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
5536 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]);
5537 /* syntax/typing.nit:946 */
5538 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5539 if (UNTAG_Bool(REGB0
)) {
5541 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5542 if (UNTAG_Bool(REGB1
)) {
5543 REGB1
= TAG_Bool(0);
5546 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5550 if (UNTAG_Bool(REGB0
)) {
5553 /* syntax/typing.nit:948 */
5554 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5555 /* syntax/typing.nit:949 */
5556 REGB0
= TAG_Bool(1);
5557 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5559 stack_frame_head
= fra
.me
.prev
;
5562 static const char LOCATE_syntax___typing___ABoolExpr___after_typing
[] = "typing::ABoolExpr::(typing::ANode::after_typing)";
5563 void syntax___typing___ABoolExpr___after_typing(val_t p0
, val_t p1
){
5564 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5567 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5568 fra
.me
.file
= LOCATE_syntax___typing
;
5570 fra
.me
.meth
= LOCATE_syntax___typing___ABoolExpr___after_typing
;
5571 fra
.me
.has_broke
= 0;
5572 fra
.me
.REG_size
= 2;
5573 fra
.me
.nitni_local_ref_head
= NULL
;
5574 fra
.me
.REG
[0] = NIT_NULL
;
5575 fra
.me
.REG
[1] = NIT_NULL
;
5578 /* syntax/typing.nit:956 */
5579 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5580 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5581 /* syntax/typing.nit:957 */
5582 REGB0
= TAG_Bool(1);
5583 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5584 stack_frame_head
= fra
.me
.prev
;
5587 static const char LOCATE_syntax___typing___AOrExpr___accept_typing
[] = "typing::AOrExpr::(typing::ANode::accept_typing)";
5588 void syntax___typing___AOrExpr___accept_typing(val_t p0
, val_t p1
){
5589 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5593 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5594 fra
.me
.file
= LOCATE_syntax___typing
;
5596 fra
.me
.meth
= LOCATE_syntax___typing___AOrExpr___accept_typing
;
5597 fra
.me
.has_broke
= 0;
5598 fra
.me
.REG_size
= 5;
5599 fra
.me
.nitni_local_ref_head
= NULL
;
5600 fra
.me
.REG
[0] = NIT_NULL
;
5601 fra
.me
.REG
[1] = NIT_NULL
;
5602 fra
.me
.REG
[2] = NIT_NULL
;
5603 fra
.me
.REG
[3] = NIT_NULL
;
5604 fra
.me
.REG
[4] = NIT_NULL
;
5607 /* syntax/typing.nit:964 */
5608 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5609 /* syntax/typing.nit:965 */
5610 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5611 /* syntax/typing.nit:966 */
5612 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5613 /* syntax/typing.nit:969 */
5614 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5615 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5616 /* syntax/typing.nit:972 */
5617 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5618 CALL_syntax___typing___TypingVisitor___use_if_false_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5619 /* syntax/typing.nit:975 */
5620 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5621 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5622 /* syntax/typing.nit:976 */
5623 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5624 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5625 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5626 if (UNTAG_Bool(REGB0
)) {
5628 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5629 if (UNTAG_Bool(REGB1
)) {
5630 REGB1
= TAG_Bool(0);
5633 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5637 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5638 if (UNTAG_Bool(REGB0
)) {
5639 /* syntax/typing.nit:977 */
5640 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5641 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_false_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5642 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5644 /* syntax/typing.nit:979 */
5645 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5646 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5648 /* syntax/typing.nit:982 */
5649 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5650 /* syntax/typing.nit:984 */
5651 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5652 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5653 /* syntax/typing.nit:985 */
5654 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5655 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5656 /* syntax/typing.nit:986 */
5657 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5658 /* syntax/typing.nit:987 */
5659 REGB0
= TAG_Bool(1);
5660 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5661 stack_frame_head
= fra
.me
.prev
;
5664 static const char LOCATE_syntax___typing___AAndExpr___accept_typing
[] = "typing::AAndExpr::(typing::ANode::accept_typing)";
5665 void syntax___typing___AAndExpr___accept_typing(val_t p0
, val_t p1
){
5666 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5670 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5671 fra
.me
.file
= LOCATE_syntax___typing
;
5673 fra
.me
.meth
= LOCATE_syntax___typing___AAndExpr___accept_typing
;
5674 fra
.me
.has_broke
= 0;
5675 fra
.me
.REG_size
= 5;
5676 fra
.me
.nitni_local_ref_head
= NULL
;
5677 fra
.me
.REG
[0] = NIT_NULL
;
5678 fra
.me
.REG
[1] = NIT_NULL
;
5679 fra
.me
.REG
[2] = NIT_NULL
;
5680 fra
.me
.REG
[3] = NIT_NULL
;
5681 fra
.me
.REG
[4] = NIT_NULL
;
5684 /* syntax/typing.nit:994 */
5685 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5686 /* syntax/typing.nit:995 */
5687 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5688 /* syntax/typing.nit:998 */
5689 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5690 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5691 /* syntax/typing.nit:1001 */
5692 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5693 CALL_syntax___typing___TypingVisitor___use_if_true_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5694 /* syntax/typing.nit:1004 */
5695 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5696 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
5697 /* syntax/typing.nit:1005 */
5698 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5699 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5700 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5701 if (UNTAG_Bool(REGB0
)) {
5703 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5704 if (UNTAG_Bool(REGB1
)) {
5705 REGB1
= TAG_Bool(0);
5708 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5712 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5713 if (UNTAG_Bool(REGB0
)) {
5714 /* syntax/typing.nit:1006 */
5715 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5716 fra
.me
.REG
[4] = CALL_syntax___typing___AExpr___if_true_flow_ctx(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5717 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5719 /* syntax/typing.nit:1008 */
5720 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5721 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
5723 /* syntax/typing.nit:1011 */
5724 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5725 /* syntax/typing.nit:1013 */
5726 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5727 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5728 /* syntax/typing.nit:1014 */
5729 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5730 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5731 /* syntax/typing.nit:1015 */
5732 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5733 /* syntax/typing.nit:1016 */
5734 REGB0
= TAG_Bool(1);
5735 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5736 stack_frame_head
= fra
.me
.prev
;
5739 static const char LOCATE_syntax___typing___ANotExpr___after_typing
[] = "typing::ANotExpr::(typing::ANode::after_typing)";
5740 void syntax___typing___ANotExpr___after_typing(val_t p0
, val_t p1
){
5741 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5744 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5745 fra
.me
.file
= LOCATE_syntax___typing
;
5747 fra
.me
.meth
= LOCATE_syntax___typing___ANotExpr___after_typing
;
5748 fra
.me
.has_broke
= 0;
5749 fra
.me
.REG_size
= 4;
5750 fra
.me
.nitni_local_ref_head
= NULL
;
5751 fra
.me
.REG
[0] = NIT_NULL
;
5752 fra
.me
.REG
[1] = NIT_NULL
;
5753 fra
.me
.REG
[2] = NIT_NULL
;
5754 fra
.me
.REG
[3] = NIT_NULL
;
5757 /* syntax/typing.nit:1023 */
5758 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5759 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5760 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5761 /* syntax/typing.nit:1026 */
5762 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5763 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[3]);
5764 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5765 /* syntax/typing.nit:1027 */
5766 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5767 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[3]);
5768 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
5769 /* syntax/typing.nit:1029 */
5770 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5771 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5772 /* syntax/typing.nit:1030 */
5773 REGB0
= TAG_Bool(1);
5774 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5775 stack_frame_head
= fra
.me
.prev
;
5778 static const char LOCATE_syntax___typing___AOrElseExpr___after_typing
[] = "typing::AOrElseExpr::(typing::ANode::after_typing)";
5779 void syntax___typing___AOrElseExpr___after_typing(val_t p0
, val_t p1
){
5780 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5784 static val_t once_value_1
; /* Once value */
5785 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5786 fra
.me
.file
= LOCATE_syntax___typing
;
5788 fra
.me
.meth
= LOCATE_syntax___typing___AOrElseExpr___after_typing
;
5789 fra
.me
.has_broke
= 0;
5790 fra
.me
.REG_size
= 7;
5791 fra
.me
.nitni_local_ref_head
= NULL
;
5792 fra
.me
.REG
[0] = NIT_NULL
;
5793 fra
.me
.REG
[1] = NIT_NULL
;
5794 fra
.me
.REG
[2] = NIT_NULL
;
5795 fra
.me
.REG
[3] = NIT_NULL
;
5796 fra
.me
.REG
[4] = NIT_NULL
;
5797 fra
.me
.REG
[5] = NIT_NULL
;
5798 fra
.me
.REG
[6] = NIT_NULL
;
5801 /* syntax/typing.nit:1037 */
5802 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5803 /* syntax/typing.nit:1040 */
5804 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5805 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5806 /* syntax/typing.nit:1041 */
5807 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5808 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5809 /* syntax/typing.nit:1044 */
5810 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5811 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5812 /* syntax/typing.nit:1045 */
5813 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5814 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5815 if (UNTAG_Bool(REGB0
)) {
5816 /* syntax/typing.nit:1046 */
5817 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5818 if (!once_value_1
) {
5819 fra
.me
.REG
[5] = BOX_NativeString("Warning: left operand of a 'or else' is not a nullable type.");
5820 REGB0
= TAG_Int(60);
5821 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5822 once_value_1
= fra
.me
.REG
[5];
5823 register_static_object(&once_value_1
);
5824 } else fra
.me
.REG
[5] = once_value_1
;
5825 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5826 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
5828 /* syntax/typing.nit:1048 */
5829 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5830 fra
.me
.REG
[3] = fra
.me
.REG
[5];
5832 /* syntax/typing.nit:1052 */
5833 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5834 fra
.me
.REG
[5] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5835 /* syntax/typing.nit:1053 */
5836 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5837 if (UNTAG_Bool(REGB0
)) {
5839 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5840 if (UNTAG_Bool(REGB1
)) {
5841 REGB1
= TAG_Bool(0);
5844 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
5848 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5849 if (UNTAG_Bool(REGB0
)) {
5850 /* syntax/typing.nit:1054 */
5851 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5852 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5853 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]);
5855 /* syntax/typing.nit:1058 */
5856 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5857 CALL_parser___parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5858 /* syntax/typing.nit:1059 */
5859 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5860 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
5861 /* syntax/typing.nit:1062 */
5862 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5863 /* syntax/typing.nit:1065 */
5865 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5866 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5867 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
5868 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]);
5869 /* syntax/typing.nit:1066 */
5870 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5871 if (UNTAG_Bool(REGB0
)) {
5873 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5874 if (UNTAG_Bool(REGB1
)) {
5875 REGB1
= TAG_Bool(0);
5878 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5882 if (UNTAG_Bool(REGB0
)) {
5885 /* syntax/typing.nit:1068 */
5886 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
5887 /* syntax/typing.nit:1069 */
5888 REGB0
= TAG_Bool(1);
5889 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5891 stack_frame_head
= fra
.me
.prev
;
5894 static const char LOCATE_syntax___typing___AIntExpr___after_typing
[] = "typing::AIntExpr::(typing::ANode::after_typing)";
5895 void syntax___typing___AIntExpr___after_typing(val_t p0
, val_t p1
){
5896 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5899 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5900 fra
.me
.file
= LOCATE_syntax___typing
;
5902 fra
.me
.meth
= LOCATE_syntax___typing___AIntExpr___after_typing
;
5903 fra
.me
.has_broke
= 0;
5904 fra
.me
.REG_size
= 2;
5905 fra
.me
.nitni_local_ref_head
= NULL
;
5906 fra
.me
.REG
[0] = NIT_NULL
;
5907 fra
.me
.REG
[1] = NIT_NULL
;
5910 /* syntax/typing.nit:1076 */
5911 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5912 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5913 /* syntax/typing.nit:1077 */
5914 REGB0
= TAG_Bool(1);
5915 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5916 stack_frame_head
= fra
.me
.prev
;
5919 static const char LOCATE_syntax___typing___AFloatExpr___after_typing
[] = "typing::AFloatExpr::(typing::ANode::after_typing)";
5920 void syntax___typing___AFloatExpr___after_typing(val_t p0
, val_t p1
){
5921 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5924 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5925 fra
.me
.file
= LOCATE_syntax___typing
;
5927 fra
.me
.meth
= LOCATE_syntax___typing___AFloatExpr___after_typing
;
5928 fra
.me
.has_broke
= 0;
5929 fra
.me
.REG_size
= 2;
5930 fra
.me
.nitni_local_ref_head
= NULL
;
5931 fra
.me
.REG
[0] = NIT_NULL
;
5932 fra
.me
.REG
[1] = NIT_NULL
;
5935 /* syntax/typing.nit:1084 */
5936 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5937 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5938 /* syntax/typing.nit:1085 */
5939 REGB0
= TAG_Bool(1);
5940 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5941 stack_frame_head
= fra
.me
.prev
;
5944 static const char LOCATE_syntax___typing___ACharExpr___after_typing
[] = "typing::ACharExpr::(typing::ANode::after_typing)";
5945 void syntax___typing___ACharExpr___after_typing(val_t p0
, val_t p1
){
5946 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5949 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5950 fra
.me
.file
= LOCATE_syntax___typing
;
5952 fra
.me
.meth
= LOCATE_syntax___typing___ACharExpr___after_typing
;
5953 fra
.me
.has_broke
= 0;
5954 fra
.me
.REG_size
= 2;
5955 fra
.me
.nitni_local_ref_head
= NULL
;
5956 fra
.me
.REG
[0] = NIT_NULL
;
5957 fra
.me
.REG
[1] = NIT_NULL
;
5960 /* syntax/typing.nit:1092 */
5961 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5962 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5963 /* syntax/typing.nit:1093 */
5964 REGB0
= TAG_Bool(1);
5965 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5966 stack_frame_head
= fra
.me
.prev
;
5969 static const char LOCATE_syntax___typing___AStringFormExpr___after_typing
[] = "typing::AStringFormExpr::(typing::ANode::after_typing)";
5970 void syntax___typing___AStringFormExpr___after_typing(val_t p0
, val_t p1
){
5971 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5974 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5975 fra
.me
.file
= LOCATE_syntax___typing
;
5977 fra
.me
.meth
= LOCATE_syntax___typing___AStringFormExpr___after_typing
;
5978 fra
.me
.has_broke
= 0;
5979 fra
.me
.REG_size
= 2;
5980 fra
.me
.nitni_local_ref_head
= NULL
;
5981 fra
.me
.REG
[0] = NIT_NULL
;
5982 fra
.me
.REG
[1] = NIT_NULL
;
5985 /* syntax/typing.nit:1100 */
5986 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5987 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
5988 /* syntax/typing.nit:1101 */
5989 REGB0
= TAG_Bool(1);
5990 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
5991 stack_frame_head
= fra
.me
.prev
;
5994 static const char LOCATE_syntax___typing___ASuperstringExpr___atype
[] = "typing::ASuperstringExpr::(syntax_base::ASuperstringExpr::atype)";
5995 val_t
syntax___typing___ASuperstringExpr___atype(val_t p0
){
5996 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5999 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6000 fra
.me
.file
= LOCATE_syntax___typing
;
6002 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___atype
;
6003 fra
.me
.has_broke
= 0;
6004 fra
.me
.REG_size
= 2;
6005 fra
.me
.nitni_local_ref_head
= NULL
;
6006 fra
.me
.REG
[0] = NIT_NULL
;
6007 fra
.me
.REG
[1] = NIT_NULL
;
6009 /* syntax/typing.nit:1106 */
6010 fra
.me
.REG
[1] = fra
.me
.REG
[0];
6011 fra
.me
.REG
[1] = ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[1]);
6012 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
6013 if (UNTAG_Bool(REGB0
)) {
6015 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1106);
6019 stack_frame_head
= fra
.me
.prev
;
6020 return fra
.me
.REG
[1];
6022 static const char LOCATE_syntax___typing___ASuperstringExpr___after_typing
[] = "typing::ASuperstringExpr::(typing::ANode::after_typing)";
6023 void syntax___typing___ASuperstringExpr___after_typing(val_t p0
, val_t p1
){
6024 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6027 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6028 fra
.me
.file
= LOCATE_syntax___typing
;
6030 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
6031 fra
.me
.has_broke
= 0;
6032 fra
.me
.REG_size
= 5;
6033 fra
.me
.nitni_local_ref_head
= NULL
;
6034 fra
.me
.REG
[0] = NIT_NULL
;
6035 fra
.me
.REG
[1] = NIT_NULL
;
6036 fra
.me
.REG
[2] = NIT_NULL
;
6037 fra
.me
.REG
[3] = NIT_NULL
;
6038 fra
.me
.REG
[4] = NIT_NULL
;
6041 /* syntax/typing.nit:1110 */
6042 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6043 /* syntax/typing.nit:1111 */
6044 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6045 /* syntax/typing.nit:1112 */
6046 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
6047 /* syntax/typing.nit:1113 */
6048 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6049 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
));
6050 /* syntax/typing.nit:1114 */
6051 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6052 /* syntax/typing.nit:1115 */
6053 ATTR_syntax___typing___ASuperstringExpr____atype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
6054 /* syntax/typing.nit:1116 */
6055 REGB0
= TAG_Bool(1);
6056 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6057 stack_frame_head
= fra
.me
.prev
;
6060 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
){
6061 struct {struct stack_frame_t me
;} fra
;
6064 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6065 fra
.me
.file
= LOCATE_syntax___typing
;
6067 fra
.me
.meth
= LOCATE_syntax___typing___ASuperstringExpr___after_typing
;
6068 fra
.me
.has_broke
= 0;
6069 fra
.me
.REG_size
= 1;
6070 fra
.me
.nitni_local_ref_head
= NULL
;
6071 fra
.me
.REG
[0] = NIT_NULL
;
6072 fra
.me
.closure_ctx
= closctx_param
;
6073 fra
.me
.closure_funs
= CREG
;
6075 CREG
[0] = clos_fun0
;
6076 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0], closctx
->REG
[2]);
6077 stack_frame_head
= fra
.me
.prev
;
6080 static const char LOCATE_syntax___typing___ANullExpr___after_typing
[] = "typing::ANullExpr::(typing::ANode::after_typing)";
6081 void syntax___typing___ANullExpr___after_typing(val_t p0
, val_t p1
){
6082 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6085 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6086 fra
.me
.file
= LOCATE_syntax___typing
;
6088 fra
.me
.meth
= LOCATE_syntax___typing___ANullExpr___after_typing
;
6089 fra
.me
.has_broke
= 0;
6090 fra
.me
.REG_size
= 2;
6091 fra
.me
.nitni_local_ref_head
= NULL
;
6092 fra
.me
.REG
[0] = NIT_NULL
;
6093 fra
.me
.REG
[1] = NIT_NULL
;
6096 /* syntax/typing.nit:1123 */
6097 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6098 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
6099 /* syntax/typing.nit:1124 */
6100 REGB0
= TAG_Bool(1);
6101 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6102 stack_frame_head
= fra
.me
.prev
;
6105 static const char LOCATE_syntax___typing___AArrayExpr___after_typing
[] = "typing::AArrayExpr::(typing::ANode::after_typing)";
6106 void syntax___typing___AArrayExpr___after_typing(val_t p0
, val_t p1
){
6107 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6111 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6112 fra
.me
.file
= LOCATE_syntax___typing
;
6114 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___after_typing
;
6115 fra
.me
.has_broke
= 0;
6116 fra
.me
.REG_size
= 3;
6117 fra
.me
.nitni_local_ref_head
= NULL
;
6118 fra
.me
.REG
[0] = NIT_NULL
;
6119 fra
.me
.REG
[1] = NIT_NULL
;
6120 fra
.me
.REG
[2] = NIT_NULL
;
6123 /* syntax/typing.nit:1131 */
6124 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6125 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6126 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]);
6127 /* syntax/typing.nit:1132 */
6128 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6129 if (UNTAG_Bool(REGB0
)) {
6131 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6132 if (UNTAG_Bool(REGB1
)) {
6133 REGB1
= TAG_Bool(0);
6136 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6140 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6141 if (UNTAG_Bool(REGB0
)) {
6142 CALL_syntax___typing___AArrayExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
6144 stack_frame_head
= fra
.me
.prev
;
6147 static const char LOCATE_syntax___typing___AArrayExpr___do_typing
[] = "typing::AArrayExpr::do_typing";
6148 void syntax___typing___AArrayExpr___do_typing(val_t p0
, val_t p1
, val_t p2
){
6149 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6152 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6153 fra
.me
.file
= LOCATE_syntax___typing
;
6155 fra
.me
.meth
= LOCATE_syntax___typing___AArrayExpr___do_typing
;
6156 fra
.me
.has_broke
= 0;
6157 fra
.me
.REG_size
= 3;
6158 fra
.me
.nitni_local_ref_head
= NULL
;
6159 fra
.me
.REG
[0] = NIT_NULL
;
6160 fra
.me
.REG
[1] = NIT_NULL
;
6161 fra
.me
.REG
[2] = NIT_NULL
;
6165 /* syntax/typing.nit:1137 */
6166 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6167 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
6168 /* syntax/typing.nit:1138 */
6169 REGB0
= TAG_Bool(1);
6170 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6171 stack_frame_head
= fra
.me
.prev
;
6174 static const char LOCATE_syntax___typing___ARangeExpr___after_typing
[] = "typing::ARangeExpr::(typing::ANode::after_typing)";
6175 void syntax___typing___ARangeExpr___after_typing(val_t p0
, val_t p1
){
6176 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
6180 static val_t once_value_2
; /* Once value */
6181 static val_t once_value_3
; /* Once value */
6182 static val_t once_value_4
; /* Once value */
6183 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6184 fra
.me
.file
= LOCATE_syntax___typing
;
6186 fra
.me
.meth
= LOCATE_syntax___typing___ARangeExpr___after_typing
;
6187 fra
.me
.has_broke
= 0;
6188 fra
.me
.REG_size
= 6;
6189 fra
.me
.nitni_local_ref_head
= NULL
;
6190 fra
.me
.REG
[0] = NIT_NULL
;
6191 fra
.me
.REG
[1] = NIT_NULL
;
6192 fra
.me
.REG
[2] = NIT_NULL
;
6193 fra
.me
.REG
[3] = NIT_NULL
;
6194 fra
.me
.REG
[4] = NIT_NULL
;
6195 fra
.me
.REG
[5] = NIT_NULL
;
6198 /* syntax/typing.nit:1145 */
6199 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6200 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6201 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6202 if (UNTAG_Bool(REGB0
)) {
6203 REGB0
= TAG_Bool(1);
6205 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6206 REGB1
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6207 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6210 if (UNTAG_Bool(REGB0
)) {
6213 /* syntax/typing.nit:1146 */
6214 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6215 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6216 /* syntax/typing.nit:1147 */
6217 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6218 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6219 /* syntax/typing.nit:1148 */
6220 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6221 if (UNTAG_Bool(REGB0
)) {
6222 /* syntax/typing.nit:1149 */
6223 fra
.me
.REG
[2] = fra
.me
.REG
[3];
6225 /* syntax/typing.nit:1150 */
6226 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
6227 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6228 if (UNTAG_Bool(REGB0
)) {
6229 /* syntax/typing.nit:1151 */
6231 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6232 if (!once_value_2
) {
6233 fra
.me
.REG
[5] = BOX_NativeString("Type error: ");
6234 REGB0
= TAG_Int(12);
6235 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6236 once_value_2
= fra
.me
.REG
[5];
6237 register_static_object(&once_value_2
);
6238 } else fra
.me
.REG
[5] = once_value_2
;
6239 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6240 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6241 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6242 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6243 if (!once_value_3
) {
6244 fra
.me
.REG
[5] = BOX_NativeString(" incompatible with ");
6245 REGB0
= TAG_Int(19);
6246 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6247 once_value_3
= fra
.me
.REG
[5];
6248 register_static_object(&once_value_3
);
6249 } else fra
.me
.REG
[5] = once_value_3
;
6250 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6251 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6252 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6253 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6254 if (!once_value_4
) {
6255 fra
.me
.REG
[3] = BOX_NativeString(".");
6257 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
6258 once_value_4
= fra
.me
.REG
[3];
6259 register_static_object(&once_value_4
);
6260 } else fra
.me
.REG
[3] = once_value_4
;
6261 fra
.me
.REG
[3] = fra
.me
.REG
[3];
6262 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6263 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6264 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
6265 /* syntax/typing.nit:1152 */
6269 /* syntax/typing.nit:1154 */
6270 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_discrete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6271 /* syntax/typing.nit:1155 */
6272 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6273 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]);
6274 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6275 if (UNTAG_Bool(REGB0
)) {
6276 REGB0
= TAG_Bool(1);
6278 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6279 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]);
6280 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6283 if (UNTAG_Bool(REGB0
)) {
6286 /* syntax/typing.nit:1156 */
6287 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6288 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
6289 /* syntax/typing.nit:1157 */
6290 REGB0
= TAG_Bool(1);
6291 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
6293 stack_frame_head
= fra
.me
.prev
;
6296 static const char LOCATE_syntax___typing___ASuperExpr___init_in_superclass
[] = "typing::ASuperExpr::(syntax_base::ASuperExpr::init_in_superclass)";
6297 val_t
syntax___typing___ASuperExpr___init_in_superclass(val_t p0
){
6298 struct {struct stack_frame_t me
;} fra
;
6300 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6301 fra
.me
.file
= LOCATE_syntax___typing
;
6303 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___init_in_superclass
;
6304 fra
.me
.has_broke
= 0;
6305 fra
.me
.REG_size
= 1;
6306 fra
.me
.nitni_local_ref_head
= NULL
;
6307 fra
.me
.REG
[0] = NIT_NULL
;
6309 /* syntax/typing.nit:1162 */
6310 fra
.me
.REG
[0] = ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[0]);
6311 stack_frame_head
= fra
.me
.prev
;
6312 return fra
.me
.REG
[0];
6314 static const char LOCATE_syntax___typing___ASuperExpr___compute_raw_arguments
[] = "typing::ASuperExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
6315 val_t
syntax___typing___ASuperExpr___compute_raw_arguments(val_t p0
){
6316 struct {struct stack_frame_t me
;} fra
;
6318 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6319 fra
.me
.file
= LOCATE_syntax___typing
;
6321 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___compute_raw_arguments
;
6322 fra
.me
.has_broke
= 0;
6323 fra
.me
.REG_size
= 1;
6324 fra
.me
.nitni_local_ref_head
= NULL
;
6325 fra
.me
.REG
[0] = NIT_NULL
;
6327 /* syntax/typing.nit:1163 */
6328 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6329 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6332 stack_frame_head
= fra
.me
.prev
;
6333 return fra
.me
.REG
[0];
6335 static const char LOCATE_syntax___typing___ASuperExpr___after_typing
[] = "typing::ASuperExpr::(typing::ANode::after_typing)";
6336 void syntax___typing___ASuperExpr___after_typing(val_t p0
, val_t p1
){
6337 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
6342 static val_t once_value_1
; /* Once value */
6343 static val_t once_value_2
; /* Once value */
6344 static val_t once_value_3
; /* Once value */
6345 static val_t once_value_5
; /* Once value */
6346 static val_t once_value_6
; /* Once value */
6347 static val_t once_value_8
; /* Once value */
6348 static val_t once_value_9
; /* Once value */
6349 static val_t once_value_10
; /* Once value */
6350 static val_t once_value_11
; /* Once value */
6351 static val_t once_value_12
; /* Once value */
6352 static val_t once_value_13
; /* Once value */
6353 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6354 fra
.me
.file
= LOCATE_syntax___typing
;
6356 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExpr___after_typing
;
6357 fra
.me
.has_broke
= 0;
6358 fra
.me
.REG_size
= 10;
6359 fra
.me
.nitni_local_ref_head
= NULL
;
6360 fra
.me
.REG
[0] = NIT_NULL
;
6361 fra
.me
.REG
[1] = NIT_NULL
;
6362 fra
.me
.REG
[2] = NIT_NULL
;
6363 fra
.me
.REG
[3] = NIT_NULL
;
6364 fra
.me
.REG
[4] = NIT_NULL
;
6365 fra
.me
.REG
[5] = NIT_NULL
;
6366 fra
.me
.REG
[6] = NIT_NULL
;
6367 fra
.me
.REG
[7] = NIT_NULL
;
6368 fra
.me
.REG
[8] = NIT_NULL
;
6369 fra
.me
.REG
[9] = NIT_NULL
;
6372 /* syntax/typing.nit:1164 */
6373 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6374 /* syntax/typing.nit:1166 */
6375 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6376 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6377 fra
.me
.REG
[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6378 /* syntax/typing.nit:1167 */
6379 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6380 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6381 if (UNTAG_Bool(REGB0
)) {
6382 /* syntax/typing.nit:1168 */
6383 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6384 REGB0
= TAG_Bool(1);
6385 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
6387 /* syntax/typing.nit:1169 */
6388 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6389 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6390 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6391 if (UNTAG_Bool(REGB0
)) {
6392 /* syntax/typing.nit:1170 */
6393 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6394 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6395 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6396 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6397 /* ../lib/standard/collection/array.nit:266 */
6398 fra
.me
.REG
[4] = fra
.me
.REG
[5];
6399 /* ../lib/standard/collection/array.nit:269 */
6401 /* ../lib/standard/collection/array.nit:270 */
6402 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6403 if (UNTAG_Bool(REGB1
)) {
6405 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6407 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6408 /* ../lib/standard/collection/array.nit:271 */
6409 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
6410 /* ../lib/standard/collection/array.nit:272 */
6412 /* ../lib/standard/collection/array.nit:24 */
6413 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6414 if (UNTAG_Bool(REGB1
)) {
6416 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6418 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6419 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6420 if (UNTAG_Bool(REGB2
)) {
6422 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6424 /* ../lib/standard/kernel.nit:235 */
6425 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6426 /* ../lib/standard/collection/array.nit:272 */
6427 if (UNTAG_Bool(REGB1
)) {
6428 /* ../lib/standard/collection/array.nit:273 */
6429 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6430 if (UNTAG_Bool(REGB1
)) {
6431 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6433 /* ../lib/standard/collection/array.nit:718 */
6434 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6435 /* syntax/typing.nit:1172 */
6436 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6437 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6438 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6439 if (UNTAG_Bool(REGB1
)) {
6440 /* syntax/typing.nit:1173 */
6442 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
6443 if (!once_value_1
) {
6444 fra
.me
.REG
[9] = BOX_NativeString("Error: ");
6446 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6447 once_value_1
= fra
.me
.REG
[9];
6448 register_static_object(&once_value_1
);
6449 } else fra
.me
.REG
[9] = once_value_1
;
6450 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6451 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6452 fra
.me
.REG
[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6453 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
6454 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6455 if (!once_value_2
) {
6456 fra
.me
.REG
[9] = BOX_NativeString("::");
6458 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6459 once_value_2
= fra
.me
.REG
[9];
6460 register_static_object(&once_value_2
);
6461 } else fra
.me
.REG
[9] = once_value_2
;
6462 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6463 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6464 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6465 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6466 if (!once_value_3
) {
6467 fra
.me
.REG
[9] = BOX_NativeString(" is not a constructor.");
6468 REGB1
= TAG_Int(22);
6469 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
6470 once_value_3
= fra
.me
.REG
[9];
6471 register_static_object(&once_value_3
);
6472 } else fra
.me
.REG
[9] = once_value_3
;
6473 fra
.me
.REG
[9] = fra
.me
.REG
[9];
6474 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
6475 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6476 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[8]);
6478 /* syntax/typing.nit:1175 */
6479 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6480 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6481 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6482 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
6484 /* ../lib/standard/collection/array.nit:274 */
6486 /* ../lib/standard/kernel.nit:238 */
6487 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6488 /* ../lib/standard/collection/array.nit:274 */
6491 /* ../lib/standard/collection/array.nit:272 */
6496 /* syntax/typing.nit:1178 */
6497 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6498 if (UNTAG_Bool(REGB0
)) {
6499 /* syntax/typing.nit:1179 */
6501 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6502 if (!once_value_5
) {
6503 fra
.me
.REG
[4] = BOX_NativeString("Error: No contructor named ");
6504 REGB0
= TAG_Int(27);
6505 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6506 once_value_5
= fra
.me
.REG
[4];
6507 register_static_object(&once_value_5
);
6508 } else fra
.me
.REG
[4] = once_value_5
;
6509 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6510 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6511 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6512 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6513 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6514 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6515 if (!once_value_6
) {
6516 fra
.me
.REG
[4] = BOX_NativeString(" in superclasses.");
6517 REGB0
= TAG_Int(17);
6518 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
6519 once_value_6
= fra
.me
.REG
[4];
6520 register_static_object(&once_value_6
);
6521 } else fra
.me
.REG
[4] = once_value_6
;
6522 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6523 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6524 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6525 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6526 /* syntax/typing.nit:1180 */
6529 /* ../lib/standard/collection/array.nit:24 */
6530 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6531 if (UNTAG_Bool(REGB0
)) {
6533 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6535 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6536 /* syntax/typing.nit:1181 */
6538 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6539 if (UNTAG_Bool(REGB2
)) {
6541 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6543 /* ../lib/standard/kernel.nit:237 */
6544 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
6545 /* syntax/typing.nit:1181 */
6546 if (UNTAG_Bool(REGB1
)) {
6547 /* syntax/typing.nit:1182 */
6549 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
6550 if (!once_value_8
) {
6551 fra
.me
.REG
[4] = BOX_NativeString("Error: Conflicting contructors named ");
6552 REGB1
= TAG_Int(37);
6553 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6554 once_value_8
= fra
.me
.REG
[4];
6555 register_static_object(&once_value_8
);
6556 } else fra
.me
.REG
[4] = once_value_8
;
6557 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6558 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6559 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6560 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6561 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6562 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6563 if (!once_value_9
) {
6564 fra
.me
.REG
[4] = BOX_NativeString(" in superclasses: ");
6565 REGB1
= TAG_Int(18);
6566 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6567 once_value_9
= fra
.me
.REG
[4];
6568 register_static_object(&once_value_9
);
6569 } else fra
.me
.REG
[4] = once_value_9
;
6570 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6571 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6572 if (!once_value_10
) {
6573 fra
.me
.REG
[4] = BOX_NativeString(", ");
6575 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6576 once_value_10
= fra
.me
.REG
[4];
6577 register_static_object(&once_value_10
);
6578 } else fra
.me
.REG
[4] = once_value_10
;
6579 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6580 fra
.me
.REG
[4] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6581 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6582 if (!once_value_11
) {
6583 fra
.me
.REG
[4] = BOX_NativeString(".");
6585 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
6586 once_value_11
= fra
.me
.REG
[4];
6587 register_static_object(&once_value_11
);
6588 } else fra
.me
.REG
[4] = once_value_11
;
6589 fra
.me
.REG
[4] = fra
.me
.REG
[4];
6590 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6591 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6592 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6593 /* syntax/typing.nit:1183 */
6597 /* syntax/typing.nit:1185 */
6598 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6599 /* syntax/typing.nit:1186 */
6600 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6601 if (UNTAG_Bool(REGB1
)) {
6603 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1186);
6605 /* syntax/typing.nit:1187 */
6606 ATTR_syntax___typing___ASuperExpr____init_in_superclass(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
6607 /* syntax/typing.nit:1188 */
6608 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[5]);
6609 /* syntax/typing.nit:1189 */
6610 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6611 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6612 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6614 REGB2
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
6615 if (UNTAG_Bool(REGB2
)) {
6617 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6619 /* ../lib/standard/kernel.nit:237 */
6620 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB0
));
6621 /* syntax/typing.nit:1189 */
6622 if (UNTAG_Bool(REGB0
)) {
6623 /* syntax/typing.nit:1190 */
6624 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6625 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6626 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*/;
6627 if (UNTAG_Bool(REGB0
)) {
6629 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1190);
6631 REGB0
= TAG_Bool(1);
6632 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
);
6633 /* syntax/typing.nit:1191 */
6634 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6635 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6636 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]);
6639 /* syntax/typing.nit:1194 */
6641 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6642 if (!once_value_12
) {
6643 fra
.me
.REG
[5] = BOX_NativeString("Error: No super method to call for ");
6644 REGB0
= TAG_Int(35);
6645 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6646 once_value_12
= fra
.me
.REG
[5];
6647 register_static_object(&once_value_12
);
6648 } else fra
.me
.REG
[5] = once_value_12
;
6649 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6650 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6651 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6652 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6653 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6654 if (!once_value_13
) {
6655 fra
.me
.REG
[5] = BOX_NativeString(".");
6657 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
6658 once_value_13
= fra
.me
.REG
[5];
6659 register_static_object(&once_value_13
);
6660 } else fra
.me
.REG
[5] = once_value_13
;
6661 fra
.me
.REG
[5] = fra
.me
.REG
[5];
6662 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6663 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6664 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
6665 /* syntax/typing.nit:1195 */
6669 /* syntax/typing.nit:1198 */
6670 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6671 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6672 fra
.me
.REG
[5] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6673 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*/;
6674 if (UNTAG_Bool(REGB0
)) {
6676 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1198);
6678 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6679 if (UNTAG_Bool(REGB0
)) {
6680 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1198);
6682 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6683 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6684 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6685 if (UNTAG_Bool(REGB0
)) {
6687 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6688 if (UNTAG_Bool(REGB1
)) {
6689 REGB1
= TAG_Bool(0);
6692 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6696 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6697 if (UNTAG_Bool(REGB0
)) {
6698 /* syntax/typing.nit:1199 */
6699 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___init();
6700 /* syntax/typing.nit:1200 */
6701 fra
.me
.REG
[4] = NIT_NULL
;
6702 /* ../lib/standard/collection/array.nit:269 */
6704 /* ../lib/standard/collection/array.nit:270 */
6705 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6706 if (UNTAG_Bool(REGB1
)) {
6708 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6710 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6711 /* ../lib/standard/collection/array.nit:271 */
6712 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
6713 /* ../lib/standard/collection/array.nit:272 */
6715 /* ../lib/standard/collection/array.nit:24 */
6716 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
6717 if (UNTAG_Bool(REGB1
)) {
6719 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6721 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
6722 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6723 if (UNTAG_Bool(REGB2
)) {
6725 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6727 /* ../lib/standard/kernel.nit:235 */
6728 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6729 /* ../lib/standard/collection/array.nit:272 */
6730 if (UNTAG_Bool(REGB1
)) {
6731 /* ../lib/standard/collection/array.nit:273 */
6732 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6733 if (UNTAG_Bool(REGB1
)) {
6734 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6736 /* ../lib/standard/collection/array.nit:718 */
6737 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6738 /* syntax/typing.nit:1202 */
6739 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
6740 if (UNTAG_Bool(REGB1
)) {
6742 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1202);
6744 /* syntax/typing.nit:1203 */
6745 fra
.me
.REG
[8] = CALL_syntax___typing___TypingVisitor___self_var(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6746 fra
.me
.REG
[8] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6747 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*/;
6748 if (UNTAG_Bool(REGB1
)) {
6750 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1203);
6752 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6753 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6754 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6755 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6756 if (UNTAG_Bool(REGB1
)) {
6757 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1203);
6759 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
6760 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6761 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6762 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6763 if (UNTAG_Bool(REGB1
)) {
6764 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1203);
6766 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6767 fra
.me
.REG
[8] = CALL_metamodel___static_type___MMType___adapt_to(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
6768 /* syntax/typing.nit:1204 */
6769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[8]);
6770 /* syntax/typing.nit:1205 */
6771 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6772 if (UNTAG_Bool(REGB1
)) {
6774 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6775 if (UNTAG_Bool(REGB2
)) {
6776 REGB2
= TAG_Bool(0);
6779 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6783 if (UNTAG_Bool(REGB1
)) {
6784 REGB1
= TAG_Bool(1);
6786 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6787 if (UNTAG_Bool(REGB2
)) {
6788 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1205);
6790 REGB2
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[8]);
6793 if (UNTAG_Bool(REGB1
)) {
6794 /* syntax/typing.nit:1206 */
6795 fra
.me
.REG
[4] = fra
.me
.REG
[8];
6797 /* ../lib/standard/collection/array.nit:274 */
6799 /* ../lib/standard/kernel.nit:238 */
6800 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6801 /* ../lib/standard/collection/array.nit:274 */
6804 /* ../lib/standard/collection/array.nit:272 */
6809 /* ../lib/standard/collection/array.nit:269 */
6811 /* ../lib/standard/collection/array.nit:270 */
6812 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
6813 if (UNTAG_Bool(REGB1
)) {
6815 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6817 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
6818 /* ../lib/standard/collection/array.nit:271 */
6819 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
6820 /* ../lib/standard/collection/array.nit:272 */
6822 /* ../lib/standard/collection/array.nit:24 */
6823 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
6824 if (UNTAG_Bool(REGB1
)) {
6826 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6828 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
6829 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6830 if (UNTAG_Bool(REGB2
)) {
6832 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6834 /* ../lib/standard/kernel.nit:235 */
6835 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6836 /* ../lib/standard/collection/array.nit:272 */
6837 if (UNTAG_Bool(REGB1
)) {
6838 /* ../lib/standard/collection/array.nit:273 */
6839 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6840 if (UNTAG_Bool(REGB1
)) {
6841 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6843 /* ../lib/standard/collection/array.nit:718 */
6844 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
6845 /* syntax/typing.nit:1210 */
6846 REGB1
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
6847 if (UNTAG_Bool(REGB1
)) {
6849 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1210);
6851 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]);
6852 /* ../lib/standard/collection/array.nit:274 */
6854 /* ../lib/standard/kernel.nit:238 */
6855 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6856 /* ../lib/standard/collection/array.nit:274 */
6859 /* ../lib/standard/collection/array.nit:272 */
6864 /* syntax/typing.nit:1212 */
6865 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
6867 /* syntax/typing.nit:1214 */
6868 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6869 /* syntax/typing.nit:1215 */
6870 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
6871 if (UNTAG_Bool(REGB0
)) {
6873 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1215);
6875 /* syntax/typing.nit:1216 */
6876 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
6877 /* syntax/typing.nit:1217 */
6878 REGB0
= TAG_Bool(1);
6879 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
6881 stack_frame_head
= fra
.me
.prev
;
6884 static const char LOCATE_syntax___typing___AExternCall___target_class_name
[] = "typing::AExternCall::target_class_name";
6885 val_t
syntax___typing___AExternCall___target_class_name(val_t p0
){
6886 struct {struct stack_frame_t me
;} fra
;
6888 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6889 fra
.me
.file
= LOCATE_syntax___typing
;
6891 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___target_class_name
;
6892 fra
.me
.has_broke
= 0;
6893 fra
.me
.REG_size
= 1;
6894 fra
.me
.nitni_local_ref_head
= NULL
;
6895 fra
.me
.REG
[0] = NIT_NULL
;
6897 /* syntax/typing.nit:1222 */
6898 fra
.me
.REG
[0] = NIT_NULL
;
6901 stack_frame_head
= fra
.me
.prev
;
6902 return fra
.me
.REG
[0];
6904 static const char LOCATE_syntax___typing___AExternCall___target_method_name
[] = "typing::AExternCall::target_method_name";
6905 val_t
syntax___typing___AExternCall___target_method_name(val_t p0
){
6906 struct {struct stack_frame_t me
;} fra
;
6908 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6909 fra
.me
.file
= LOCATE_syntax___typing
;
6911 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___target_method_name
;
6912 fra
.me
.has_broke
= 0;
6913 fra
.me
.REG_size
= 0;
6914 fra
.me
.nitni_local_ref_head
= NULL
;
6915 /* syntax/typing.nit:1223 */
6916 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1223);
6917 stack_frame_head
= fra
.me
.prev
;
6920 static const char LOCATE_syntax___typing___AExternCall___after_typing
[] = "typing::AExternCall::(typing::ANode::after_typing)";
6921 void syntax___typing___AExternCall___after_typing(val_t p0
, val_t p1
){
6922 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
6926 static val_t once_value_1
; /* Once value */
6927 static val_t once_value_2
; /* Once value */
6928 static val_t once_value_4
; /* Once value */
6929 static val_t once_value_5
; /* Once value */
6930 static val_t once_value_6
; /* Once value */
6931 static val_t once_value_7
; /* Once value */
6932 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6933 fra
.me
.file
= LOCATE_syntax___typing
;
6935 fra
.me
.meth
= LOCATE_syntax___typing___AExternCall___after_typing
;
6936 fra
.me
.has_broke
= 0;
6937 fra
.me
.REG_size
= 8;
6938 fra
.me
.nitni_local_ref_head
= NULL
;
6939 fra
.me
.REG
[0] = NIT_NULL
;
6940 fra
.me
.REG
[1] = NIT_NULL
;
6941 fra
.me
.REG
[2] = NIT_NULL
;
6942 fra
.me
.REG
[3] = NIT_NULL
;
6943 fra
.me
.REG
[4] = NIT_NULL
;
6944 fra
.me
.REG
[5] = NIT_NULL
;
6945 fra
.me
.REG
[6] = NIT_NULL
;
6946 fra
.me
.REG
[7] = NIT_NULL
;
6949 /* syntax/typing.nit:1225 */
6950 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6951 /* syntax/typing.nit:1227 */
6952 fra
.me
.REG
[3] = CALL_syntax___typing___AExternCall___target_class_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6953 /* syntax/typing.nit:1228 */
6954 fra
.me
.REG
[4] = CALL_syntax___typing___AExternCall___target_method_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6955 /* syntax/typing.nit:1235 */
6956 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6957 if (UNTAG_Bool(REGB0
)) {
6959 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6960 if (UNTAG_Bool(REGB1
)) {
6961 REGB1
= TAG_Bool(0);
6964 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
6968 if (UNTAG_Bool(REGB0
)) {
6969 /* syntax/typing.nit:1236 */
6970 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6971 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6973 /* syntax/typing.nit:1238 */
6974 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6975 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6976 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6977 if (UNTAG_Bool(REGB0
)) {
6978 /* syntax/typing.nit:1239 */
6979 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6980 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6981 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6982 /* syntax/typing.nit:1240 */
6983 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6984 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6985 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
6986 fra
.me
.REG
[5] = fra
.me
.REG
[6];
6988 /* syntax/typing.nit:1242 */
6990 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6991 if (!once_value_1
) {
6992 fra
.me
.REG
[7] = BOX_NativeString("Error: class ");
6993 REGB0
= TAG_Int(13);
6994 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
6995 once_value_1
= fra
.me
.REG
[7];
6996 register_static_object(&once_value_1
);
6997 } else fra
.me
.REG
[7] = once_value_1
;
6998 fra
.me
.REG
[7] = fra
.me
.REG
[7];
6999 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
7000 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7001 if (UNTAG_Bool(REGB0
)) {
7002 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1242);
7004 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7005 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7006 if (!once_value_2
) {
7007 fra
.me
.REG
[3] = BOX_NativeString(", not found.");
7008 REGB0
= TAG_Int(12);
7009 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
7010 once_value_2
= fra
.me
.REG
[3];
7011 register_static_object(&once_value_2
);
7012 } else fra
.me
.REG
[3] = once_value_2
;
7013 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7014 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7015 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7016 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
7017 /* syntax/typing.nit:1243 */
7021 /* syntax/typing.nit:1247 */
7022 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
7023 if (UNTAG_Bool(REGB0
)) {
7024 /* syntax/typing.nit:1248 */
7025 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
7026 /* syntax/typing.nit:1250 */
7027 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7028 /* syntax/typing.nit:1252 */
7029 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
7030 if (UNTAG_Bool(REGB0
)) {
7032 /* syntax/typing.nit:1255 */
7034 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7035 if (!once_value_4
) {
7036 fra
.me
.REG
[7] = BOX_NativeString("Error: property ");
7037 REGB0
= TAG_Int(16);
7038 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
7039 once_value_4
= fra
.me
.REG
[7];
7040 register_static_object(&once_value_4
);
7041 } else fra
.me
.REG
[7] = once_value_4
;
7042 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7043 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
7044 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7045 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
7046 if (!once_value_5
) {
7047 fra
.me
.REG
[7] = BOX_NativeString(" is not a method.");
7048 REGB0
= TAG_Int(17);
7049 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
7050 once_value_5
= fra
.me
.REG
[7];
7051 register_static_object(&once_value_5
);
7052 } else fra
.me
.REG
[7] = once_value_5
;
7053 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7054 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
7055 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7056 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
7057 /* syntax/typing.nit:1256 */
7061 /* syntax/typing.nit:1259 */
7063 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7064 if (!once_value_6
) {
7065 fra
.me
.REG
[7] = BOX_NativeString("Error: property ");
7066 REGB0
= TAG_Int(16);
7067 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
7068 once_value_6
= fra
.me
.REG
[7];
7069 register_static_object(&once_value_6
);
7070 } else fra
.me
.REG
[7] = once_value_6
;
7071 fra
.me
.REG
[7] = fra
.me
.REG
[7];
7072 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
7073 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7074 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
7075 if (!once_value_7
) {
7076 fra
.me
.REG
[4] = BOX_NativeString(" not found in target class.");
7077 REGB0
= TAG_Int(27);
7078 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
7079 once_value_7
= fra
.me
.REG
[4];
7080 register_static_object(&once_value_7
);
7081 } else fra
.me
.REG
[4] = once_value_7
;
7082 fra
.me
.REG
[4] = fra
.me
.REG
[4];
7083 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
7084 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7085 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
7086 /* syntax/typing.nit:1260 */
7089 /* syntax/typing.nit:1263 */
7090 fra
.me
.REG
[6] = NEW_MMExplicitImport_metamodel___abstractmetamodel___MMExplicitImport___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7091 /* syntax/typing.nit:1264 */
7092 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7093 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
7094 if (UNTAG_Bool(REGB0
)) {
7096 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1264);
7098 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7099 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
7101 stack_frame_head
= fra
.me
.prev
;
7104 static const char LOCATE_syntax___typing___ALocalPropExternCall___target_class_name
[] = "typing::ALocalPropExternCall::(typing::AExternCall::target_class_name)";
7105 val_t
syntax___typing___ALocalPropExternCall___target_class_name(val_t p0
){
7106 struct {struct stack_frame_t me
;} fra
;
7108 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7109 fra
.me
.file
= LOCATE_syntax___typing
;
7111 fra
.me
.meth
= LOCATE_syntax___typing___ALocalPropExternCall___target_class_name
;
7112 fra
.me
.has_broke
= 0;
7113 fra
.me
.REG_size
= 1;
7114 fra
.me
.nitni_local_ref_head
= NULL
;
7115 fra
.me
.REG
[0] = NIT_NULL
;
7117 /* syntax/typing.nit:1269 */
7118 fra
.me
.REG
[0] = NIT_NULL
;
7121 stack_frame_head
= fra
.me
.prev
;
7122 return fra
.me
.REG
[0];
7124 static const char LOCATE_syntax___typing___ALocalPropExternCall___target_method_name
[] = "typing::ALocalPropExternCall::(typing::AExternCall::target_method_name)";
7125 val_t
syntax___typing___ALocalPropExternCall___target_method_name(val_t p0
){
7126 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7129 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7130 fra
.me
.file
= LOCATE_syntax___typing
;
7132 fra
.me
.meth
= LOCATE_syntax___typing___ALocalPropExternCall___target_method_name
;
7133 fra
.me
.has_broke
= 0;
7134 fra
.me
.REG_size
= 2;
7135 fra
.me
.nitni_local_ref_head
= NULL
;
7136 fra
.me
.REG
[0] = NIT_NULL
;
7137 fra
.me
.REG
[1] = NIT_NULL
;
7139 /* syntax/typing.nit:1270 */
7140 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7141 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ALocalPropExternCall___n_methid(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7142 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethid___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7143 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_symbol___Symbol
, ID_symbol___Symbol
)) /*cast Symbol*/;
7144 if (UNTAG_Bool(REGB0
)) {
7146 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1270);
7150 stack_frame_head
= fra
.me
.prev
;
7151 return fra
.me
.REG
[1];
7153 static const char LOCATE_syntax___typing___ASuperExternCall___after_typing
[] = "typing::ASuperExternCall::(typing::ANode::after_typing)";
7154 void syntax___typing___ASuperExternCall___after_typing(val_t p0
, val_t p1
){
7155 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7158 static val_t once_value_1
; /* Once value */
7159 static val_t once_value_2
; /* Once value */
7160 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7161 fra
.me
.file
= LOCATE_syntax___typing
;
7163 fra
.me
.meth
= LOCATE_syntax___typing___ASuperExternCall___after_typing
;
7164 fra
.me
.has_broke
= 0;
7165 fra
.me
.REG_size
= 4;
7166 fra
.me
.nitni_local_ref_head
= NULL
;
7167 fra
.me
.REG
[0] = NIT_NULL
;
7168 fra
.me
.REG
[1] = NIT_NULL
;
7169 fra
.me
.REG
[2] = NIT_NULL
;
7170 fra
.me
.REG
[3] = NIT_NULL
;
7173 /* syntax/typing.nit:1276 */
7174 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7175 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7176 fra
.me
.REG
[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7177 /* syntax/typing.nit:1277 */
7178 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7179 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7180 if (UNTAG_Bool(REGB0
)) {
7181 /* syntax/typing.nit:1278 */
7182 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7183 REGB0
= TAG_Bool(1);
7184 CALL_metamodel___abstractmetamodel___MMLocalProperty___need_super__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
7186 /* syntax/typing.nit:1280 */
7188 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7189 if (!once_value_1
) {
7190 fra
.me
.REG
[3] = BOX_NativeString("Error: No super method to call for ");
7191 REGB0
= TAG_Int(35);
7192 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
7193 once_value_1
= fra
.me
.REG
[3];
7194 register_static_object(&once_value_1
);
7195 } else fra
.me
.REG
[3] = once_value_1
;
7196 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7197 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7198 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7199 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7200 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7201 if (!once_value_2
) {
7202 fra
.me
.REG
[3] = BOX_NativeString(".");
7204 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
7205 once_value_2
= fra
.me
.REG
[3];
7206 register_static_object(&once_value_2
);
7207 } else fra
.me
.REG
[3] = once_value_2
;
7208 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7209 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7210 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7211 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
7212 /* syntax/typing.nit:1281 */
7216 stack_frame_head
= fra
.me
.prev
;
7219 static const char LOCATE_syntax___typing___AFullPropExternCall___target_class_name
[] = "typing::AFullPropExternCall::(typing::AExternCall::target_class_name)";
7220 val_t
syntax___typing___AFullPropExternCall___target_class_name(val_t p0
){
7221 struct {struct stack_frame_t me
;} fra
;
7223 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7224 fra
.me
.file
= LOCATE_syntax___typing
;
7226 fra
.me
.meth
= LOCATE_syntax___typing___AFullPropExternCall___target_class_name
;
7227 fra
.me
.has_broke
= 0;
7228 fra
.me
.REG_size
= 1;
7229 fra
.me
.nitni_local_ref_head
= NULL
;
7230 fra
.me
.REG
[0] = NIT_NULL
;
7232 /* syntax/typing.nit:1287 */
7233 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AFullPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7234 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7237 stack_frame_head
= fra
.me
.prev
;
7238 return fra
.me
.REG
[0];
7240 static const char LOCATE_syntax___typing___AFullPropExternCall___target_method_name
[] = "typing::AFullPropExternCall::(typing::AExternCall::target_method_name)";
7241 val_t
syntax___typing___AFullPropExternCall___target_method_name(val_t p0
){
7242 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7245 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7246 fra
.me
.file
= LOCATE_syntax___typing
;
7248 fra
.me
.meth
= LOCATE_syntax___typing___AFullPropExternCall___target_method_name
;
7249 fra
.me
.has_broke
= 0;
7250 fra
.me
.REG_size
= 2;
7251 fra
.me
.nitni_local_ref_head
= NULL
;
7252 fra
.me
.REG
[0] = NIT_NULL
;
7253 fra
.me
.REG
[1] = NIT_NULL
;
7255 /* syntax/typing.nit:1288 */
7256 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7257 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AFullPropExternCall___n_methid(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7258 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethid___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7259 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_symbol___Symbol
, ID_symbol___Symbol
)) /*cast Symbol*/;
7260 if (UNTAG_Bool(REGB0
)) {
7262 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1288);
7266 stack_frame_head
= fra
.me
.prev
;
7267 return fra
.me
.REG
[1];
7269 static const char LOCATE_syntax___typing___AInitPropExternCall___target_class_name
[] = "typing::AInitPropExternCall::(typing::AExternCall::target_class_name)";
7270 val_t
syntax___typing___AInitPropExternCall___target_class_name(val_t p0
){
7271 struct {struct stack_frame_t me
;} fra
;
7273 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7274 fra
.me
.file
= LOCATE_syntax___typing
;
7276 fra
.me
.meth
= LOCATE_syntax___typing___AInitPropExternCall___target_class_name
;
7277 fra
.me
.has_broke
= 0;
7278 fra
.me
.REG_size
= 1;
7279 fra
.me
.nitni_local_ref_head
= NULL
;
7280 fra
.me
.REG
[0] = NIT_NULL
;
7282 /* syntax/typing.nit:1292 */
7283 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitPropExternCall___n_classid(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7284 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7287 stack_frame_head
= fra
.me
.prev
;
7288 return fra
.me
.REG
[0];
7290 static const char LOCATE_syntax___typing___AInitPropExternCall___target_method_name
[] = "typing::AInitPropExternCall::(typing::AExternCall::target_method_name)";
7291 val_t
syntax___typing___AInitPropExternCall___target_method_name(val_t p0
){
7292 struct {struct stack_frame_t me
;} fra
;
7295 static val_t once_value_1
; /* Once value */
7296 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7297 fra
.me
.file
= LOCATE_syntax___typing
;
7299 fra
.me
.meth
= LOCATE_syntax___typing___AInitPropExternCall___target_method_name
;
7300 fra
.me
.has_broke
= 0;
7301 fra
.me
.REG_size
= 1;
7302 fra
.me
.nitni_local_ref_head
= NULL
;
7303 fra
.me
.REG
[0] = NIT_NULL
;
7305 /* syntax/typing.nit:1293 */
7306 if (!once_value_1
) {
7307 fra
.me
.REG
[0] = BOX_NativeString("init");
7309 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
7310 once_value_1
= fra
.me
.REG
[0];
7311 register_static_object(&once_value_1
);
7312 } else fra
.me
.REG
[0] = once_value_1
;
7313 fra
.me
.REG
[0] = fra
.me
.REG
[0];
7314 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7317 stack_frame_head
= fra
.me
.prev
;
7318 return fra
.me
.REG
[0];
7320 static const char LOCATE_syntax___typing___ACastExternCall___from_type
[] = "typing::ACastExternCall::from_type";
7321 val_t
syntax___typing___ACastExternCall___from_type(val_t p0
){
7322 struct {struct stack_frame_t me
;} fra
;
7324 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7325 fra
.me
.file
= LOCATE_syntax___typing
;
7327 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___from_type
;
7328 fra
.me
.has_broke
= 0;
7329 fra
.me
.REG_size
= 0;
7330 fra
.me
.nitni_local_ref_head
= NULL
;
7331 /* syntax/typing.nit:1297 */
7332 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1297);
7333 stack_frame_head
= fra
.me
.prev
;
7336 static const char LOCATE_syntax___typing___ACastExternCall___to_type
[] = "typing::ACastExternCall::to_type";
7337 val_t
syntax___typing___ACastExternCall___to_type(val_t p0
){
7338 struct {struct stack_frame_t me
;} fra
;
7340 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7341 fra
.me
.file
= LOCATE_syntax___typing
;
7343 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___to_type
;
7344 fra
.me
.has_broke
= 0;
7345 fra
.me
.REG_size
= 0;
7346 fra
.me
.nitni_local_ref_head
= NULL
;
7347 /* syntax/typing.nit:1298 */
7348 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1298);
7349 stack_frame_head
= fra
.me
.prev
;
7352 static const char LOCATE_syntax___typing___ACastExternCall___after_typing
[] = "typing::ACastExternCall::(typing::ANode::after_typing)";
7353 void syntax___typing___ACastExternCall___after_typing(val_t p0
, val_t p1
){
7354 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7358 static val_t once_value_1
; /* Once value */
7359 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7360 fra
.me
.file
= LOCATE_syntax___typing
;
7362 fra
.me
.meth
= LOCATE_syntax___typing___ACastExternCall___after_typing
;
7363 fra
.me
.has_broke
= 0;
7364 fra
.me
.REG_size
= 4;
7365 fra
.me
.nitni_local_ref_head
= NULL
;
7366 fra
.me
.REG
[0] = NIT_NULL
;
7367 fra
.me
.REG
[1] = NIT_NULL
;
7368 fra
.me
.REG
[2] = NIT_NULL
;
7369 fra
.me
.REG
[3] = NIT_NULL
;
7372 /* syntax/typing.nit:1302 */
7373 fra
.me
.REG
[2] = CALL_syntax___typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7374 fra
.me
.REG
[3] = CALL_syntax___typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7375 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
7376 if (UNTAG_Bool(REGB0
)) {
7378 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7381 if (UNTAG_Bool(REGB0
)) {
7382 /* syntax/typing.nit:1304 */
7383 if (!once_value_1
) {
7384 fra
.me
.REG
[3] = BOX_NativeString("Attepting to cast from and to the same type.");
7385 REGB0
= TAG_Int(44);
7386 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
7387 once_value_1
= fra
.me
.REG
[3];
7388 register_static_object(&once_value_1
);
7389 } else fra
.me
.REG
[3] = once_value_1
;
7390 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7391 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
7393 /* syntax/typing.nit:1307 */
7394 fra
.me
.REG
[3] = CALL_syntax___typing___ACastExternCall___from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7395 fra
.me
.REG
[2] = CALL_syntax___typing___ACastExternCall___to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7396 fra
.me
.REG
[2] = NEW_MMImportedCast_metamodel___static_type___MMImportedCast___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
7397 /* syntax/typing.nit:1308 */
7398 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7399 /* syntax/typing.nit:1309 */
7400 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
7401 if (UNTAG_Bool(REGB0
)) {
7403 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1309);
7405 /* syntax/typing.nit:1310 */
7406 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMMethod___explicit_casts(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7407 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7408 stack_frame_head
= fra
.me
.prev
;
7411 static const char LOCATE_syntax___typing___ACastAsExternCall___from_type
[] = "typing::ACastAsExternCall::(typing::ACastExternCall::from_type)";
7412 val_t
syntax___typing___ACastAsExternCall___from_type(val_t p0
){
7413 struct {struct stack_frame_t me
;} fra
;
7415 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7416 fra
.me
.file
= LOCATE_syntax___typing
;
7418 fra
.me
.meth
= LOCATE_syntax___typing___ACastAsExternCall___from_type
;
7419 fra
.me
.has_broke
= 0;
7420 fra
.me
.REG_size
= 1;
7421 fra
.me
.nitni_local_ref_head
= NULL
;
7422 fra
.me
.REG
[0] = NIT_NULL
;
7424 /* syntax/typing.nit:1315 */
7425 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_from_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7426 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7429 stack_frame_head
= fra
.me
.prev
;
7430 return fra
.me
.REG
[0];
7432 static const char LOCATE_syntax___typing___ACastAsExternCall___to_type
[] = "typing::ACastAsExternCall::(typing::ACastExternCall::to_type)";
7433 val_t
syntax___typing___ACastAsExternCall___to_type(val_t p0
){
7434 struct {struct stack_frame_t me
;} fra
;
7436 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7437 fra
.me
.file
= LOCATE_syntax___typing
;
7439 fra
.me
.meth
= LOCATE_syntax___typing___ACastAsExternCall___to_type
;
7440 fra
.me
.has_broke
= 0;
7441 fra
.me
.REG_size
= 1;
7442 fra
.me
.nitni_local_ref_head
= NULL
;
7443 fra
.me
.REG
[0] = NIT_NULL
;
7445 /* syntax/typing.nit:1316 */
7446 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACastAsExternCall___n_to_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7447 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7450 stack_frame_head
= fra
.me
.prev
;
7451 return fra
.me
.REG
[0];
7453 static const char LOCATE_syntax___typing___AAsNullableExternCall___from_type
[] = "typing::AAsNullableExternCall::(typing::ACastExternCall::from_type)";
7454 val_t
syntax___typing___AAsNullableExternCall___from_type(val_t p0
){
7455 struct {struct stack_frame_t me
;} fra
;
7457 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7458 fra
.me
.file
= LOCATE_syntax___typing
;
7460 fra
.me
.meth
= LOCATE_syntax___typing___AAsNullableExternCall___from_type
;
7461 fra
.me
.has_broke
= 0;
7462 fra
.me
.REG_size
= 1;
7463 fra
.me
.nitni_local_ref_head
= NULL
;
7464 fra
.me
.REG
[0] = NIT_NULL
;
7466 /* syntax/typing.nit:1320 */
7467 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7468 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7471 stack_frame_head
= fra
.me
.prev
;
7472 return fra
.me
.REG
[0];
7474 static const char LOCATE_syntax___typing___AAsNullableExternCall___to_type
[] = "typing::AAsNullableExternCall::(typing::ACastExternCall::to_type)";
7475 val_t
syntax___typing___AAsNullableExternCall___to_type(val_t p0
){
7476 struct {struct stack_frame_t me
;} fra
;
7478 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7479 fra
.me
.file
= LOCATE_syntax___typing
;
7481 fra
.me
.meth
= LOCATE_syntax___typing___AAsNullableExternCall___to_type
;
7482 fra
.me
.has_broke
= 0;
7483 fra
.me
.REG_size
= 1;
7484 fra
.me
.nitni_local_ref_head
= NULL
;
7485 fra
.me
.REG
[0] = NIT_NULL
;
7487 /* syntax/typing.nit:1321 */
7488 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7489 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7490 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7493 stack_frame_head
= fra
.me
.prev
;
7494 return fra
.me
.REG
[0];
7496 static const char LOCATE_syntax___typing___AAsNotNullableExternCall___from_type
[] = "typing::AAsNotNullableExternCall::(typing::ACastExternCall::from_type)";
7497 val_t
syntax___typing___AAsNotNullableExternCall___from_type(val_t p0
){
7498 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7501 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7502 fra
.me
.file
= LOCATE_syntax___typing
;
7504 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotNullableExternCall___from_type
;
7505 fra
.me
.has_broke
= 0;
7506 fra
.me
.REG_size
= 2;
7507 fra
.me
.nitni_local_ref_head
= NULL
;
7508 fra
.me
.REG
[0] = NIT_NULL
;
7509 fra
.me
.REG
[1] = NIT_NULL
;
7511 /* syntax/typing.nit:1327 */
7512 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7513 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7514 /* syntax/typing.nit:1328 */
7515 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7516 if (UNTAG_Bool(REGB0
)) {
7517 /* syntax/typing.nit:1330 */
7518 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7521 /* syntax/typing.nit:1332 */
7522 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7523 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7527 stack_frame_head
= fra
.me
.prev
;
7528 return fra
.me
.REG
[1];
7530 static const char LOCATE_syntax___typing___AAsNotNullableExternCall___to_type
[] = "typing::AAsNotNullableExternCall::(typing::ACastExternCall::to_type)";
7531 val_t
syntax___typing___AAsNotNullableExternCall___to_type(val_t p0
){
7532 struct {struct stack_frame_t me
;} fra
;
7534 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7535 fra
.me
.file
= LOCATE_syntax___typing
;
7537 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotNullableExternCall___to_type
;
7538 fra
.me
.has_broke
= 0;
7539 fra
.me
.REG_size
= 1;
7540 fra
.me
.nitni_local_ref_head
= NULL
;
7541 fra
.me
.REG
[0] = NIT_NULL
;
7543 /* syntax/typing.nit:1335 */
7544 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAsNotNullableExternCall___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7545 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7546 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7549 stack_frame_head
= fra
.me
.prev
;
7550 return fra
.me
.REG
[0];
7552 static const char LOCATE_syntax___typing___AAttrFormExpr___prop
[] = "typing::AAttrFormExpr::(syntax_base::AAttrFormExpr::prop)";
7553 val_t
syntax___typing___AAttrFormExpr___prop(val_t p0
){
7554 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7557 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7558 fra
.me
.file
= LOCATE_syntax___typing
;
7560 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___prop
;
7561 fra
.me
.has_broke
= 0;
7562 fra
.me
.REG_size
= 2;
7563 fra
.me
.nitni_local_ref_head
= NULL
;
7564 fra
.me
.REG
[0] = NIT_NULL
;
7565 fra
.me
.REG
[1] = NIT_NULL
;
7567 /* syntax/typing.nit:1339 */
7568 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7569 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[1]);
7570 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7571 if (UNTAG_Bool(REGB0
)) {
7573 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1339);
7577 stack_frame_head
= fra
.me
.prev
;
7578 return fra
.me
.REG
[1];
7580 static const char LOCATE_syntax___typing___AAttrFormExpr___attr_type
[] = "typing::AAttrFormExpr::(syntax_base::AAttrFormExpr::attr_type)";
7581 val_t
syntax___typing___AAttrFormExpr___attr_type(val_t p0
){
7582 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7585 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7586 fra
.me
.file
= LOCATE_syntax___typing
;
7588 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___attr_type
;
7589 fra
.me
.has_broke
= 0;
7590 fra
.me
.REG_size
= 2;
7591 fra
.me
.nitni_local_ref_head
= NULL
;
7592 fra
.me
.REG
[0] = NIT_NULL
;
7593 fra
.me
.REG
[1] = NIT_NULL
;
7595 /* syntax/typing.nit:1342 */
7596 fra
.me
.REG
[1] = fra
.me
.REG
[0];
7597 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[1]);
7598 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
7599 if (UNTAG_Bool(REGB0
)) {
7601 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1342);
7605 stack_frame_head
= fra
.me
.prev
;
7606 return fra
.me
.REG
[1];
7608 static const char LOCATE_syntax___typing___AAttrFormExpr___do_typing
[] = "typing::AAttrFormExpr::do_typing";
7609 void syntax___typing___AAttrFormExpr___do_typing(val_t p0
, val_t p1
){
7610 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
7615 static val_t once_value_2
; /* Once value */
7616 static val_t once_value_3
; /* Once value */
7617 static val_t once_value_4
; /* Once value */
7618 static val_t once_value_5
; /* Once value */
7619 static val_t once_value_6
; /* Once value */
7620 static val_t once_value_7
; /* Once value */
7621 static val_t once_value_8
; /* Once value */
7622 static val_t once_value_9
; /* Once value */
7623 static val_t once_value_10
; /* Once value */
7624 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7625 fra
.me
.file
= LOCATE_syntax___typing
;
7627 fra
.me
.meth
= LOCATE_syntax___typing___AAttrFormExpr___do_typing
;
7628 fra
.me
.has_broke
= 0;
7629 fra
.me
.REG_size
= 7;
7630 fra
.me
.nitni_local_ref_head
= NULL
;
7631 fra
.me
.REG
[0] = NIT_NULL
;
7632 fra
.me
.REG
[1] = NIT_NULL
;
7633 fra
.me
.REG
[2] = NIT_NULL
;
7634 fra
.me
.REG
[3] = NIT_NULL
;
7635 fra
.me
.REG
[4] = NIT_NULL
;
7636 fra
.me
.REG
[5] = NIT_NULL
;
7637 fra
.me
.REG
[6] = NIT_NULL
;
7640 /* syntax/typing.nit:1348 */
7641 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7642 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7643 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7644 if (UNTAG_Bool(REGB0
)) {
7647 /* syntax/typing.nit:1349 */
7648 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7649 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7650 /* syntax/typing.nit:1350 */
7651 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7652 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7653 /* syntax/typing.nit:1351 */
7654 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
7655 if (UNTAG_Bool(REGB0
)) {
7656 /* syntax/typing.nit:1352 */
7658 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7659 if (!once_value_2
) {
7660 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute '");
7661 REGB0
= TAG_Int(18);
7662 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
7663 once_value_2
= fra
.me
.REG
[5];
7664 register_static_object(&once_value_2
);
7665 } else fra
.me
.REG
[5] = once_value_2
;
7666 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7667 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7668 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7669 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7670 if (!once_value_3
) {
7671 fra
.me
.REG
[5] = BOX_NativeString("' access on 'null'.");
7672 REGB0
= TAG_Int(19);
7673 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
7674 once_value_3
= fra
.me
.REG
[5];
7675 register_static_object(&once_value_3
);
7676 } else fra
.me
.REG
[5] = once_value_3
;
7677 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7678 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
7679 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7680 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
7681 /* syntax/typing.nit:1353 */
7684 /* syntax/typing.nit:1355 */
7685 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7686 /* syntax/typing.nit:1356 */
7687 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7688 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7689 if (UNTAG_Bool(REGB0
)) {
7690 /* syntax/typing.nit:1357 */
7692 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
7693 if (!once_value_4
) {
7694 fra
.me
.REG
[6] = BOX_NativeString("Error: Attribute ");
7695 REGB0
= TAG_Int(17);
7696 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7697 once_value_4
= fra
.me
.REG
[6];
7698 register_static_object(&once_value_4
);
7699 } else fra
.me
.REG
[6] = once_value_4
;
7700 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7701 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7702 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7703 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7704 if (!once_value_5
) {
7705 fra
.me
.REG
[6] = BOX_NativeString(" doesn't exists in ");
7706 REGB0
= TAG_Int(19);
7707 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7708 once_value_5
= fra
.me
.REG
[6];
7709 register_static_object(&once_value_5
);
7710 } else fra
.me
.REG
[6] = once_value_5
;
7711 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7712 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7713 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7714 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7715 if (!once_value_6
) {
7716 fra
.me
.REG
[6] = BOX_NativeString(".");
7718 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
7719 once_value_6
= fra
.me
.REG
[6];
7720 register_static_object(&once_value_6
);
7721 } else fra
.me
.REG
[6] = once_value_6
;
7722 fra
.me
.REG
[6] = fra
.me
.REG
[6];
7723 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7724 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7725 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
7726 /* syntax/typing.nit:1358 */
7729 /* syntax/typing.nit:1360 */
7730 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_attribute(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7731 /* syntax/typing.nit:1361 */
7732 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7733 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7734 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7735 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7736 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___visibility_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
7738 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
7739 if (UNTAG_Bool(REGB2
)) {
7741 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
7743 /* ../lib/standard/kernel.nit:235 */
7744 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
7745 /* syntax/typing.nit:1361 */
7746 if (UNTAG_Bool(REGB1
)) {
7747 /* syntax/typing.nit:1362 */
7749 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
7750 if (!once_value_7
) {
7751 fra
.me
.REG
[5] = BOX_NativeString("Error: Attribute ");
7752 REGB1
= TAG_Int(17);
7753 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
7754 once_value_7
= fra
.me
.REG
[5];
7755 register_static_object(&once_value_7
);
7756 } else fra
.me
.REG
[5] = once_value_7
;
7757 fra
.me
.REG
[5] = fra
.me
.REG
[5];
7758 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
7759 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7760 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7761 if (!once_value_8
) {
7762 fra
.me
.REG
[3] = BOX_NativeString(" from ");
7764 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7765 once_value_8
= fra
.me
.REG
[3];
7766 register_static_object(&once_value_8
);
7767 } else fra
.me
.REG
[3] = once_value_8
;
7768 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7770 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7771 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7772 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
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_9
) {
7776 fra
.me
.REG
[3] = BOX_NativeString(" is invisible in ");
7777 REGB1
= TAG_Int(17);
7778 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7779 once_value_9
= fra
.me
.REG
[3];
7780 register_static_object(&once_value_9
);
7781 } else fra
.me
.REG
[3] = once_value_9
;
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_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7785 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7786 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7787 if (!once_value_10
) {
7788 fra
.me
.REG
[3] = BOX_NativeString("");
7790 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
7791 once_value_10
= fra
.me
.REG
[3];
7792 register_static_object(&once_value_10
);
7793 } else fra
.me
.REG
[3] = once_value_10
;
7794 fra
.me
.REG
[3] = fra
.me
.REG
[3];
7795 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
7796 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7797 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[6]);
7799 /* syntax/typing.nit:1364 */
7800 ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
7801 /* syntax/typing.nit:1365 */
7802 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
7803 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7804 /* syntax/typing.nit:1366 */
7805 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7806 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7807 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
7808 if (UNTAG_Bool(REGB1
)) {
7809 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7810 if (UNTAG_Bool(REGB1
)) {
7811 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1366);
7813 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7814 fra
.me
.REG
[2] = fra
.me
.REG
[4];
7816 /* syntax/typing.nit:1367 */
7817 ATTR_syntax___typing___AAttrFormExpr____attr_type(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
7819 stack_frame_head
= fra
.me
.prev
;
7822 static const char LOCATE_syntax___typing___AAttrExpr___after_typing
[] = "typing::AAttrExpr::(typing::ANode::after_typing)";
7823 void syntax___typing___AAttrExpr___after_typing(val_t p0
, val_t p1
){
7824 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7828 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7829 fra
.me
.file
= LOCATE_syntax___typing
;
7831 fra
.me
.meth
= LOCATE_syntax___typing___AAttrExpr___after_typing
;
7832 fra
.me
.has_broke
= 0;
7833 fra
.me
.REG_size
= 2;
7834 fra
.me
.nitni_local_ref_head
= NULL
;
7835 fra
.me
.REG
[0] = NIT_NULL
;
7836 fra
.me
.REG
[1] = NIT_NULL
;
7839 /* syntax/typing.nit:1374 */
7840 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7841 /* syntax/typing.nit:1375 */
7842 fra
.me
.REG
[1] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7843 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7844 if (UNTAG_Bool(REGB0
)) {
7846 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
7847 if (UNTAG_Bool(REGB1
)) {
7848 REGB1
= TAG_Bool(0);
7851 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
7855 if (UNTAG_Bool(REGB0
)) {
7858 /* syntax/typing.nit:1376 */
7859 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7860 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
7861 /* syntax/typing.nit:1377 */
7862 REGB0
= TAG_Bool(1);
7863 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7865 stack_frame_head
= fra
.me
.prev
;
7868 static const char LOCATE_syntax___typing___AAttrAssignExpr___after_typing
[] = "typing::AAttrAssignExpr::(typing::ANode::after_typing)";
7869 void syntax___typing___AAttrAssignExpr___after_typing(val_t p0
, val_t p1
){
7870 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7874 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7875 fra
.me
.file
= LOCATE_syntax___typing
;
7877 fra
.me
.meth
= LOCATE_syntax___typing___AAttrAssignExpr___after_typing
;
7878 fra
.me
.has_broke
= 0;
7879 fra
.me
.REG_size
= 4;
7880 fra
.me
.nitni_local_ref_head
= NULL
;
7881 fra
.me
.REG
[0] = NIT_NULL
;
7882 fra
.me
.REG
[1] = NIT_NULL
;
7883 fra
.me
.REG
[2] = NIT_NULL
;
7884 fra
.me
.REG
[3] = NIT_NULL
;
7887 /* syntax/typing.nit:1384 */
7888 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7889 /* syntax/typing.nit:1385 */
7890 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7891 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7892 if (UNTAG_Bool(REGB0
)) {
7894 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7895 if (UNTAG_Bool(REGB1
)) {
7896 REGB1
= TAG_Bool(0);
7899 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7903 if (UNTAG_Bool(REGB0
)) {
7906 /* syntax/typing.nit:1386 */
7907 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7908 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7909 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]);
7910 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7911 if (UNTAG_Bool(REGB0
)) {
7914 /* syntax/typing.nit:1387 */
7915 REGB0
= TAG_Bool(1);
7916 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7918 stack_frame_head
= fra
.me
.prev
;
7921 static const char LOCATE_syntax___typing___AAttrReassignExpr___after_typing
[] = "typing::AAttrReassignExpr::(typing::ANode::after_typing)";
7922 void syntax___typing___AAttrReassignExpr___after_typing(val_t p0
, val_t p1
){
7923 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7927 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7928 fra
.me
.file
= LOCATE_syntax___typing
;
7930 fra
.me
.meth
= LOCATE_syntax___typing___AAttrReassignExpr___after_typing
;
7931 fra
.me
.has_broke
= 0;
7932 fra
.me
.REG_size
= 4;
7933 fra
.me
.nitni_local_ref_head
= NULL
;
7934 fra
.me
.REG
[0] = NIT_NULL
;
7935 fra
.me
.REG
[1] = NIT_NULL
;
7936 fra
.me
.REG
[2] = NIT_NULL
;
7937 fra
.me
.REG
[3] = NIT_NULL
;
7940 /* syntax/typing.nit:1394 */
7941 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
7942 /* syntax/typing.nit:1395 */
7943 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
7944 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7945 if (UNTAG_Bool(REGB0
)) {
7947 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7948 if (UNTAG_Bool(REGB1
)) {
7949 REGB1
= TAG_Bool(0);
7952 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7956 if (UNTAG_Bool(REGB0
)) {
7959 /* syntax/typing.nit:1396 */
7960 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7961 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]);
7962 /* syntax/typing.nit:1397 */
7963 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7964 if (UNTAG_Bool(REGB0
)) {
7966 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7967 if (UNTAG_Bool(REGB1
)) {
7968 REGB1
= TAG_Bool(0);
7971 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7975 if (UNTAG_Bool(REGB0
)) {
7978 /* syntax/typing.nit:1398 */
7979 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7980 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7981 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]);
7982 /* syntax/typing.nit:1399 */
7983 REGB0
= TAG_Bool(1);
7984 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
7986 stack_frame_head
= fra
.me
.prev
;
7989 static const char LOCATE_syntax___typing___AIssetAttrExpr___after_typing
[] = "typing::AIssetAttrExpr::(typing::ANode::after_typing)";
7990 void syntax___typing___AIssetAttrExpr___after_typing(val_t p0
, val_t p1
){
7991 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
7995 static val_t once_value_2
; /* Once value */
7996 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7997 fra
.me
.file
= LOCATE_syntax___typing
;
7999 fra
.me
.meth
= LOCATE_syntax___typing___AIssetAttrExpr___after_typing
;
8000 fra
.me
.has_broke
= 0;
8001 fra
.me
.REG_size
= 3;
8002 fra
.me
.nitni_local_ref_head
= NULL
;
8003 fra
.me
.REG
[0] = NIT_NULL
;
8004 fra
.me
.REG
[1] = NIT_NULL
;
8005 fra
.me
.REG
[2] = NIT_NULL
;
8008 /* syntax/typing.nit:1406 */
8009 CALL_syntax___typing___AAttrFormExpr___do_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
8010 /* syntax/typing.nit:1407 */
8011 fra
.me
.REG
[2] = ATTR_syntax___typing___AAttrFormExpr____prop(fra
.me
.REG
[0]);
8012 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
8013 if (UNTAG_Bool(REGB0
)) {
8015 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
8016 if (UNTAG_Bool(REGB1
)) {
8017 REGB1
= TAG_Bool(0);
8020 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
8024 if (UNTAG_Bool(REGB0
)) {
8027 /* syntax/typing.nit:1408 */
8028 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8029 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8030 if (UNTAG_Bool(REGB0
)) {
8031 /* syntax/typing.nit:1409 */
8032 if (!once_value_2
) {
8033 fra
.me
.REG
[2] = BOX_NativeString("Error: isset on a nullable attribute.");
8034 REGB0
= TAG_Int(37);
8035 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
8036 once_value_2
= fra
.me
.REG
[2];
8037 register_static_object(&once_value_2
);
8038 } else fra
.me
.REG
[2] = once_value_2
;
8039 fra
.me
.REG
[2] = fra
.me
.REG
[2];
8040 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
8042 /* syntax/typing.nit:1411 */
8043 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8044 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
8045 /* syntax/typing.nit:1412 */
8046 REGB0
= TAG_Bool(1);
8047 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
8049 stack_frame_head
= fra
.me
.prev
;
8052 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___prop_signature
[] = "typing::AAbsAbsSendExpr::(syntax_base::AAbsAbsSendExpr::prop_signature)";
8053 val_t
syntax___typing___AAbsAbsSendExpr___prop_signature(val_t p0
){
8054 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
8057 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8058 fra
.me
.file
= LOCATE_syntax___typing
;
8060 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___prop_signature
;
8061 fra
.me
.has_broke
= 0;
8062 fra
.me
.REG_size
= 2;
8063 fra
.me
.nitni_local_ref_head
= NULL
;
8064 fra
.me
.REG
[0] = NIT_NULL
;
8065 fra
.me
.REG
[1] = NIT_NULL
;
8067 /* syntax/typing.nit:1417 */
8068 fra
.me
.REG
[1] = fra
.me
.REG
[0];
8069 /* syntax/typing.nit:1418 */
8070 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[1]);
8071 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
8072 if (UNTAG_Bool(REGB0
)) {
8074 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1418);
8078 stack_frame_head
= fra
.me
.prev
;
8079 return fra
.me
.REG
[1];
8081 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___raw_arguments
[] = "typing::AAbsAbsSendExpr::(syntax_base::AAbsAbsSendExpr::raw_arguments)";
8082 val_t
syntax___typing___AAbsAbsSendExpr___raw_arguments(val_t p0
){
8083 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
8087 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8088 fra
.me
.file
= LOCATE_syntax___typing
;
8090 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___raw_arguments
;
8091 fra
.me
.has_broke
= 0;
8092 fra
.me
.REG_size
= 4;
8093 fra
.me
.nitni_local_ref_head
= NULL
;
8094 fra
.me
.REG
[0] = NIT_NULL
;
8095 fra
.me
.REG
[1] = NIT_NULL
;
8096 fra
.me
.REG
[2] = NIT_NULL
;
8097 fra
.me
.REG
[3] = NIT_NULL
;
8099 /* syntax/typing.nit:1424 */
8100 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]);
8101 /* syntax/typing.nit:1425 */
8102 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
8103 if (UNTAG_Bool(REGB0
)) {
8105 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
8106 if (UNTAG_Bool(REGB1
)) {
8107 REGB1
= TAG_Bool(0);
8110 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
8114 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8115 if (UNTAG_Bool(REGB0
)) {
8116 /* syntax/typing.nit:1426 */
8117 fra
.me
.REG
[2] = fra
.me
.REG
[1];
8120 /* syntax/typing.nit:1428 */
8121 fra
.me
.REG
[3] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8122 fra
.me
.REG
[1] = fra
.me
.REG
[3];
8123 /* syntax/typing.nit:1429 */
8124 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
8125 if (UNTAG_Bool(REGB0
)) {
8127 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
8128 if (UNTAG_Bool(REGB1
)) {
8129 REGB1
= TAG_Bool(0);
8132 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
8136 if (UNTAG_Bool(REGB0
)) {
8137 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
8138 fra
.me
.REG
[1] = fra
.me
.REG
[3];
8140 /* syntax/typing.nit:1430 */
8141 ATTR_syntax___typing___AAbsAbsSendExpr____raw_arguments_cache(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
8142 /* syntax/typing.nit:1431 */
8143 fra
.me
.REG
[2] = fra
.me
.REG
[1];
8147 stack_frame_head
= fra
.me
.prev
;
8148 return fra
.me
.REG
[2];
8150 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments
[] = "typing::AAbsAbsSendExpr::compute_raw_arguments";
8151 val_t
syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(val_t p0
){
8152 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
8155 static val_t once_value_1
; /* Once value */
8156 static val_t once_value_2
; /* Once value */
8157 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8158 fra
.me
.file
= LOCATE_syntax___typing
;
8160 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments
;
8161 fra
.me
.has_broke
= 0;
8162 fra
.me
.REG_size
= 3;
8163 fra
.me
.nitni_local_ref_head
= NULL
;
8164 fra
.me
.REG
[0] = NIT_NULL
;
8165 fra
.me
.REG
[1] = NIT_NULL
;
8166 fra
.me
.REG
[2] = NIT_NULL
;
8168 /* syntax/typing.nit:1439 */
8170 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
8171 if (!once_value_1
) {
8172 fra
.me
.REG
[2] = BOX_NativeString("");
8174 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
8175 once_value_1
= fra
.me
.REG
[2];
8176 register_static_object(&once_value_1
);
8177 } else fra
.me
.REG
[2] = once_value_1
;
8178 fra
.me
.REG
[2] = fra
.me
.REG
[2];
8179 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8180 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8181 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8182 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8183 if (!once_value_2
) {
8184 fra
.me
.REG
[2] = BOX_NativeString(" no compute_raw_arguments");
8185 REGB0
= TAG_Int(25);
8186 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
8187 once_value_2
= fra
.me
.REG
[2];
8188 register_static_object(&once_value_2
);
8189 } else fra
.me
.REG
[2] = once_value_2
;
8190 fra
.me
.REG
[2] = fra
.me
.REG
[2];
8191 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8192 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8193 CALL_standard___file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
8194 /* syntax/typing.nit:1440 */
8195 fra
.me
.REG
[1] = NIT_NULL
;
8198 stack_frame_head
= fra
.me
.prev
;
8199 return fra
.me
.REG
[1];
8201 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___process_signature
[] = "typing::AAbsAbsSendExpr::process_signature";
8202 val_t
syntax___typing___AAbsAbsSendExpr___process_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8203 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
8217 static val_t once_value_1
; /* Once value */
8218 static val_t once_value_2
; /* Once value */
8219 static val_t once_value_3
; /* Once value */
8220 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8221 fra
.me
.file
= LOCATE_syntax___typing
;
8223 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_signature
;
8224 fra
.me
.has_broke
= 0;
8225 fra
.me
.REG_size
= 7;
8226 fra
.me
.nitni_local_ref_head
= NULL
;
8227 fra
.me
.REG
[0] = NIT_NULL
;
8228 fra
.me
.REG
[1] = NIT_NULL
;
8229 fra
.me
.REG
[2] = NIT_NULL
;
8230 fra
.me
.REG
[3] = NIT_NULL
;
8231 fra
.me
.REG
[4] = NIT_NULL
;
8232 fra
.me
.REG
[5] = NIT_NULL
;
8233 fra
.me
.REG
[6] = NIT_NULL
;
8239 /* syntax/typing.nit:1446 */
8240 REGB0
= CALL_metamodel___vararg___MMSignature___vararg_rank(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8241 /* syntax/typing.nit:1447 */
8242 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8243 /* syntax/typing.nit:1449 */
8244 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8245 if (UNTAG_Bool(REGB2
)) {
8247 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8248 if (UNTAG_Bool(REGB3
)) {
8249 REGB3
= TAG_Bool(0);
8252 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8256 if (UNTAG_Bool(REGB2
)) {
8259 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8260 if (UNTAG_Bool(REGB3
)) {
8261 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1449);
8263 /* ../lib/standard/collection/array.nit:24 */
8264 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8265 if (UNTAG_Bool(REGB3
)) {
8267 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8269 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8270 /* syntax/typing.nit:1449 */
8273 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8274 if (UNTAG_Bool(REGB3
)) {
8276 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8278 /* ../lib/standard/kernel.nit:237 */
8279 REGB3
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8280 /* syntax/typing.nit:1450 */
8281 if (UNTAG_Bool(REGB3
)) {
8282 REGB3
= TAG_Bool(1);
8284 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
8285 if (UNTAG_Bool(REGB4
)) {
8287 /* ../lib/standard/kernel.nit:230 */
8288 REGB5
= TAG_Bool((REGB1
)==(REGB2
));
8289 /* syntax/typing.nit:1450 */
8292 REGB4
= TAG_Bool(!UNTAG_Bool(REGB4
));
8293 if (UNTAG_Bool(REGB4
)) {
8295 /* ../lib/standard/kernel.nit:239 */
8296 REGB4
= TAG_Int(-UNTAG_Int(REGB4
));
8297 /* syntax/typing.nit:1450 */
8298 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB4
));
8299 if (UNTAG_Bool(REGB5
)) {
8301 /* ../lib/standard/kernel.nit:230 */
8302 REGB4
= TAG_Bool((REGB0
)==(REGB4
));
8303 /* syntax/typing.nit:1450 */
8307 REGB4
= TAG_Bool(0);
8312 if (UNTAG_Bool(REGB3
)) {
8313 /* syntax/typing.nit:1451 */
8315 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3
);
8316 if (!once_value_1
) {
8317 fra
.me
.REG
[6] = BOX_NativeString("Error: arity mismatch; prototype is '");
8318 REGB3
= TAG_Int(37);
8319 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB3
);
8320 once_value_1
= fra
.me
.REG
[6];
8321 register_static_object(&once_value_1
);
8322 } else fra
.me
.REG
[6] = once_value_1
;
8323 fra
.me
.REG
[6] = fra
.me
.REG
[6];
8324 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
8325 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8326 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8327 if (!once_value_2
) {
8328 fra
.me
.REG
[3] = BOX_NativeString("");
8330 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB3
);
8331 once_value_2
= fra
.me
.REG
[3];
8332 register_static_object(&once_value_2
);
8333 } else fra
.me
.REG
[3] = once_value_2
;
8334 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8335 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8336 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8337 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8338 if (!once_value_3
) {
8339 fra
.me
.REG
[3] = BOX_NativeString("'.");
8341 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB3
);
8342 once_value_3
= fra
.me
.REG
[3];
8343 register_static_object(&once_value_3
);
8344 } else fra
.me
.REG
[3] = once_value_3
;
8345 fra
.me
.REG
[3] = fra
.me
.REG
[3];
8346 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
8347 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8348 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8349 /* syntax/typing.nit:1452 */
8350 REGB3
= TAG_Bool(0);
8353 /* syntax/typing.nit:1454 */
8355 /* syntax/typing.nit:1455 */
8357 /* ../lib/standard/kernel.nit:350 */
8359 /* ../lib/standard/kernel.nit:355 */
8361 REGB7
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
8362 if (UNTAG_Bool(REGB7
)) {
8364 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8366 /* ../lib/standard/kernel.nit:235 */
8367 REGB7
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB6
));
8368 /* ../lib/standard/kernel.nit:355 */
8369 if (UNTAG_Bool(REGB7
)) {
8370 /* syntax/typing.nit:1455 */
8372 /* syntax/typing.nit:1457 */
8373 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB7
);
8374 /* syntax/typing.nit:1458 */
8375 REGB8
= TAG_Bool(IS_EQUAL_OO(REGB7
,REGB0
));
8376 if (UNTAG_Bool(REGB8
)) {
8378 /* ../lib/standard/kernel.nit:230 */
8379 REGB7
= TAG_Bool((REGB7
)==(REGB0
));
8380 /* syntax/typing.nit:1458 */
8383 if (UNTAG_Bool(REGB8
)) {
8384 /* syntax/typing.nit:1459 */
8386 /* ../lib/standard/kernel.nit:240 */
8387 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB1
));
8388 /* ../lib/standard/kernel.nit:344 */
8390 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8391 if (UNTAG_Bool(REGB9
)) {
8393 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8395 /* ../lib/standard/kernel.nit:234 */
8396 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<=UNTAG_Int(REGB7
));
8397 /* ../lib/standard/kernel.nit:344 */
8398 if (UNTAG_Bool(REGB9
)) {
8399 /* syntax/typing.nit:1460 */
8400 REGB9
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8401 if (UNTAG_Bool(REGB9
)) {
8402 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1460);
8404 /* ../lib/standard/collection/array.nit:278 */
8405 fra
.me
.REG
[0] = fra
.me
.REG
[4];
8407 /* ../lib/standard/collection/array.nit:280 */
8408 REGB10
= TAG_Int(0);
8409 REGB11
= TAG_Bool(VAL_ISA(REGB10
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9
), VTID_standard___kernel___Comparable___OTHER(REGB9
))) /*cast OTHER*/;
8410 if (UNTAG_Bool(REGB11
)) {
8412 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8414 /* ../lib/standard/kernel.nit:236 */
8415 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)>=UNTAG_Int(REGB10
));
8416 /* ../lib/standard/collection/array.nit:280 */
8417 if (UNTAG_Bool(REGB10
)) {
8418 REGB10
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
8419 if (UNTAG_Bool(REGB10
)) {
8421 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8423 REGB10
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
8424 REGB11
= TAG_Bool(VAL_ISA(REGB10
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB9
), VTID_standard___kernel___Comparable___OTHER(REGB9
))) /*cast OTHER*/;
8425 if (UNTAG_Bool(REGB11
)) {
8427 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8429 /* ../lib/standard/kernel.nit:235 */
8430 REGB10
= TAG_Bool(UNTAG_Int(REGB9
)<UNTAG_Int(REGB10
));
8432 /* ../lib/standard/collection/array.nit:280 */
8433 REGB11
= TAG_Bool(0);
8436 if (UNTAG_Bool(REGB10
)) {
8438 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
8440 /* ../lib/standard/collection/array.nit:281 */
8441 fra
.me
.REG
[0] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
8442 REGB10
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
8443 if (UNTAG_Bool(REGB10
)) {
8444 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8446 /* ../lib/standard/collection/array.nit:718 */
8447 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB9
)];
8448 /* ../lib/standard/collection/array.nit:281 */
8451 /* syntax/typing.nit:1461 */
8452 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8453 /* syntax/typing.nit:1462 */
8455 /* ../lib/standard/kernel.nit:238 */
8456 REGB9
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB9
));
8457 /* syntax/typing.nit:1462 */
8459 /* ../lib/standard/kernel.nit:346 */
8461 /* ../lib/standard/kernel.nit:238 */
8462 REGB9
= TAG_Int(UNTAG_Int(REGB8
)+UNTAG_Int(REGB9
));
8463 /* ../lib/standard/kernel.nit:346 */
8466 /* ../lib/standard/kernel.nit:344 */
8472 /* syntax/typing.nit:1465 */
8473 REGB8
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8474 if (UNTAG_Bool(REGB8
)) {
8475 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1465);
8477 /* ../lib/standard/collection/array.nit:278 */
8478 fra
.me
.REG
[3] = fra
.me
.REG
[4];
8480 /* ../lib/standard/collection/array.nit:280 */
8482 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8483 if (UNTAG_Bool(REGB9
)) {
8485 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8487 /* ../lib/standard/kernel.nit:236 */
8488 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB7
));
8489 /* ../lib/standard/collection/array.nit:280 */
8490 if (UNTAG_Bool(REGB7
)) {
8491 REGB7
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
8492 if (UNTAG_Bool(REGB7
)) {
8494 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8496 REGB7
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
8497 REGB9
= TAG_Bool(VAL_ISA(REGB7
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
8498 if (UNTAG_Bool(REGB9
)) {
8500 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8502 /* ../lib/standard/kernel.nit:235 */
8503 REGB7
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB7
));
8505 /* ../lib/standard/collection/array.nit:280 */
8506 REGB9
= TAG_Bool(0);
8509 if (UNTAG_Bool(REGB7
)) {
8511 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
8513 /* ../lib/standard/collection/array.nit:281 */
8514 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
8515 REGB7
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8516 if (UNTAG_Bool(REGB7
)) {
8517 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8519 /* ../lib/standard/collection/array.nit:718 */
8520 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB8
)];
8521 /* ../lib/standard/collection/array.nit:281 */
8524 /* syntax/typing.nit:1465 */
8525 fra
.me
.REG
[0] = fra
.me
.REG
[3];
8526 /* syntax/typing.nit:1466 */
8527 CALL_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[5]);
8528 /* syntax/typing.nit:1467 */
8530 /* ../lib/standard/kernel.nit:238 */
8531 REGB8
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB8
));
8532 /* syntax/typing.nit:1467 */
8535 /* ../lib/standard/kernel.nit:357 */
8537 /* ../lib/standard/kernel.nit:238 */
8538 REGB8
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB8
));
8539 /* ../lib/standard/kernel.nit:357 */
8542 /* ../lib/standard/kernel.nit:355 */
8547 /* syntax/typing.nit:1470 */
8548 REGB4
= TAG_Bool(1);
8552 stack_frame_head
= fra
.me
.prev
;
8555 static const char LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures
[] = "typing::AAbsAbsSendExpr::process_closures";
8556 val_t
syntax___typing___AAbsAbsSendExpr___process_closures(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
8557 struct {struct stack_frame_t me
; val_t MORE_REG
[16];} fra
;
8565 static val_t once_value_2
; /* Once value */
8566 static val_t once_value_3
; /* Once value */
8567 static val_t once_value_4
; /* Once value */
8568 static val_t once_value_5
; /* Once value */
8569 static val_t once_value_6
; /* Once value */
8570 static val_t once_value_7
; /* Once value */
8571 static val_t once_value_8
; /* Once value */
8572 static val_t once_value_11
; /* Once value */
8573 static val_t once_value_12
; /* Once value */
8574 static val_t once_value_13
; /* Once value */
8575 static val_t once_value_14
; /* Once value */
8576 static val_t once_value_15
; /* Once value */
8577 static val_t once_value_16
; /* Once value */
8578 static val_t once_value_18
; /* Once value */
8579 static val_t once_value_19
; /* Once value */
8580 static val_t once_value_20
; /* Once value */
8581 static val_t once_value_21
; /* Once value */
8582 static val_t once_value_22
; /* Once value */
8583 static val_t once_value_24
; /* Once value */
8584 static val_t once_value_25
; /* Once value */
8585 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8586 fra
.me
.file
= LOCATE_syntax___typing
;
8588 fra
.me
.meth
= LOCATE_syntax___typing___AAbsAbsSendExpr___process_closures
;
8589 fra
.me
.has_broke
= 0;
8590 fra
.me
.REG_size
= 17;
8591 fra
.me
.nitni_local_ref_head
= NULL
;
8592 fra
.me
.REG
[0] = NIT_NULL
;
8593 fra
.me
.REG
[1] = NIT_NULL
;
8594 fra
.me
.REG
[2] = NIT_NULL
;
8595 fra
.me
.REG
[3] = NIT_NULL
;
8596 fra
.me
.REG
[4] = NIT_NULL
;
8597 fra
.me
.REG
[5] = NIT_NULL
;
8598 fra
.me
.REG
[6] = NIT_NULL
;
8599 fra
.me
.REG
[7] = NIT_NULL
;
8600 fra
.me
.REG
[8] = NIT_NULL
;
8601 fra
.me
.REG
[9] = NIT_NULL
;
8602 fra
.me
.REG
[10] = NIT_NULL
;
8603 fra
.me
.REG
[11] = NIT_NULL
;
8604 fra
.me
.REG
[12] = NIT_NULL
;
8605 fra
.me
.REG
[13] = NIT_NULL
;
8606 fra
.me
.REG
[14] = NIT_NULL
;
8607 fra
.me
.REG
[15] = NIT_NULL
;
8608 fra
.me
.REG
[16] = NIT_NULL
;
8614 /* syntax/typing.nit:1476 */
8615 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8616 /* syntax/typing.nit:1477 */
8617 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8618 /* syntax/typing.nit:1478 */
8620 /* ../lib/standard/collection/array.nit:266 */
8621 fra
.me
.REG
[7] = fra
.me
.REG
[6];
8622 /* ../lib/standard/collection/array.nit:269 */
8624 /* ../lib/standard/collection/array.nit:270 */
8625 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8626 if (UNTAG_Bool(REGB2
)) {
8628 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
8630 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8631 /* ../lib/standard/collection/array.nit:271 */
8632 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
8633 /* ../lib/standard/collection/array.nit:272 */
8635 /* ../lib/standard/collection/array.nit:24 */
8636 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8637 if (UNTAG_Bool(REGB2
)) {
8639 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8641 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8642 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8643 if (UNTAG_Bool(REGB3
)) {
8645 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8647 /* ../lib/standard/kernel.nit:235 */
8648 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
8649 /* ../lib/standard/collection/array.nit:272 */
8650 if (UNTAG_Bool(REGB2
)) {
8651 /* ../lib/standard/collection/array.nit:273 */
8652 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8653 if (UNTAG_Bool(REGB2
)) {
8654 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
8656 /* ../lib/standard/collection/array.nit:718 */
8657 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
8658 /* syntax/typing.nit:1480 */
8659 REGB2
= CALL_metamodel___static_type___MMClosure___is_optional(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8660 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8661 if (UNTAG_Bool(REGB2
)) {
8663 /* ../lib/standard/kernel.nit:238 */
8664 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
8665 /* syntax/typing.nit:1480 */
8668 /* ../lib/standard/collection/array.nit:274 */
8670 /* ../lib/standard/kernel.nit:238 */
8671 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
8672 /* ../lib/standard/collection/array.nit:274 */
8675 /* ../lib/standard/collection/array.nit:272 */
8680 /* syntax/typing.nit:1482 */
8682 /* syntax/typing.nit:1483 */
8683 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8684 if (UNTAG_Bool(REGB2
)) {
8686 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8687 if (UNTAG_Bool(REGB3
)) {
8688 REGB3
= TAG_Bool(0);
8691 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8695 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8696 if (UNTAG_Bool(REGB2
)) {
8697 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8698 if (UNTAG_Bool(REGB2
)) {
8699 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1483);
8701 /* ../lib/standard/collection/array.nit:24 */
8702 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8703 if (UNTAG_Bool(REGB2
)) {
8705 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8707 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8708 /* syntax/typing.nit:1483 */
8711 /* ../lib/standard/collection/array.nit:24 */
8712 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8713 if (UNTAG_Bool(REGB2
)) {
8715 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8717 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8718 /* syntax/typing.nit:1484 */
8720 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8721 if (UNTAG_Bool(REGB4
)) {
8723 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8725 /* ../lib/standard/kernel.nit:237 */
8726 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>UNTAG_Int(REGB3
));
8727 /* syntax/typing.nit:1484 */
8728 if (UNTAG_Bool(REGB3
)) {
8729 /* syntax/typing.nit:1485 */
8731 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
8732 if (UNTAG_Bool(REGB2
)) {
8734 /* ../lib/standard/kernel.nit:230 */
8735 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
8736 /* syntax/typing.nit:1485 */
8739 if (UNTAG_Bool(REGB2
)) {
8741 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
8742 if (UNTAG_Bool(REGB3
)) {
8744 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8746 /* ../lib/standard/kernel.nit:237 */
8747 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB2
));
8749 /* syntax/typing.nit:1485 */
8750 REGB3
= TAG_Bool(0);
8753 if (UNTAG_Bool(REGB2
)) {
8754 /* syntax/typing.nit:1486 */
8756 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8757 if (!once_value_2
) {
8758 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
8760 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8761 once_value_2
= fra
.me
.REG
[7];
8762 register_static_object(&once_value_2
);
8763 } else fra
.me
.REG
[7] = once_value_2
;
8764 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8765 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8766 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8767 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8768 if (!once_value_3
) {
8769 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
8770 REGB2
= TAG_Int(10);
8771 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8772 once_value_3
= fra
.me
.REG
[7];
8773 register_static_object(&once_value_3
);
8774 } else fra
.me
.REG
[7] = once_value_3
;
8775 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8776 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8777 /* ../lib/standard/collection/array.nit:24 */
8778 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8779 if (UNTAG_Bool(REGB2
)) {
8781 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8783 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8784 /* syntax/typing.nit:1486 */
8785 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8786 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8787 if (!once_value_4
) {
8788 fra
.me
.REG
[7] = BOX_NativeString(" blocks.");
8790 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8791 once_value_4
= fra
.me
.REG
[7];
8792 register_static_object(&once_value_4
);
8793 } else fra
.me
.REG
[7] = once_value_4
;
8794 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8795 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8796 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8797 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8799 /* ../lib/standard/collection/array.nit:24 */
8800 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8801 if (UNTAG_Bool(REGB2
)) {
8803 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8805 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8806 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8807 if (UNTAG_Bool(REGB3
)) {
8809 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8811 /* ../lib/standard/kernel.nit:237 */
8812 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8813 /* syntax/typing.nit:1487 */
8814 if (UNTAG_Bool(REGB2
)) {
8815 REGB2
= TAG_Bool(1);
8817 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8818 if (UNTAG_Bool(REGB3
)) {
8820 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8822 /* ../lib/standard/kernel.nit:235 */
8823 REGB0
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
8824 /* syntax/typing.nit:1487 */
8827 if (UNTAG_Bool(REGB2
)) {
8828 /* syntax/typing.nit:1488 */
8830 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
8831 if (!once_value_5
) {
8832 fra
.me
.REG
[7] = BOX_NativeString("Error: ");
8834 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8835 once_value_5
= fra
.me
.REG
[7];
8836 register_static_object(&once_value_5
);
8837 } else fra
.me
.REG
[7] = once_value_5
;
8838 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8839 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8840 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8842 if (!once_value_6
) {
8843 fra
.me
.REG
[7] = BOX_NativeString(" requires ");
8844 REGB2
= TAG_Int(10);
8845 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8846 once_value_6
= fra
.me
.REG
[7];
8847 register_static_object(&once_value_6
);
8848 } else fra
.me
.REG
[7] = once_value_6
;
8849 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8850 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8851 /* ../lib/standard/collection/array.nit:24 */
8852 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
8853 if (UNTAG_Bool(REGB2
)) {
8855 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8857 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
8858 /* syntax/typing.nit:1488 */
8859 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8860 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8861 if (!once_value_7
) {
8862 fra
.me
.REG
[7] = BOX_NativeString(" blocks, ");
8864 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8865 once_value_7
= fra
.me
.REG
[7];
8866 register_static_object(&once_value_7
);
8867 } else fra
.me
.REG
[7] = once_value_7
;
8868 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8869 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8870 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8871 if (UNTAG_Bool(REGB2
)) {
8872 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1488);
8874 /* ../lib/standard/collection/array.nit:24 */
8875 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
8876 if (UNTAG_Bool(REGB2
)) {
8878 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
8880 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
8881 /* syntax/typing.nit:1488 */
8882 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
8883 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8884 if (!once_value_8
) {
8885 fra
.me
.REG
[7] = BOX_NativeString(" found.");
8887 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB2
);
8888 once_value_8
= fra
.me
.REG
[7];
8889 register_static_object(&once_value_8
);
8890 } else fra
.me
.REG
[7] = once_value_8
;
8891 fra
.me
.REG
[7] = fra
.me
.REG
[7];
8892 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
8893 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8894 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
8896 /* syntax/typing.nit:1491 */
8897 fra
.me
.REG
[8] = NIT_NULL
;
8898 /* syntax/typing.nit:1492 */
8899 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8900 if (UNTAG_Bool(REGB2
)) {
8902 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8903 if (UNTAG_Bool(REGB0
)) {
8904 REGB0
= TAG_Bool(0);
8907 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
8911 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8912 if (UNTAG_Bool(REGB2
)) {
8913 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___init();
8914 fra
.me
.REG
[8] = fra
.me
.REG
[7];
8916 /* syntax/typing.nit:1495 */
8918 REGB0
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
8919 if (UNTAG_Bool(REGB0
)) {
8921 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8923 /* ../lib/standard/kernel.nit:237 */
8924 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
8925 /* syntax/typing.nit:1495 */
8926 if (UNTAG_Bool(REGB2
)) {
8928 /* ../lib/standard/kernel.nit:240 */
8929 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
8930 /* syntax/typing.nit:1495 */
8931 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8932 if (UNTAG_Bool(REGB0
)) {
8933 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1495);
8935 /* ../lib/standard/collection/array.nit:278 */
8936 fra
.me
.REG
[7] = fra
.me
.REG
[4];
8937 /* ../lib/standard/collection/array.nit:280 */
8939 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8940 if (UNTAG_Bool(REGB3
)) {
8942 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8944 /* ../lib/standard/kernel.nit:236 */
8945 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB0
));
8946 /* ../lib/standard/collection/array.nit:280 */
8947 if (UNTAG_Bool(REGB0
)) {
8948 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8949 if (UNTAG_Bool(REGB0
)) {
8951 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
8953 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8954 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8955 if (UNTAG_Bool(REGB3
)) {
8957 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
8959 /* ../lib/standard/kernel.nit:235 */
8960 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
8962 /* ../lib/standard/collection/array.nit:280 */
8963 REGB3
= TAG_Bool(0);
8966 if (UNTAG_Bool(REGB0
)) {
8968 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
8970 /* ../lib/standard/collection/array.nit:281 */
8971 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[7]);
8972 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8973 if (UNTAG_Bool(REGB0
)) {
8974 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
8976 /* ../lib/standard/collection/array.nit:718 */
8977 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB2
)];
8978 /* ../lib/standard/collection/array.nit:281 */
8981 /* syntax/typing.nit:1495 */
8982 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8983 if (UNTAG_Bool(REGB2
)) {
8984 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1495);
8986 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ALabelable___n_label(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8988 fra
.me
.REG
[7] = NIT_NULL
;
8990 /* syntax/typing.nit:1498 */
8992 /* ../lib/standard/kernel.nit:350 */
8994 /* ../lib/standard/kernel.nit:355 */
8996 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
8997 if (UNTAG_Bool(REGB3
)) {
8999 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9001 /* ../lib/standard/kernel.nit:235 */
9002 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
9003 /* ../lib/standard/kernel.nit:355 */
9004 if (UNTAG_Bool(REGB3
)) {
9005 /* syntax/typing.nit:1498 */
9007 /* syntax/typing.nit:1499 */
9008 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9009 if (UNTAG_Bool(REGB4
)) {
9010 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1499);
9012 /* ../lib/standard/collection/array.nit:278 */
9013 fra
.me
.REG
[9] = fra
.me
.REG
[4];
9014 /* ../lib/standard/collection/array.nit:280 */
9016 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
9017 if (UNTAG_Bool(REGB5
)) {
9019 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9021 /* ../lib/standard/kernel.nit:236 */
9022 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
9023 /* ../lib/standard/collection/array.nit:280 */
9024 if (UNTAG_Bool(REGB4
)) {
9025 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
9026 if (UNTAG_Bool(REGB4
)) {
9028 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
9030 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
9031 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
9032 if (UNTAG_Bool(REGB5
)) {
9034 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9036 /* ../lib/standard/kernel.nit:235 */
9037 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
9039 /* ../lib/standard/collection/array.nit:280 */
9040 REGB5
= TAG_Bool(0);
9043 if (UNTAG_Bool(REGB4
)) {
9045 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
9047 /* ../lib/standard/collection/array.nit:281 */
9048 fra
.me
.REG
[9] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
9049 REGB4
= TAG_Bool(fra
.me
.REG
[9]==NIT_NULL
);
9050 if (UNTAG_Bool(REGB4
)) {
9051 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
9053 /* ../lib/standard/collection/array.nit:718 */
9054 fra
.me
.REG
[9] = ((Nit_NativeArray
)fra
.me
.REG
[9])->val
[UNTAG_Int(REGB3
)];
9055 /* ../lib/standard/collection/array.nit:281 */
9058 /* syntax/typing.nit:1500 */
9059 fra
.me
.REG
[10] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9060 fra
.me
.REG
[10] = CALL_syntax___typing___AClosureId___to_symbol(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
9061 /* syntax/typing.nit:1501 */
9062 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMSignature___closure_named(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[10]);
9063 /* syntax/typing.nit:1502 */
9064 REGB3
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
9065 if (UNTAG_Bool(REGB3
)) {
9067 REGB4
= TAG_Bool(fra
.me
.REG
[11]==NIT_NULL
);
9068 if (UNTAG_Bool(REGB4
)) {
9069 REGB4
= TAG_Bool(0);
9072 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[11])(fra
.me
.REG
[11], NIT_NULL
);
9076 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
9077 if (UNTAG_Bool(REGB3
)) {
9078 /* syntax/typing.nit:1503 */
9079 fra
.me
.REG
[11] = NEW_EscapableClosure_syntax___scope___EscapableClosure___init(fra
.me
.REG
[9], fra
.me
.REG
[11], fra
.me
.REG
[8]);
9080 /* syntax/typing.nit:1504 */
9081 fra
.me
.REG
[12] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9082 CALL_syntax___scope___ScopeContext___push_escapable(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[11], fra
.me
.REG
[7]);
9083 /* syntax/typing.nit:1505 */
9084 CALL_syntax___typing___AClosureDef___accept_typing2(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[1], fra
.me
.REG
[11]);
9085 /* syntax/typing.nit:1506 */
9086 fra
.me
.REG
[11] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9087 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
9089 /* ../lib/standard/collection/array.nit:24 */
9090 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
9091 if (UNTAG_Bool(REGB3
)) {
9093 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9095 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[6]);
9096 /* syntax/typing.nit:1507 */
9098 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB3
,REGB4
));
9099 if (UNTAG_Bool(REGB5
)) {
9101 /* ../lib/standard/kernel.nit:230 */
9102 REGB4
= TAG_Bool((REGB3
)==(REGB4
));
9103 /* syntax/typing.nit:1507 */
9106 if (UNTAG_Bool(REGB5
)) {
9107 /* syntax/typing.nit:1508 */
9108 fra
.me
.REG
[11] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9110 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
9111 if (!once_value_11
) {
9112 fra
.me
.REG
[13] = BOX_NativeString("Error: no closure named '!");
9113 REGB5
= TAG_Int(26);
9114 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
9115 once_value_11
= fra
.me
.REG
[13];
9116 register_static_object(&once_value_11
);
9117 } else fra
.me
.REG
[13] = once_value_11
;
9118 fra
.me
.REG
[13] = fra
.me
.REG
[13];
9119 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9120 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
9121 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9122 if (!once_value_12
) {
9123 fra
.me
.REG
[13] = BOX_NativeString("' in ");
9125 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
9126 once_value_12
= fra
.me
.REG
[13];
9127 register_static_object(&once_value_12
);
9128 } else fra
.me
.REG
[13] = once_value_12
;
9129 fra
.me
.REG
[13] = fra
.me
.REG
[13];
9130 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9131 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9132 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9133 if (!once_value_13
) {
9134 fra
.me
.REG
[13] = BOX_NativeString("; only closure is !");
9135 REGB5
= TAG_Int(19);
9136 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
9137 once_value_13
= fra
.me
.REG
[13];
9138 register_static_object(&once_value_13
);
9139 } else fra
.me
.REG
[13] = once_value_13
;
9140 fra
.me
.REG
[13] = fra
.me
.REG
[13];
9141 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9142 fra
.me
.REG
[13] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9143 REGB5
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
9144 if (UNTAG_Bool(REGB5
)) {
9145 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1508);
9147 fra
.me
.REG
[13] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
9148 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
9149 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9150 if (!once_value_14
) {
9151 fra
.me
.REG
[13] = BOX_NativeString(".");
9153 fra
.me
.REG
[13] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[13], REGB5
);
9154 once_value_14
= fra
.me
.REG
[13];
9155 register_static_object(&once_value_14
);
9156 } else fra
.me
.REG
[13] = once_value_14
;
9157 fra
.me
.REG
[13] = fra
.me
.REG
[13];
9158 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[13]);
9159 fra
.me
.REG
[12] = CALL_standard___string___Object___to_s(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
9160 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[11], fra
.me
.REG
[12]);
9162 /* syntax/typing.nit:1510 */
9163 fra
.me
.REG
[12] = NEW_Array_standard___collection___array___Array___init();
9164 /* ../lib/standard/collection/array.nit:266 */
9165 fra
.me
.REG
[11] = fra
.me
.REG
[6];
9166 /* ../lib/standard/collection/array.nit:269 */
9168 /* ../lib/standard/collection/array.nit:270 */
9169 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
9170 if (UNTAG_Bool(REGB4
)) {
9172 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
9174 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
9175 /* ../lib/standard/collection/array.nit:271 */
9176 fra
.me
.REG
[13] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[11]);
9177 /* ../lib/standard/collection/array.nit:272 */
9179 /* ../lib/standard/collection/array.nit:24 */
9180 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11])!=NIT_NULL
);
9181 if (UNTAG_Bool(REGB4
)) {
9183 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9185 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[11]);
9186 REGB3
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5
), VTID_standard___kernel___Comparable___OTHER(REGB5
))) /*cast OTHER*/;
9187 if (UNTAG_Bool(REGB3
)) {
9189 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9191 /* ../lib/standard/kernel.nit:235 */
9192 REGB4
= TAG_Bool(UNTAG_Int(REGB5
)<UNTAG_Int(REGB4
));
9193 /* ../lib/standard/collection/array.nit:272 */
9194 if (UNTAG_Bool(REGB4
)) {
9195 /* ../lib/standard/collection/array.nit:273 */
9196 REGB4
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
9197 if (UNTAG_Bool(REGB4
)) {
9198 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
9200 /* ../lib/standard/collection/array.nit:718 */
9201 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB5
)];
9202 /* syntax/typing.nit:1512 */
9204 fra
.me
.REG
[15] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4
);
9205 if (!once_value_15
) {
9206 fra
.me
.REG
[16] = BOX_NativeString("!");
9208 fra
.me
.REG
[16] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[16], REGB4
);
9209 once_value_15
= fra
.me
.REG
[16];
9210 register_static_object(&once_value_15
);
9211 } else fra
.me
.REG
[16] = once_value_15
;
9212 fra
.me
.REG
[16] = fra
.me
.REG
[16];
9213 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[16]);
9214 fra
.me
.REG
[14] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
9215 fra
.me
.REG
[14] = CALL_standard___string___Object___to_s(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
9216 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
9217 if (!once_value_16
) {
9218 fra
.me
.REG
[14] = BOX_NativeString("");
9220 fra
.me
.REG
[14] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[14], REGB4
);
9221 once_value_16
= fra
.me
.REG
[14];
9222 register_static_object(&once_value_16
);
9223 } else fra
.me
.REG
[14] = once_value_16
;
9224 fra
.me
.REG
[14] = fra
.me
.REG
[14];
9225 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[14]);
9226 fra
.me
.REG
[15] = CALL_standard___string___Object___to_s(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
9227 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[15]);
9228 /* ../lib/standard/collection/array.nit:274 */
9230 /* ../lib/standard/kernel.nit:238 */
9231 REGB4
= TAG_Int(UNTAG_Int(REGB5
)+UNTAG_Int(REGB4
));
9232 /* ../lib/standard/collection/array.nit:274 */
9235 /* ../lib/standard/collection/array.nit:272 */
9240 /* syntax/typing.nit:1514 */
9241 fra
.me
.REG
[9] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
9243 fra
.me
.REG
[13] = NEW_Array_standard___collection___array___Array___with_capacity(REGB5
);
9244 if (!once_value_18
) {
9245 fra
.me
.REG
[11] = BOX_NativeString("Error: no closure named '!");
9246 REGB5
= TAG_Int(26);
9247 fra
.me
.REG
[11] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[11], REGB5
);
9248 once_value_18
= fra
.me
.REG
[11];
9249 register_static_object(&once_value_18
);
9250 } else fra
.me
.REG
[11] = once_value_18
;
9251 fra
.me
.REG
[11] = fra
.me
.REG
[11];
9252 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[11]);
9253 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
9254 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9255 if (!once_value_19
) {
9256 fra
.me
.REG
[10] = BOX_NativeString("' in ");
9258 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
9259 once_value_19
= fra
.me
.REG
[10];
9260 register_static_object(&once_value_19
);
9261 } else fra
.me
.REG
[10] = once_value_19
;
9262 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9263 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9264 fra
.me
.REG
[10] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9265 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9266 if (!once_value_20
) {
9267 fra
.me
.REG
[10] = BOX_NativeString("; only closures are ");
9268 REGB5
= TAG_Int(20);
9269 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
9270 once_value_20
= fra
.me
.REG
[10];
9271 register_static_object(&once_value_20
);
9272 } else fra
.me
.REG
[10] = once_value_20
;
9273 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9274 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9275 if (!once_value_21
) {
9276 fra
.me
.REG
[10] = BOX_NativeString(",");
9278 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
9279 once_value_21
= fra
.me
.REG
[10];
9280 register_static_object(&once_value_21
);
9281 } else fra
.me
.REG
[10] = once_value_21
;
9282 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9283 fra
.me
.REG
[10] = CALL_standard___string___Collection___join(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[10]);
9284 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9285 if (!once_value_22
) {
9286 fra
.me
.REG
[10] = BOX_NativeString(".");
9288 fra
.me
.REG
[10] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[10], REGB5
);
9289 once_value_22
= fra
.me
.REG
[10];
9290 register_static_object(&once_value_22
);
9291 } else fra
.me
.REG
[10] = once_value_22
;
9292 fra
.me
.REG
[10] = fra
.me
.REG
[10];
9293 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
9294 fra
.me
.REG
[13] = CALL_standard___string___Object___to_s(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
9295 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[9], fra
.me
.REG
[13]);
9298 /* ../lib/standard/kernel.nit:357 */
9300 /* ../lib/standard/kernel.nit:238 */
9301 REGB5
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB5
));
9302 /* ../lib/standard/kernel.nit:357 */
9305 /* ../lib/standard/kernel.nit:355 */
9310 /* syntax/typing.nit:1519 */
9311 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
9312 if (UNTAG_Bool(REGB2
)) {
9314 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
9315 if (UNTAG_Bool(REGB0
)) {
9316 REGB0
= TAG_Bool(0);
9319 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
9323 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
9324 if (UNTAG_Bool(REGB2
)) {
9325 /* syntax/typing.nit:1520 */
9326 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]);
9327 fra
.me
.REG
[5] = fra
.me
.REG
[8];
9332 /* syntax/typing.nit:1523 */
9334 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
9335 if (UNTAG_Bool(REGB0
)) {
9337 /* ../lib/standard/kernel.nit:230 */
9338 REGB2
= TAG_Bool((REGB1
)==(REGB2
));
9339 /* syntax/typing.nit:1523 */
9342 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9343 if (UNTAG_Bool(REGB0
)) {
9344 /* syntax/typing.nit:1524 */
9346 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9347 if (!once_value_24
) {
9348 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
9350 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
9351 once_value_24
= fra
.me
.REG
[6];
9352 register_static_object(&once_value_24
);
9353 } else fra
.me
.REG
[6] = once_value_24
;
9354 fra
.me
.REG
[6] = fra
.me
.REG
[6];
9355 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6]);
9356 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9357 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
9358 if (!once_value_25
) {
9359 fra
.me
.REG
[3] = BOX_NativeString(" does not require blocks.");
9360 REGB0
= TAG_Int(25);
9361 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9362 once_value_25
= fra
.me
.REG
[3];
9363 register_static_object(&once_value_25
);
9364 } else fra
.me
.REG
[3] = once_value_25
;
9365 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9366 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
9367 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9368 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
9371 /* syntax/typing.nit:1526 */
9374 stack_frame_head
= fra
.me
.prev
;
9375 return fra
.me
.REG
[5];
9377 static const char LOCATE_syntax___typing___AAbsSendExpr___do_typing
[] = "typing::AAbsSendExpr::do_typing";
9378 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
){
9379 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
9384 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9385 fra
.me
.file
= LOCATE_syntax___typing
;
9387 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___do_typing
;
9388 fra
.me
.has_broke
= 0;
9389 fra
.me
.REG_size
= 7;
9390 fra
.me
.nitni_local_ref_head
= NULL
;
9391 fra
.me
.REG
[0] = NIT_NULL
;
9392 fra
.me
.REG
[1] = NIT_NULL
;
9393 fra
.me
.REG
[2] = NIT_NULL
;
9394 fra
.me
.REG
[3] = NIT_NULL
;
9395 fra
.me
.REG
[4] = NIT_NULL
;
9396 fra
.me
.REG
[5] = NIT_NULL
;
9397 fra
.me
.REG
[6] = NIT_NULL
;
9406 /* syntax/typing.nit:1534 */
9407 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]);
9408 /* syntax/typing.nit:1535 */
9409 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9410 if (UNTAG_Bool(REGB0
)) {
9412 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9413 if (UNTAG_Bool(REGB2
)) {
9414 REGB2
= TAG_Bool(0);
9417 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9421 if (UNTAG_Bool(REGB0
)) {
9424 /* syntax/typing.nit:1536 */
9425 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
);
9426 /* syntax/typing.nit:1537 */
9427 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9428 if (UNTAG_Bool(REGB1
)) {
9429 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1537);
9431 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9432 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]);
9433 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9434 if (UNTAG_Bool(REGB1
)) {
9437 /* syntax/typing.nit:1538 */
9438 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9439 if (UNTAG_Bool(REGB1
)) {
9440 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1538);
9442 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9443 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]);
9444 /* syntax/typing.nit:1539 */
9445 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9446 if (UNTAG_Bool(REGB1
)) {
9448 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9449 if (UNTAG_Bool(REGB0
)) {
9450 REGB0
= TAG_Bool(0);
9453 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
9457 if (UNTAG_Bool(REGB1
)) {
9458 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9459 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9460 if (UNTAG_Bool(REGB1
)) {
9462 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9463 if (UNTAG_Bool(REGB0
)) {
9464 REGB0
= TAG_Bool(0);
9467 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
9471 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
9473 REGB0
= TAG_Bool(0);
9476 if (UNTAG_Bool(REGB1
)) {
9479 /* syntax/typing.nit:1540 */
9480 ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
9481 /* syntax/typing.nit:1541 */
9482 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
9483 /* syntax/typing.nit:1542 */
9484 ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]) = fra
.me
.REG
[5];
9486 stack_frame_head
= fra
.me
.prev
;
9489 static const char LOCATE_syntax___typing___AAbsSendExpr___get_property
[] = "typing::AAbsSendExpr::get_property";
9490 val_t
syntax___typing___AAbsSendExpr___get_property(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
9491 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
9497 static val_t once_value_1
; /* Once value */
9498 static val_t once_value_2
; /* Once value */
9499 static val_t once_value_3
; /* Once value */
9500 static val_t once_value_4
; /* Once value */
9501 static val_t once_value_5
; /* Once value */
9502 static val_t once_value_6
; /* Once value */
9503 static val_t once_value_8
; /* Once value */
9504 static val_t once_value_9
; /* Once value */
9505 static val_t once_value_10
; /* Once value */
9506 static val_t once_value_11
; /* Once value */
9507 static val_t once_value_12
; /* Once value */
9508 static val_t once_value_13
; /* Once value */
9509 static val_t once_value_14
; /* Once value */
9510 static val_t once_value_15
; /* Once value */
9511 static val_t once_value_16
; /* Once value */
9512 static val_t once_value_17
; /* Once value */
9513 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9514 fra
.me
.file
= LOCATE_syntax___typing
;
9516 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_property
;
9517 fra
.me
.has_broke
= 0;
9518 fra
.me
.REG_size
= 10;
9519 fra
.me
.nitni_local_ref_head
= NULL
;
9520 fra
.me
.REG
[0] = NIT_NULL
;
9521 fra
.me
.REG
[1] = NIT_NULL
;
9522 fra
.me
.REG
[2] = NIT_NULL
;
9523 fra
.me
.REG
[3] = NIT_NULL
;
9524 fra
.me
.REG
[4] = NIT_NULL
;
9525 fra
.me
.REG
[5] = NIT_NULL
;
9526 fra
.me
.REG
[6] = NIT_NULL
;
9527 fra
.me
.REG
[7] = NIT_NULL
;
9528 fra
.me
.REG
[8] = NIT_NULL
;
9529 fra
.me
.REG
[9] = NIT_NULL
;
9535 /* syntax/typing.nit:1547 */
9536 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
9537 if (UNTAG_Bool(REGB1
)) {
9538 /* syntax/typing.nit:1548 */
9539 if (!once_value_1
) {
9540 if (!once_value_2
) {
9541 fra
.me
.REG
[4] = BOX_NativeString("==");
9543 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
9544 once_value_2
= fra
.me
.REG
[4];
9545 register_static_object(&once_value_2
);
9546 } else fra
.me
.REG
[4] = once_value_2
;
9547 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9548 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9549 once_value_1
= fra
.me
.REG
[4];
9550 register_static_object(&once_value_1
);
9551 } else fra
.me
.REG
[4] = once_value_1
;
9552 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9553 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
9554 if (UNTAG_Bool(REGB1
)) {
9556 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9559 if (UNTAG_Bool(REGB1
)) {
9560 REGB1
= TAG_Bool(1);
9562 if (!once_value_3
) {
9563 if (!once_value_4
) {
9564 fra
.me
.REG
[4] = BOX_NativeString("!=");
9566 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB2
);
9567 once_value_4
= fra
.me
.REG
[4];
9568 register_static_object(&once_value_4
);
9569 } else fra
.me
.REG
[4] = once_value_4
;
9570 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9571 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9572 once_value_3
= fra
.me
.REG
[4];
9573 register_static_object(&once_value_3
);
9574 } else fra
.me
.REG
[4] = once_value_3
;
9575 fra
.me
.REG
[4] = fra
.me
.REG
[4];
9576 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
9577 if (UNTAG_Bool(REGB2
)) {
9579 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9584 if (UNTAG_Bool(REGB1
)) {
9585 /* syntax/typing.nit:1550 */
9586 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9587 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9588 fra
.me
.REG
[2] = fra
.me
.REG
[4];
9590 /* syntax/typing.nit:1552 */
9592 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
9593 if (!once_value_5
) {
9594 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
9595 REGB1
= TAG_Int(15);
9596 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
9597 once_value_5
= fra
.me
.REG
[5];
9598 register_static_object(&once_value_5
);
9599 } else fra
.me
.REG
[5] = once_value_5
;
9600 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9601 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9602 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9603 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9604 if (!once_value_6
) {
9605 fra
.me
.REG
[5] = BOX_NativeString("' call on 'null'.");
9606 REGB1
= TAG_Int(17);
9607 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
9608 once_value_6
= fra
.me
.REG
[5];
9609 register_static_object(&once_value_6
);
9610 } else fra
.me
.REG
[5] = once_value_6
;
9611 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9612 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9613 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9614 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
9615 /* syntax/typing.nit:1553 */
9616 fra
.me
.REG
[4] = NIT_NULL
;
9620 /* syntax/typing.nit:1556 */
9621 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9622 /* syntax/typing.nit:1557 */
9623 fra
.me
.REG
[6] = NIT_NULL
;
9624 /* syntax/typing.nit:1558 */
9625 REGB1
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9626 if (UNTAG_Bool(REGB1
)) {
9627 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9628 fra
.me
.REG
[6] = fra
.me
.REG
[7];
9630 /* syntax/typing.nit:1559 */
9631 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9632 if (UNTAG_Bool(REGB1
)) {
9634 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9635 if (UNTAG_Bool(REGB2
)) {
9636 REGB2
= TAG_Bool(0);
9639 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9643 if (UNTAG_Bool(REGB1
)) {
9644 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9645 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9646 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9648 REGB2
= TAG_Bool(0);
9651 if (UNTAG_Bool(REGB1
)) {
9652 /* syntax/typing.nit:1560 */
9653 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9654 /* ../lib/standard/collection/array.nit:24 */
9655 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
9656 if (UNTAG_Bool(REGB1
)) {
9658 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9660 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
9661 /* syntax/typing.nit:1561 */
9663 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
9664 if (UNTAG_Bool(REGB3
)) {
9666 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
9668 /* ../lib/standard/kernel.nit:237 */
9669 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>UNTAG_Int(REGB2
));
9670 /* syntax/typing.nit:1561 */
9671 if (UNTAG_Bool(REGB2
)) {
9672 /* syntax/typing.nit:1562 */
9674 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
9675 if (!once_value_8
) {
9676 fra
.me
.REG
[9] = BOX_NativeString("Error: Ambigous method name '");
9677 REGB2
= TAG_Int(29);
9678 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9679 once_value_8
= fra
.me
.REG
[9];
9680 register_static_object(&once_value_8
);
9681 } else fra
.me
.REG
[9] = once_value_8
;
9682 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9683 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9684 fra
.me
.REG
[9] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9685 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9686 if (!once_value_9
) {
9687 fra
.me
.REG
[9] = BOX_NativeString("' for ");
9689 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9690 once_value_9
= fra
.me
.REG
[9];
9691 register_static_object(&once_value_9
);
9692 } else fra
.me
.REG
[9] = once_value_9
;
9693 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9694 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9695 if (!once_value_10
) {
9696 fra
.me
.REG
[9] = BOX_NativeString(", ");
9698 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9699 once_value_10
= fra
.me
.REG
[9];
9700 register_static_object(&once_value_10
);
9701 } else fra
.me
.REG
[9] = once_value_10
;
9702 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9703 fra
.me
.REG
[9] = CALL_standard___string___Collection___join(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[9]);
9704 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9705 if (!once_value_11
) {
9706 fra
.me
.REG
[9] = BOX_NativeString(". Use explicit designation.");
9707 REGB2
= TAG_Int(27);
9708 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB2
);
9709 once_value_11
= fra
.me
.REG
[9];
9710 register_static_object(&once_value_11
);
9711 } else fra
.me
.REG
[9] = once_value_11
;
9712 fra
.me
.REG
[9] = fra
.me
.REG
[9];
9713 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
9714 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9715 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[8]);
9716 /* syntax/typing.nit:1563 */
9717 fra
.me
.REG
[4] = NIT_NULL
;
9720 /* ../lib/standard/collection/array.nit:24 */
9721 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
9722 if (UNTAG_Bool(REGB2
)) {
9724 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
9726 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[7]);
9727 /* syntax/typing.nit:1564 */
9729 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
9730 if (UNTAG_Bool(REGB3
)) {
9732 /* ../lib/standard/kernel.nit:230 */
9733 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
9734 /* syntax/typing.nit:1564 */
9737 if (UNTAG_Bool(REGB3
)) {
9738 /* syntax/typing.nit:1565 */
9739 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9740 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9741 if (UNTAG_Bool(REGB3
)) {
9742 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1565);
9744 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9745 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
9746 /* syntax/typing.nit:1566 */
9747 REGB3
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
9748 if (UNTAG_Bool(REGB3
)) {
9750 nit_abort("Assert failed", NULL
, LOCATE_syntax___typing
, 1566);
9752 /* syntax/typing.nit:1567 */
9753 fra
.me
.REG
[6] = fra
.me
.REG
[7];
9757 /* syntax/typing.nit:1571 */
9758 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9759 if (UNTAG_Bool(REGB3
)) {
9761 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9762 if (UNTAG_Bool(REGB1
)) {
9763 REGB1
= TAG_Bool(0);
9766 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9770 if (UNTAG_Bool(REGB3
)) {
9771 /* syntax/typing.nit:1572 */
9772 if (UNTAG_Bool(REGB0
)) {
9773 /* syntax/typing.nit:1573 */
9775 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9776 if (!once_value_12
) {
9777 fra
.me
.REG
[5] = BOX_NativeString("Error: Method or variable '");
9778 REGB0
= TAG_Int(27);
9779 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9780 once_value_12
= fra
.me
.REG
[5];
9781 register_static_object(&once_value_12
);
9782 } else fra
.me
.REG
[5] = once_value_12
;
9783 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9785 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9786 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9787 if (!once_value_13
) {
9788 fra
.me
.REG
[5] = BOX_NativeString("' unknown in ");
9789 REGB0
= TAG_Int(13);
9790 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9791 once_value_13
= fra
.me
.REG
[5];
9792 register_static_object(&once_value_13
);
9793 } else fra
.me
.REG
[5] = once_value_13
;
9794 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9795 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9796 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9797 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9798 if (!once_value_14
) {
9799 fra
.me
.REG
[5] = BOX_NativeString(".");
9801 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9802 once_value_14
= fra
.me
.REG
[5];
9803 register_static_object(&once_value_14
);
9804 } else fra
.me
.REG
[5] = once_value_14
;
9805 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9806 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9807 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9808 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9810 /* syntax/typing.nit:1575 */
9812 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
9813 if (!once_value_15
) {
9814 fra
.me
.REG
[5] = BOX_NativeString("Error: Method '");
9815 REGB0
= TAG_Int(15);
9816 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
9817 once_value_15
= fra
.me
.REG
[5];
9818 register_static_object(&once_value_15
);
9819 } else fra
.me
.REG
[5] = once_value_15
;
9820 fra
.me
.REG
[5] = fra
.me
.REG
[5];
9821 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
9822 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9823 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
9824 if (!once_value_16
) {
9825 fra
.me
.REG
[3] = BOX_NativeString("' doesn't exists in ");
9826 REGB0
= TAG_Int(20);
9827 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
9828 once_value_16
= fra
.me
.REG
[3];
9829 register_static_object(&once_value_16
);
9830 } else fra
.me
.REG
[3] = once_value_16
;
9831 fra
.me
.REG
[3] = fra
.me
.REG
[3];
9832 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
9833 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9834 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
9835 if (!once_value_17
) {
9836 fra
.me
.REG
[2] = BOX_NativeString(".");
9838 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
9839 once_value_17
= fra
.me
.REG
[2];
9840 register_static_object(&once_value_17
);
9841 } else fra
.me
.REG
[2] = once_value_17
;
9842 fra
.me
.REG
[2] = fra
.me
.REG
[2];
9843 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2]);
9844 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
9845 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
9847 /* syntax/typing.nit:1577 */
9848 fra
.me
.REG
[4] = NIT_NULL
;
9851 /* syntax/typing.nit:1579 */
9852 fra
.me
.REG
[4] = fra
.me
.REG
[6];
9855 stack_frame_head
= fra
.me
.prev
;
9856 return fra
.me
.REG
[4];
9858 static const char LOCATE_syntax___typing___AAbsSendExpr___get_signature
[] = "typing::AAbsSendExpr::get_signature";
9859 val_t
syntax___typing___AAbsSendExpr___get_signature(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
9860 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
9863 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9864 fra
.me
.file
= LOCATE_syntax___typing
;
9866 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___get_signature
;
9867 fra
.me
.has_broke
= 0;
9868 fra
.me
.REG_size
= 6;
9869 fra
.me
.nitni_local_ref_head
= NULL
;
9870 fra
.me
.REG
[0] = NIT_NULL
;
9871 fra
.me
.REG
[1] = NIT_NULL
;
9872 fra
.me
.REG
[2] = NIT_NULL
;
9873 fra
.me
.REG
[3] = NIT_NULL
;
9874 fra
.me
.REG
[4] = NIT_NULL
;
9875 fra
.me
.REG
[5] = NIT_NULL
;
9881 /* syntax/typing.nit:1585 */
9882 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9883 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9884 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
);
9885 /* syntax/typing.nit:1586 */
9886 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
9887 /* syntax/typing.nit:1587 */
9888 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9889 if (UNTAG_Bool(REGB0
)) {
9890 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___not_for_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
9891 fra
.me
.REG
[2] = fra
.me
.REG
[3];
9893 /* syntax/typing.nit:1588 */
9896 stack_frame_head
= fra
.me
.prev
;
9897 return fra
.me
.REG
[2];
9899 static const char LOCATE_syntax___typing___AAbsSendExpr___prop
[] = "typing::AAbsSendExpr::(syntax_base::AAbsSendExpr::prop)";
9900 val_t
syntax___typing___AAbsSendExpr___prop(val_t p0
){
9901 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
9904 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9905 fra
.me
.file
= LOCATE_syntax___typing
;
9907 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___prop
;
9908 fra
.me
.has_broke
= 0;
9909 fra
.me
.REG_size
= 2;
9910 fra
.me
.nitni_local_ref_head
= NULL
;
9911 fra
.me
.REG
[0] = NIT_NULL
;
9912 fra
.me
.REG
[1] = NIT_NULL
;
9914 /* syntax/typing.nit:1591 */
9915 fra
.me
.REG
[1] = fra
.me
.REG
[0];
9916 /* syntax/typing.nit:1592 */
9917 fra
.me
.REG
[1] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[1]);
9918 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
9919 if (UNTAG_Bool(REGB0
)) {
9921 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1592);
9925 stack_frame_head
= fra
.me
.prev
;
9926 return fra
.me
.REG
[1];
9928 static const char LOCATE_syntax___typing___AAbsSendExpr___return_type
[] = "typing::AAbsSendExpr::(syntax_base::AAbsSendExpr::return_type)";
9929 val_t
syntax___typing___AAbsSendExpr___return_type(val_t p0
){
9930 struct {struct stack_frame_t me
;} fra
;
9932 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9933 fra
.me
.file
= LOCATE_syntax___typing
;
9935 fra
.me
.meth
= LOCATE_syntax___typing___AAbsSendExpr___return_type
;
9936 fra
.me
.has_broke
= 0;
9937 fra
.me
.REG_size
= 1;
9938 fra
.me
.nitni_local_ref_head
= NULL
;
9939 fra
.me
.REG
[0] = NIT_NULL
;
9941 /* syntax/typing.nit:1595 */
9942 fra
.me
.REG
[0] = ATTR_syntax___typing___AAbsSendExpr____return_type(fra
.me
.REG
[0]);
9943 stack_frame_head
= fra
.me
.prev
;
9944 return fra
.me
.REG
[0];
9946 static const char LOCATE_syntax___typing___ASuperInitCall___register_super_init_call
[] = "typing::ASuperInitCall::register_super_init_call";
9947 void syntax___typing___ASuperInitCall___register_super_init_call(val_t p0
, val_t p1
, val_t p2
){
9948 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
9953 static val_t once_value_1
; /* Once value */
9954 static val_t once_value_2
; /* Once value */
9955 static val_t once_value_3
; /* Once value */
9956 static val_t once_value_4
; /* Once value */
9957 static val_t once_value_5
; /* Once value */
9958 static val_t once_value_6
; /* Once value */
9959 static val_t once_value_7
; /* Once value */
9960 static val_t once_value_8
; /* Once value */
9961 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9962 fra
.me
.file
= LOCATE_syntax___typing
;
9964 fra
.me
.meth
= LOCATE_syntax___typing___ASuperInitCall___register_super_init_call
;
9965 fra
.me
.has_broke
= 0;
9966 fra
.me
.REG_size
= 9;
9967 fra
.me
.nitni_local_ref_head
= NULL
;
9968 fra
.me
.REG
[0] = NIT_NULL
;
9969 fra
.me
.REG
[1] = NIT_NULL
;
9970 fra
.me
.REG
[2] = NIT_NULL
;
9971 fra
.me
.REG
[3] = NIT_NULL
;
9972 fra
.me
.REG
[4] = NIT_NULL
;
9973 fra
.me
.REG
[5] = NIT_NULL
;
9974 fra
.me
.REG
[6] = NIT_NULL
;
9975 fra
.me
.REG
[7] = NIT_NULL
;
9976 fra
.me
.REG
[8] = NIT_NULL
;
9980 /* syntax/typing.nit:1602 */
9981 fra
.me
.REG
[3] = fra
.me
.REG
[0];
9982 /* syntax/typing.nit:1604 */
9983 fra
.me
.REG
[4] = CALL_parser___parser_prod___ANode___parent(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9984 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9985 REGB0
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[4],fra
.me
.REG
[5]));
9986 if (UNTAG_Bool(REGB0
)) {
9988 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
9989 if (UNTAG_Bool(REGB1
)) {
9990 REGB1
= TAG_Bool(0);
9993 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
9997 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
9998 if (UNTAG_Bool(REGB0
)) {
9999 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___top_block(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10000 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[5]));
10001 if (UNTAG_Bool(REGB0
)) {
10003 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10006 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10008 REGB1
= TAG_Bool(0);
10011 if (UNTAG_Bool(REGB0
)) {
10012 /* syntax/typing.nit:1605 */
10013 REGB0
= TAG_Int(3);
10014 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10015 if (!once_value_1
) {
10016 fra
.me
.REG
[4] = BOX_NativeString("Error: Constructor invocation ");
10017 REGB0
= TAG_Int(30);
10018 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10019 once_value_1
= fra
.me
.REG
[4];
10020 register_static_object(&once_value_1
);
10021 } else fra
.me
.REG
[4] = once_value_1
;
10022 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10023 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10024 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10025 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10026 if (!once_value_2
) {
10027 fra
.me
.REG
[4] = BOX_NativeString(" must not be in nested block.");
10028 REGB0
= TAG_Int(29);
10029 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10030 once_value_2
= fra
.me
.REG
[4];
10031 register_static_object(&once_value_2
);
10032 } else fra
.me
.REG
[4] = once_value_2
;
10033 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10034 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10035 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10036 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
10038 /* syntax/typing.nit:1607 */
10039 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10040 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10041 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10042 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10043 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10044 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10045 /* syntax/typing.nit:1608 */
10046 fra
.me
.REG
[5] = NIT_NULL
;
10047 /* syntax/typing.nit:1609 */
10048 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___explicit_super_init_calls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10049 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
10050 if (UNTAG_Bool(REGB0
)) {
10052 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1609);
10054 /* syntax/typing.nit:1610 */
10055 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10056 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10057 if (UNTAG_Bool(REGB0
)) {
10058 /* syntax/typing.nit:1611 */
10059 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___SequenceRead___last(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10060 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
10061 if (UNTAG_Bool(REGB0
)) {
10062 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1611);
10064 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10065 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10066 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10067 fra
.me
.REG
[5] = fra
.me
.REG
[0];
10069 /* syntax/typing.nit:1613 */
10070 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10071 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10072 fra
.me
.REG
[0] = CALL_metamodel___partial_order___PartialOrderElement___reverse_linear_extension(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10073 /* syntax/typing.nit:1614 */
10074 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10075 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[7]));
10076 if (UNTAG_Bool(REGB0
)) {
10078 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
10081 if (UNTAG_Bool(REGB0
)) {
10082 /* syntax/typing.nit:1615 */
10083 REGB0
= TAG_Bool(1);
10084 CALL_syntax___typing___TypingVisitor___explicit_other_init_call__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
10086 /* syntax/typing.nit:1616 */
10087 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
10088 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10089 if (UNTAG_Bool(REGB0
)) {
10090 /* syntax/typing.nit:1617 */
10091 REGB0
= TAG_Int(5);
10092 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10093 if (!once_value_3
) {
10094 fra
.me
.REG
[8] = BOX_NativeString("Error: Constructor of class ");
10095 REGB0
= TAG_Int(28);
10096 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
10097 once_value_3
= fra
.me
.REG
[8];
10098 register_static_object(&once_value_3
);
10099 } else fra
.me
.REG
[8] = once_value_3
;
10100 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10101 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10102 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10103 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10104 if (!once_value_4
) {
10105 fra
.me
.REG
[8] = BOX_NativeString(" must be one in ");
10106 REGB0
= TAG_Int(16);
10107 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
10108 once_value_4
= fra
.me
.REG
[8];
10109 register_static_object(&once_value_4
);
10110 } else fra
.me
.REG
[8] = once_value_4
;
10111 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10112 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10113 if (!once_value_5
) {
10114 fra
.me
.REG
[8] = BOX_NativeString(", ");
10115 REGB0
= TAG_Int(2);
10116 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
10117 once_value_5
= fra
.me
.REG
[8];
10118 register_static_object(&once_value_5
);
10119 } else fra
.me
.REG
[8] = once_value_5
;
10120 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10121 fra
.me
.REG
[8] = CALL_standard___string___Collection___join(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[8]);
10122 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10123 if (!once_value_6
) {
10124 fra
.me
.REG
[8] = BOX_NativeString(".");
10125 REGB0
= TAG_Int(1);
10126 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
10127 once_value_6
= fra
.me
.REG
[8];
10128 register_static_object(&once_value_6
);
10129 } else fra
.me
.REG
[8] = once_value_6
;
10130 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10131 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10132 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
10133 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[7]);
10135 /* syntax/typing.nit:1618 */
10136 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[4],fra
.me
.REG
[5]));
10137 if (UNTAG_Bool(REGB0
)) {
10139 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
10142 if (UNTAG_Bool(REGB0
)) {
10143 /* syntax/typing.nit:1619 */
10144 REGB0
= TAG_Int(3);
10145 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10146 if (!once_value_7
) {
10147 fra
.me
.REG
[8] = BOX_NativeString("Error: Only one super constructor invocation of class ");
10148 REGB0
= TAG_Int(54);
10149 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
10150 once_value_7
= fra
.me
.REG
[8];
10151 register_static_object(&once_value_7
);
10152 } else fra
.me
.REG
[8] = once_value_7
;
10153 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10154 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10155 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10156 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10157 if (!once_value_8
) {
10158 fra
.me
.REG
[8] = BOX_NativeString(" is allowed.");
10159 REGB0
= TAG_Int(12);
10160 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
10161 once_value_8
= fra
.me
.REG
[8];
10162 register_static_object(&once_value_8
);
10163 } else fra
.me
.REG
[8] = once_value_8
;
10164 fra
.me
.REG
[8] = fra
.me
.REG
[8];
10165 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
10166 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
10167 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[7]);
10169 /* ../lib/standard/collection/array.nit:269 */
10170 REGB0
= TAG_Int(0);
10171 /* ../lib/standard/collection/array.nit:270 */
10172 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
10173 if (UNTAG_Bool(REGB1
)) {
10175 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
10177 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
10178 /* ../lib/standard/collection/array.nit:271 */
10179 fra
.me
.REG
[7] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
10180 /* ../lib/standard/collection/array.nit:272 */
10182 /* ../lib/standard/collection/array.nit:24 */
10183 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
10184 if (UNTAG_Bool(REGB1
)) {
10186 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
10188 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
10189 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
10190 if (UNTAG_Bool(REGB2
)) {
10192 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
10194 /* ../lib/standard/kernel.nit:235 */
10195 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
10196 /* ../lib/standard/collection/array.nit:272 */
10197 if (UNTAG_Bool(REGB1
)) {
10198 /* ../lib/standard/collection/array.nit:273 */
10199 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
10200 if (UNTAG_Bool(REGB1
)) {
10201 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
10203 /* ../lib/standard/collection/array.nit:718 */
10204 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
10205 /* syntax/typing.nit:1622 */
10206 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[5]));
10207 if (UNTAG_Bool(REGB1
)) {
10209 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
10212 if (UNTAG_Bool(REGB1
)) {
10213 /* syntax/typing.nit:1623 */
10214 fra
.me
.REG
[5] = NIT_NULL
;
10216 /* syntax/typing.nit:1624 */
10217 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[4]));
10218 if (UNTAG_Bool(REGB1
)) {
10220 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10223 if (UNTAG_Bool(REGB1
)) {
10224 /* syntax/typing.nit:1625 */
10225 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
10226 /* syntax/typing.nit:1626 */
10230 /* ../lib/standard/collection/array.nit:274 */
10231 REGB1
= TAG_Int(1);
10232 /* ../lib/standard/kernel.nit:238 */
10233 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
10234 /* ../lib/standard/collection/array.nit:274 */
10237 /* ../lib/standard/collection/array.nit:272 */
10246 stack_frame_head
= fra
.me
.prev
;
10249 static const char LOCATE_syntax___typing___ANewExpr___compute_raw_arguments
[] = "typing::ANewExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
10250 val_t
syntax___typing___ANewExpr___compute_raw_arguments(val_t p0
){
10251 struct {struct stack_frame_t me
;} fra
;
10253 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10254 fra
.me
.file
= LOCATE_syntax___typing
;
10255 fra
.me
.line
= 1635;
10256 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___compute_raw_arguments
;
10257 fra
.me
.has_broke
= 0;
10258 fra
.me
.REG_size
= 1;
10259 fra
.me
.nitni_local_ref_head
= NULL
;
10260 fra
.me
.REG
[0] = NIT_NULL
;
10261 fra
.me
.REG
[0] = p0
;
10262 /* syntax/typing.nit:1635 */
10263 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ANewExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10264 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10267 stack_frame_head
= fra
.me
.prev
;
10268 return fra
.me
.REG
[0];
10270 static const char LOCATE_syntax___typing___ANewExpr___after_typing
[] = "typing::ANewExpr::(typing::ANode::after_typing)";
10271 void syntax___typing___ANewExpr___after_typing(val_t p0
, val_t p1
){
10272 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
10276 static val_t once_value_2
; /* Once value */
10277 static val_t once_value_3
; /* Once value */
10278 static val_t once_value_4
; /* Once value */
10279 static val_t once_value_5
; /* Once value */
10280 static val_t once_value_6
; /* Once value */
10281 static val_t once_value_7
; /* Once value */
10282 static val_t once_value_8
; /* Once value */
10283 static val_t once_value_9
; /* Once value */
10284 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10285 fra
.me
.file
= LOCATE_syntax___typing
;
10286 fra
.me
.line
= 1636;
10287 fra
.me
.meth
= LOCATE_syntax___typing___ANewExpr___after_typing
;
10288 fra
.me
.has_broke
= 0;
10289 fra
.me
.REG_size
= 5;
10290 fra
.me
.nitni_local_ref_head
= NULL
;
10291 fra
.me
.REG
[0] = NIT_NULL
;
10292 fra
.me
.REG
[1] = NIT_NULL
;
10293 fra
.me
.REG
[2] = NIT_NULL
;
10294 fra
.me
.REG
[3] = NIT_NULL
;
10295 fra
.me
.REG
[4] = NIT_NULL
;
10296 fra
.me
.REG
[0] = p0
;
10297 fra
.me
.REG
[1] = p1
;
10298 /* syntax/typing.nit:1638 */
10299 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10300 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10301 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10302 if (UNTAG_Bool(REGB0
)) {
10305 /* syntax/typing.nit:1639 */
10306 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANewExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10307 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10308 /* syntax/typing.nit:1640 */
10309 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10310 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10311 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10312 if (UNTAG_Bool(REGB0
)) {
10313 /* syntax/typing.nit:1641 */
10314 REGB0
= TAG_Int(3);
10315 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10316 if (!once_value_2
) {
10317 fra
.me
.REG
[4] = BOX_NativeString("Error: try to instantiate abstract class ");
10318 REGB0
= TAG_Int(41);
10319 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10320 once_value_2
= fra
.me
.REG
[4];
10321 register_static_object(&once_value_2
);
10322 } else fra
.me
.REG
[4] = once_value_2
;
10323 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10324 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10325 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10326 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10327 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10328 if (!once_value_3
) {
10329 fra
.me
.REG
[4] = BOX_NativeString(".");
10330 REGB0
= TAG_Int(1);
10331 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10332 once_value_3
= fra
.me
.REG
[4];
10333 register_static_object(&once_value_3
);
10334 } else fra
.me
.REG
[4] = once_value_3
;
10335 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 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10338 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
10339 /* syntax/typing.nit:1642 */
10342 /* syntax/typing.nit:1644 */
10343 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10344 if (UNTAG_Bool(REGB0
)) {
10345 /* syntax/typing.nit:1645 */
10346 REGB0
= TAG_Int(3);
10347 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10348 if (!once_value_4
) {
10349 fra
.me
.REG
[4] = BOX_NativeString("Type error: cannot instantiate the nullable type ");
10350 REGB0
= TAG_Int(49);
10351 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10352 once_value_4
= fra
.me
.REG
[4];
10353 register_static_object(&once_value_4
);
10354 } else fra
.me
.REG
[4] = once_value_4
;
10355 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10356 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10357 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10358 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10359 if (!once_value_5
) {
10360 fra
.me
.REG
[4] = BOX_NativeString(".");
10361 REGB0
= TAG_Int(1);
10362 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10363 once_value_5
= fra
.me
.REG
[4];
10364 register_static_object(&once_value_5
);
10365 } else fra
.me
.REG
[4] = once_value_5
;
10366 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10367 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10368 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10369 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
10371 /* syntax/typing.nit:1648 */
10372 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10373 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10374 if (UNTAG_Bool(REGB0
)) {
10376 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
10377 if (UNTAG_Bool(REGB1
)) {
10378 REGB1
= TAG_Bool(0);
10381 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
10385 if (UNTAG_Bool(REGB0
)) {
10386 /* syntax/typing.nit:1649 */
10387 if (!once_value_6
) {
10388 if (!once_value_7
) {
10389 fra
.me
.REG
[3] = BOX_NativeString("init");
10390 REGB0
= TAG_Int(4);
10391 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
10392 once_value_7
= fra
.me
.REG
[3];
10393 register_static_object(&once_value_7
);
10394 } else fra
.me
.REG
[3] = once_value_7
;
10395 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10396 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10397 once_value_6
= fra
.me
.REG
[3];
10398 register_static_object(&once_value_6
);
10399 } else fra
.me
.REG
[3] = once_value_6
;
10400 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10402 /* syntax/typing.nit:1651 */
10403 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ANewExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10404 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10405 if (UNTAG_Bool(REGB0
)) {
10406 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1651);
10408 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10409 fra
.me
.REG
[3] = fra
.me
.REG
[4];
10411 /* syntax/typing.nit:1654 */
10412 REGB0
= TAG_Bool(0);
10413 REGB1
= TAG_Bool(0);
10414 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10415 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
);
10416 /* syntax/typing.nit:1655 */
10417 fra
.me
.REG
[4] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[0]);
10418 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10419 if (UNTAG_Bool(REGB1
)) {
10421 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10422 if (UNTAG_Bool(REGB0
)) {
10423 REGB0
= TAG_Bool(0);
10426 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
10430 if (UNTAG_Bool(REGB1
)) {
10433 /* syntax/typing.nit:1657 */
10434 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10435 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10436 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10437 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10438 if (UNTAG_Bool(REGB1
)) {
10439 /* syntax/typing.nit:1658 */
10440 REGB1
= TAG_Int(3);
10441 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10442 if (!once_value_8
) {
10443 fra
.me
.REG
[3] = BOX_NativeString("Error: ");
10444 REGB1
= TAG_Int(7);
10445 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
10446 once_value_8
= fra
.me
.REG
[3];
10447 register_static_object(&once_value_8
);
10448 } else fra
.me
.REG
[3] = once_value_8
;
10449 fra
.me
.REG
[3] = fra
.me
.REG
[3];
10450 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10451 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10452 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10453 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
10454 if (!once_value_9
) {
10455 fra
.me
.REG
[3] = BOX_NativeString(" is not a constructor.");
10456 REGB1
= TAG_Int(22);
10457 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB1
);
10458 once_value_9
= fra
.me
.REG
[3];
10459 register_static_object(&once_value_9
);
10460 } else fra
.me
.REG
[3] = once_value_9
;
10461 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 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10464 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
10465 /* syntax/typing.nit:1659 */
10468 /* syntax/typing.nit:1661 */
10469 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
10470 /* syntax/typing.nit:1662 */
10471 REGB1
= TAG_Bool(1);
10472 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB1
;
10474 stack_frame_head
= fra
.me
.prev
;
10477 static const char LOCATE_syntax___typing___ASendExpr___name
[] = "typing::ASendExpr::name";
10478 val_t
syntax___typing___ASendExpr___name(val_t p0
){
10479 struct {struct stack_frame_t me
;} fra
;
10481 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10482 fra
.me
.file
= LOCATE_syntax___typing
;
10483 fra
.me
.line
= 1668;
10484 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___name
;
10485 fra
.me
.has_broke
= 0;
10486 fra
.me
.REG_size
= 0;
10487 fra
.me
.nitni_local_ref_head
= NULL
;
10488 /* syntax/typing.nit:1668 */
10489 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1668);
10490 stack_frame_head
= fra
.me
.prev
;
10493 static const char LOCATE_syntax___typing___ASendExpr___closure_defs
[] = "typing::ASendExpr::(syntax_base::ASendExpr::closure_defs)";
10494 val_t
syntax___typing___ASendExpr___closure_defs(val_t p0
){
10495 struct {struct stack_frame_t me
;} fra
;
10497 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10498 fra
.me
.file
= LOCATE_syntax___typing
;
10499 fra
.me
.line
= 1671;
10500 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___closure_defs
;
10501 fra
.me
.has_broke
= 0;
10502 fra
.me
.REG_size
= 1;
10503 fra
.me
.nitni_local_ref_head
= NULL
;
10504 fra
.me
.REG
[0] = NIT_NULL
;
10505 fra
.me
.REG
[0] = p0
;
10506 /* syntax/typing.nit:1672 */
10507 fra
.me
.REG
[0] = NIT_NULL
;
10510 stack_frame_head
= fra
.me
.prev
;
10511 return fra
.me
.REG
[0];
10513 static const char LOCATE_syntax___typing___ASendExpr___after_typing
[] = "typing::ASendExpr::(typing::ANode::after_typing)";
10514 void syntax___typing___ASendExpr___after_typing(val_t p0
, val_t p1
){
10515 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10517 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10518 fra
.me
.file
= LOCATE_syntax___typing
;
10519 fra
.me
.line
= 1674;
10520 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___after_typing
;
10521 fra
.me
.has_broke
= 0;
10522 fra
.me
.REG_size
= 2;
10523 fra
.me
.nitni_local_ref_head
= NULL
;
10524 fra
.me
.REG
[0] = NIT_NULL
;
10525 fra
.me
.REG
[1] = NIT_NULL
;
10526 fra
.me
.REG
[0] = p0
;
10527 fra
.me
.REG
[1] = p1
;
10528 /* syntax/typing.nit:1676 */
10529 CALL_syntax___typing___ASendExpr___do_all_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
10530 stack_frame_head
= fra
.me
.prev
;
10533 static const char LOCATE_syntax___typing___ASendExpr___do_all_typing
[] = "typing::ASendExpr::do_all_typing";
10534 void syntax___typing___ASendExpr___do_all_typing(val_t p0
, val_t p1
){
10535 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
10539 static val_t once_value_2
; /* Once value */
10540 static val_t once_value_3
; /* Once value */
10541 static val_t once_value_4
; /* Once value */
10542 static val_t once_value_5
; /* Once value */
10543 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10544 fra
.me
.file
= LOCATE_syntax___typing
;
10545 fra
.me
.line
= 1679;
10546 fra
.me
.meth
= LOCATE_syntax___typing___ASendExpr___do_all_typing
;
10547 fra
.me
.has_broke
= 0;
10548 fra
.me
.REG_size
= 7;
10549 fra
.me
.nitni_local_ref_head
= NULL
;
10550 fra
.me
.REG
[0] = NIT_NULL
;
10551 fra
.me
.REG
[1] = NIT_NULL
;
10552 fra
.me
.REG
[2] = NIT_NULL
;
10553 fra
.me
.REG
[3] = NIT_NULL
;
10554 fra
.me
.REG
[4] = NIT_NULL
;
10555 fra
.me
.REG
[5] = NIT_NULL
;
10556 fra
.me
.REG
[6] = NIT_NULL
;
10557 fra
.me
.REG
[0] = p0
;
10558 fra
.me
.REG
[1] = p1
;
10559 /* syntax/typing.nit:1679 */
10560 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10561 /* syntax/typing.nit:1681 */
10562 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10563 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
10564 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10565 if (UNTAG_Bool(REGB0
)) {
10568 /* syntax/typing.nit:1682 */
10569 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10570 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10571 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10572 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10573 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10574 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10575 fra
.me
.REG
[4] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10576 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10577 fra
.me
.REG
[6] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10578 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]);
10579 /* syntax/typing.nit:1683 */
10580 fra
.me
.REG
[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10581 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
10582 if (UNTAG_Bool(REGB1
)) {
10584 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
10585 if (UNTAG_Bool(REGB0
)) {
10586 REGB0
= TAG_Bool(0);
10589 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
10593 if (UNTAG_Bool(REGB1
)) {
10596 /* syntax/typing.nit:1684 */
10597 fra
.me
.REG
[6] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10598 REGB1
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
10599 if (UNTAG_Bool(REGB1
)) {
10601 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1684);
10603 /* syntax/typing.nit:1686 */
10604 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10605 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10606 if (UNTAG_Bool(REGB1
)) {
10607 /* syntax/typing.nit:1687 */
10608 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10609 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10610 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10611 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10612 if (UNTAG_Bool(REGB1
)) {
10613 /* syntax/typing.nit:1688 */
10614 REGB1
= TAG_Int(3);
10615 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10616 if (!once_value_2
) {
10617 fra
.me
.REG
[5] = BOX_NativeString("Error: try to invoke constructor ");
10618 REGB1
= TAG_Int(33);
10619 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10620 once_value_2
= fra
.me
.REG
[5];
10621 register_static_object(&once_value_2
);
10622 } else fra
.me
.REG
[5] = once_value_2
;
10623 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10624 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10625 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10626 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10627 if (!once_value_3
) {
10628 fra
.me
.REG
[5] = BOX_NativeString(" in a method.");
10629 REGB1
= TAG_Int(13);
10630 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10631 once_value_3
= fra
.me
.REG
[5];
10632 register_static_object(&once_value_3
);
10633 } else fra
.me
.REG
[5] = once_value_3
;
10634 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10635 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10636 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10637 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10639 /* syntax/typing.nit:1689 */
10640 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10641 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10642 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10643 if (UNTAG_Bool(REGB1
)) {
10644 /* syntax/typing.nit:1690 */
10645 REGB1
= TAG_Int(3);
10646 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10647 if (!once_value_4
) {
10648 fra
.me
.REG
[5] = BOX_NativeString("Error: constructor ");
10649 REGB1
= TAG_Int(19);
10650 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10651 once_value_4
= fra
.me
.REG
[5];
10652 register_static_object(&once_value_4
);
10653 } else fra
.me
.REG
[5] = once_value_4
;
10654 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10655 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10656 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10657 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10658 if (!once_value_5
) {
10659 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
10660 REGB1
= TAG_Int(26);
10661 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB1
);
10662 once_value_5
= fra
.me
.REG
[5];
10663 register_static_object(&once_value_5
);
10664 } else fra
.me
.REG
[5] = once_value_5
;
10665 fra
.me
.REG
[5] = fra
.me
.REG
[5];
10666 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
10667 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10668 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
10670 /* syntax/typing.nit:1692 */
10671 CALL_syntax___typing___ASuperInitCall___register_super_init_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[6]);
10675 /* syntax/typing.nit:1696 */
10676 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AAbsSendExpr___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10677 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
10678 /* syntax/typing.nit:1697 */
10679 REGB1
= TAG_Bool(1);
10680 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB1
;
10682 stack_frame_head
= fra
.me
.prev
;
10685 static const char LOCATE_syntax___typing___ASendReassignExpr___read_prop
[] = "typing::ASendReassignExpr::(syntax_base::ASendReassignExpr::read_prop)";
10686 val_t
syntax___typing___ASendReassignExpr___read_prop(val_t p0
){
10687 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
10690 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10691 fra
.me
.file
= LOCATE_syntax___typing
;
10692 fra
.me
.line
= 1702;
10693 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___read_prop
;
10694 fra
.me
.has_broke
= 0;
10695 fra
.me
.REG_size
= 2;
10696 fra
.me
.nitni_local_ref_head
= NULL
;
10697 fra
.me
.REG
[0] = NIT_NULL
;
10698 fra
.me
.REG
[1] = NIT_NULL
;
10699 fra
.me
.REG
[0] = p0
;
10700 /* syntax/typing.nit:1702 */
10701 fra
.me
.REG
[1] = fra
.me
.REG
[0];
10702 fra
.me
.REG
[1] = ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[1]);
10703 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
10704 if (UNTAG_Bool(REGB0
)) {
10706 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1702);
10710 stack_frame_head
= fra
.me
.prev
;
10711 return fra
.me
.REG
[1];
10713 static const char LOCATE_syntax___typing___ASendReassignExpr___do_all_typing
[] = "typing::ASendReassignExpr::(typing::ASendExpr::do_all_typing)";
10714 void syntax___typing___ASendReassignExpr___do_all_typing(val_t p0
, val_t p1
){
10715 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
10720 static val_t once_value_2
; /* Once value */
10721 static val_t once_value_3
; /* Once value */
10722 static val_t once_value_4
; /* Once value */
10723 static val_t once_value_5
; /* Once value */
10724 static val_t once_value_6
; /* Once value */
10725 static val_t once_value_7
; /* Once value */
10726 static val_t once_value_8
; /* Once value */
10727 static val_t once_value_9
; /* Once value */
10728 static val_t once_value_10
; /* Once value */
10729 static val_t once_value_11
; /* Once value */
10730 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10731 fra
.me
.file
= LOCATE_syntax___typing
;
10732 fra
.me
.line
= 1704;
10733 fra
.me
.meth
= LOCATE_syntax___typing___ASendReassignExpr___do_all_typing
;
10734 fra
.me
.has_broke
= 0;
10735 fra
.me
.REG_size
= 7;
10736 fra
.me
.nitni_local_ref_head
= NULL
;
10737 fra
.me
.REG
[0] = NIT_NULL
;
10738 fra
.me
.REG
[1] = NIT_NULL
;
10739 fra
.me
.REG
[2] = NIT_NULL
;
10740 fra
.me
.REG
[3] = NIT_NULL
;
10741 fra
.me
.REG
[4] = NIT_NULL
;
10742 fra
.me
.REG
[5] = NIT_NULL
;
10743 fra
.me
.REG
[6] = NIT_NULL
;
10744 fra
.me
.REG
[0] = p0
;
10745 fra
.me
.REG
[1] = p1
;
10746 /* syntax/typing.nit:1704 */
10747 fra
.me
.REG
[2] = fra
.me
.REG
[0];
10748 /* syntax/typing.nit:1706 */
10749 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10750 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
10751 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10752 if (UNTAG_Bool(REGB0
)) {
10755 /* syntax/typing.nit:1707 */
10756 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10757 /* syntax/typing.nit:1708 */
10758 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10759 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10760 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10761 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10762 fra
.me
.REG
[5] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10763 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10764 fra
.me
.REG
[5] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10765 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
);
10766 /* syntax/typing.nit:1709 */
10767 fra
.me
.REG
[5] = ATTR_syntax___typing___AAbsSendExpr____prop(fra
.me
.REG
[2]);
10768 /* syntax/typing.nit:1710 */
10769 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10770 if (UNTAG_Bool(REGB1
)) {
10772 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10773 if (UNTAG_Bool(REGB0
)) {
10774 REGB0
= TAG_Bool(0);
10777 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
10781 if (UNTAG_Bool(REGB1
)) {
10784 /* syntax/typing.nit:1711 */
10785 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10786 if (UNTAG_Bool(REGB1
)) {
10787 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1711);
10789 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10790 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10791 if (UNTAG_Bool(REGB1
)) {
10792 /* syntax/typing.nit:1712 */
10793 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10794 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10795 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10796 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10797 if (UNTAG_Bool(REGB1
)) {
10798 /* syntax/typing.nit:1713 */
10799 REGB1
= TAG_Int(3);
10800 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10801 if (!once_value_2
) {
10802 fra
.me
.REG
[6] = BOX_NativeString("Error: try to invoke constructor ");
10803 REGB1
= TAG_Int(33);
10804 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10805 once_value_2
= fra
.me
.REG
[6];
10806 register_static_object(&once_value_2
);
10807 } else fra
.me
.REG
[6] = once_value_2
;
10808 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10809 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10810 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10811 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10812 if (!once_value_3
) {
10813 fra
.me
.REG
[6] = BOX_NativeString(" in a method.");
10814 REGB1
= TAG_Int(13);
10815 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10816 once_value_3
= fra
.me
.REG
[6];
10817 register_static_object(&once_value_3
);
10818 } else fra
.me
.REG
[6] = once_value_3
;
10819 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10820 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10821 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10822 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
10824 /* syntax/typing.nit:1714 */
10825 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10826 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10827 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10828 if (UNTAG_Bool(REGB1
)) {
10829 /* syntax/typing.nit:1715 */
10830 REGB1
= TAG_Int(3);
10831 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
10832 if (!once_value_4
) {
10833 fra
.me
.REG
[6] = BOX_NativeString("Error: constructor ");
10834 REGB1
= TAG_Int(19);
10835 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10836 once_value_4
= fra
.me
.REG
[6];
10837 register_static_object(&once_value_4
);
10838 } else fra
.me
.REG
[6] = once_value_4
;
10839 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10840 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10841 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10842 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10843 if (!once_value_5
) {
10844 fra
.me
.REG
[6] = BOX_NativeString(" is not invoken on 'self'.");
10845 REGB1
= TAG_Int(26);
10846 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
10847 once_value_5
= fra
.me
.REG
[6];
10848 register_static_object(&once_value_5
);
10849 } else fra
.me
.REG
[6] = once_value_5
;
10850 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10851 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10852 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10853 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
10857 /* syntax/typing.nit:1718 */
10858 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10859 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10860 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10861 if (UNTAG_Bool(REGB1
)) {
10862 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1718);
10864 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
10865 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10866 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*/;
10867 if (UNTAG_Bool(REGB1
)) {
10869 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1718);
10871 /* syntax/typing.nit:1719 */
10872 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10873 REGB1
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10874 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
10875 if (UNTAG_Bool(REGB1
)) {
10876 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10877 fra
.me
.REG
[4] = fra
.me
.REG
[0];
10879 /* syntax/typing.nit:1721 */
10880 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]);
10881 /* syntax/typing.nit:1722 */
10882 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10883 if (UNTAG_Bool(REGB1
)) {
10885 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
10886 if (UNTAG_Bool(REGB0
)) {
10887 REGB0
= TAG_Bool(0);
10890 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
10894 if (UNTAG_Bool(REGB1
)) {
10897 /* syntax/typing.nit:1723 */
10898 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10899 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10900 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]);
10901 /* syntax/typing.nit:1725 */
10902 ATTR_syntax___typing___ASendReassignExpr____read_prop(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
10903 /* syntax/typing.nit:1726 */
10904 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10905 fra
.me
.REG
[3] = fra
.me
.REG
[0];
10906 /* syntax/typing.nit:1727 */
10907 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10908 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[0]);
10909 /* syntax/typing.nit:1729 */
10910 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10911 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
10912 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10913 REGB1
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10914 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10915 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10916 REGB2
= TAG_Int(3);
10917 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
10918 if (!once_value_6
) {
10919 fra
.me
.REG
[6] = BOX_NativeString("");
10920 REGB2
= TAG_Int(0);
10921 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
10922 once_value_6
= fra
.me
.REG
[6];
10923 register_static_object(&once_value_6
);
10924 } else fra
.me
.REG
[6] = once_value_6
;
10925 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10926 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10927 fra
.me
.REG
[6] = CALL_syntax___typing___ASendExpr___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10928 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
10929 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10930 if (!once_value_7
) {
10931 fra
.me
.REG
[6] = BOX_NativeString("=");
10932 REGB2
= TAG_Int(1);
10933 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB2
);
10934 once_value_7
= fra
.me
.REG
[6];
10935 register_static_object(&once_value_7
);
10936 } else fra
.me
.REG
[6] = once_value_7
;
10937 fra
.me
.REG
[6] = fra
.me
.REG
[6];
10938 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
10939 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10940 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
10941 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
);
10942 /* syntax/typing.nit:1730 */
10943 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
10944 if (UNTAG_Bool(REGB0
)) {
10945 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 1730);
10947 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10948 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10949 if (UNTAG_Bool(REGB0
)) {
10950 /* syntax/typing.nit:1731 */
10951 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
10952 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10953 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10954 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10955 if (UNTAG_Bool(REGB0
)) {
10956 /* syntax/typing.nit:1732 */
10957 REGB0
= TAG_Int(3);
10958 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10959 if (!once_value_8
) {
10960 fra
.me
.REG
[4] = BOX_NativeString("Error: try to invoke constructor ");
10961 REGB0
= TAG_Int(33);
10962 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10963 once_value_8
= fra
.me
.REG
[4];
10964 register_static_object(&once_value_8
);
10965 } else fra
.me
.REG
[4] = once_value_8
;
10966 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10967 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10968 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
10969 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10970 if (!once_value_9
) {
10971 fra
.me
.REG
[4] = BOX_NativeString(" in a method.");
10972 REGB0
= TAG_Int(13);
10973 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10974 once_value_9
= fra
.me
.REG
[4];
10975 register_static_object(&once_value_9
);
10976 } else fra
.me
.REG
[4] = once_value_9
;
10977 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10978 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10979 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10980 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
10982 /* syntax/typing.nit:1733 */
10983 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
10984 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
10985 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
10986 if (UNTAG_Bool(REGB0
)) {
10987 /* syntax/typing.nit:1734 */
10988 REGB0
= TAG_Int(3);
10989 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
10990 if (!once_value_10
) {
10991 fra
.me
.REG
[4] = BOX_NativeString("Error: constructor ");
10992 REGB0
= TAG_Int(19);
10993 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
10994 once_value_10
= fra
.me
.REG
[4];
10995 register_static_object(&once_value_10
);
10996 } else fra
.me
.REG
[4] = once_value_10
;
10997 fra
.me
.REG
[4] = fra
.me
.REG
[4];
10998 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
10999 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
11000 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
11001 if (!once_value_11
) {
11002 fra
.me
.REG
[5] = BOX_NativeString(" is not invoken on 'self'.");
11003 REGB0
= TAG_Int(26);
11004 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
11005 once_value_11
= fra
.me
.REG
[5];
11006 register_static_object(&once_value_11
);
11007 } else fra
.me
.REG
[5] = once_value_11
;
11008 fra
.me
.REG
[5] = fra
.me
.REG
[5];
11009 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
11010 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
11011 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
11015 /* syntax/typing.nit:1738 */
11016 REGB0
= TAG_Bool(1);
11017 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[2]) = REGB0
;
11019 stack_frame_head
= fra
.me
.prev
;
11022 static const char LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments
[] = "typing::ABinopExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
11023 val_t
syntax___typing___ABinopExpr___compute_raw_arguments(val_t p0
){
11024 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
11027 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11028 fra
.me
.file
= LOCATE_syntax___typing
;
11029 fra
.me
.line
= 1743;
11030 fra
.me
.meth
= LOCATE_syntax___typing___ABinopExpr___compute_raw_arguments
;
11031 fra
.me
.has_broke
= 0;
11032 fra
.me
.REG_size
= 2;
11033 fra
.me
.nitni_local_ref_head
= NULL
;
11034 fra
.me
.REG
[0] = NIT_NULL
;
11035 fra
.me
.REG
[1] = NIT_NULL
;
11036 fra
.me
.REG
[0] = p0
;
11037 /* syntax/typing.nit:1743 */
11038 REGB0
= TAG_Int(1);
11039 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
11040 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11041 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
11044 stack_frame_head
= fra
.me
.prev
;
11045 return fra
.me
.REG
[1];
11047 static const char LOCATE_syntax___typing___AEqExpr___name
[] = "typing::AEqExpr::(typing::ASendExpr::name)";
11048 val_t
syntax___typing___AEqExpr___name(val_t p0
){
11049 struct {struct stack_frame_t me
;} fra
;
11052 static val_t once_value_1
; /* Once value */
11053 static val_t once_value_2
; /* Once value */
11054 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11055 fra
.me
.file
= LOCATE_syntax___typing
;
11056 fra
.me
.line
= 1746;
11057 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___name
;
11058 fra
.me
.has_broke
= 0;
11059 fra
.me
.REG_size
= 1;
11060 fra
.me
.nitni_local_ref_head
= NULL
;
11061 fra
.me
.REG
[0] = NIT_NULL
;
11062 fra
.me
.REG
[0] = p0
;
11063 /* syntax/typing.nit:1746 */
11064 if (!once_value_1
) {
11065 if (!once_value_2
) {
11066 fra
.me
.REG
[0] = BOX_NativeString("==");
11067 REGB0
= TAG_Int(2);
11068 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11069 once_value_2
= fra
.me
.REG
[0];
11070 register_static_object(&once_value_2
);
11071 } else fra
.me
.REG
[0] = once_value_2
;
11072 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11073 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11074 once_value_1
= fra
.me
.REG
[0];
11075 register_static_object(&once_value_1
);
11076 } else fra
.me
.REG
[0] = once_value_1
;
11077 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11080 stack_frame_head
= fra
.me
.prev
;
11081 return fra
.me
.REG
[0];
11083 static const char LOCATE_syntax___typing___AEqExpr___after_typing
[] = "typing::AEqExpr::(typing::ANode::after_typing)";
11084 void syntax___typing___AEqExpr___after_typing(val_t p0
, val_t p1
){
11085 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
11089 static val_t once_value_2
; /* Once value */
11090 static val_t once_value_3
; /* Once value */
11091 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11092 fra
.me
.file
= LOCATE_syntax___typing
;
11093 fra
.me
.line
= 1747;
11094 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___after_typing
;
11095 fra
.me
.has_broke
= 0;
11096 fra
.me
.REG_size
= 4;
11097 fra
.me
.nitni_local_ref_head
= NULL
;
11098 fra
.me
.REG
[0] = NIT_NULL
;
11099 fra
.me
.REG
[1] = NIT_NULL
;
11100 fra
.me
.REG
[2] = NIT_NULL
;
11101 fra
.me
.REG
[3] = NIT_NULL
;
11102 fra
.me
.REG
[0] = p0
;
11103 fra
.me
.REG
[1] = p1
;
11104 /* syntax/typing.nit:1747 */
11105 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11106 fra
.me
.REG
[3] = fra
.me
.REG
[1];
11107 /* syntax/typing.nit:1749 */
11108 CALL_SUPER_syntax___typing___AEqExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11109 /* syntax/typing.nit:1750 */
11110 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11111 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11112 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11113 if (UNTAG_Bool(REGB0
)) {
11114 REGB0
= TAG_Bool(1);
11116 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11117 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11118 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
11121 if (UNTAG_Bool(REGB0
)) {
11124 /* syntax/typing.nit:1751 */
11125 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11126 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11127 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11128 if (UNTAG_Bool(REGB0
)) {
11129 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11130 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11131 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11132 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11134 REGB1
= TAG_Bool(0);
11137 if (UNTAG_Bool(REGB0
)) {
11138 REGB0
= TAG_Bool(1);
11140 /* syntax/typing.nit:1752 */
11141 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11142 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11143 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11144 /* syntax/typing.nit:1751 */
11147 if (UNTAG_Bool(REGB0
)) {
11148 /* syntax/typing.nit:1752 */
11149 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11150 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11151 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11152 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11154 /* syntax/typing.nit:1751 */
11155 REGB1
= TAG_Bool(0);
11158 if (UNTAG_Bool(REGB0
)) {
11159 /* syntax/typing.nit:1753 */
11160 if (!once_value_2
) {
11161 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
11162 REGB0
= TAG_Int(59);
11163 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11164 once_value_2
= fra
.me
.REG
[1];
11165 register_static_object(&once_value_2
);
11166 } else fra
.me
.REG
[1] = once_value_2
;
11167 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11168 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11170 /* syntax/typing.nit:1756 */
11171 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11172 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11173 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11174 if (UNTAG_Bool(REGB0
)) {
11175 /* syntax/typing.nit:1757 */
11176 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11177 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11178 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11179 if (UNTAG_Bool(REGB0
)) {
11180 /* syntax/typing.nit:1758 */
11181 if (!once_value_3
) {
11182 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between two null values.");
11183 REGB0
= TAG_Int(45);
11184 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11185 once_value_3
= fra
.me
.REG
[1];
11186 register_static_object(&once_value_3
);
11187 } else fra
.me
.REG
[1] = once_value_3
;
11188 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11189 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11191 /* syntax/typing.nit:1760 */
11192 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11193 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11196 /* syntax/typing.nit:1762 */
11197 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11198 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11199 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11200 if (UNTAG_Bool(REGB0
)) {
11201 /* syntax/typing.nit:1763 */
11202 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11203 CALL_syntax___typing___AEqExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11207 stack_frame_head
= fra
.me
.prev
;
11210 static const char LOCATE_syntax___typing___AEqExpr___try_to_isa
[] = "typing::AEqExpr::try_to_isa";
11211 void syntax___typing___AEqExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
11212 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11216 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11217 fra
.me
.file
= LOCATE_syntax___typing
;
11218 fra
.me
.line
= 1767;
11219 fra
.me
.meth
= LOCATE_syntax___typing___AEqExpr___try_to_isa
;
11220 fra
.me
.has_broke
= 0;
11221 fra
.me
.REG_size
= 5;
11222 fra
.me
.nitni_local_ref_head
= NULL
;
11223 fra
.me
.REG
[0] = NIT_NULL
;
11224 fra
.me
.REG
[1] = NIT_NULL
;
11225 fra
.me
.REG
[2] = NIT_NULL
;
11226 fra
.me
.REG
[3] = NIT_NULL
;
11227 fra
.me
.REG
[4] = NIT_NULL
;
11228 fra
.me
.REG
[0] = p0
;
11229 fra
.me
.REG
[1] = p1
;
11230 fra
.me
.REG
[2] = p2
;
11231 /* syntax/typing.nit:1769 */
11232 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11233 /* syntax/typing.nit:1770 */
11234 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11235 if (UNTAG_Bool(REGB0
)) {
11237 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11238 if (UNTAG_Bool(REGB1
)) {
11239 REGB1
= TAG_Bool(0);
11242 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
11246 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11247 if (UNTAG_Bool(REGB0
)) {
11248 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11249 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
11251 REGB1
= TAG_Bool(0);
11254 if (UNTAG_Bool(REGB0
)) {
11255 /* syntax/typing.nit:1771 */
11256 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11257 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11258 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11259 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]);
11260 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11261 /* syntax/typing.nit:1772 */
11262 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11263 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11264 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]);
11265 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
11267 stack_frame_head
= fra
.me
.prev
;
11270 static const char LOCATE_syntax___typing___ANeExpr___name
[] = "typing::ANeExpr::(typing::ASendExpr::name)";
11271 val_t
syntax___typing___ANeExpr___name(val_t p0
){
11272 struct {struct stack_frame_t me
;} fra
;
11275 static val_t once_value_1
; /* Once value */
11276 static val_t once_value_2
; /* Once value */
11277 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11278 fra
.me
.file
= LOCATE_syntax___typing
;
11279 fra
.me
.line
= 1777;
11280 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___name
;
11281 fra
.me
.has_broke
= 0;
11282 fra
.me
.REG_size
= 1;
11283 fra
.me
.nitni_local_ref_head
= NULL
;
11284 fra
.me
.REG
[0] = NIT_NULL
;
11285 fra
.me
.REG
[0] = p0
;
11286 /* syntax/typing.nit:1777 */
11287 if (!once_value_1
) {
11288 if (!once_value_2
) {
11289 fra
.me
.REG
[0] = BOX_NativeString("!=");
11290 REGB0
= TAG_Int(2);
11291 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11292 once_value_2
= fra
.me
.REG
[0];
11293 register_static_object(&once_value_2
);
11294 } else fra
.me
.REG
[0] = once_value_2
;
11295 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11296 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11297 once_value_1
= fra
.me
.REG
[0];
11298 register_static_object(&once_value_1
);
11299 } else fra
.me
.REG
[0] = once_value_1
;
11300 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11303 stack_frame_head
= fra
.me
.prev
;
11304 return fra
.me
.REG
[0];
11306 static const char LOCATE_syntax___typing___ANeExpr___after_typing
[] = "typing::ANeExpr::(typing::ANode::after_typing)";
11307 void syntax___typing___ANeExpr___after_typing(val_t p0
, val_t p1
){
11308 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
11312 static val_t once_value_2
; /* Once value */
11313 static val_t once_value_3
; /* Once value */
11314 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11315 fra
.me
.file
= LOCATE_syntax___typing
;
11316 fra
.me
.line
= 1778;
11317 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___after_typing
;
11318 fra
.me
.has_broke
= 0;
11319 fra
.me
.REG_size
= 4;
11320 fra
.me
.nitni_local_ref_head
= NULL
;
11321 fra
.me
.REG
[0] = NIT_NULL
;
11322 fra
.me
.REG
[1] = NIT_NULL
;
11323 fra
.me
.REG
[2] = NIT_NULL
;
11324 fra
.me
.REG
[3] = NIT_NULL
;
11325 fra
.me
.REG
[0] = p0
;
11326 fra
.me
.REG
[1] = p1
;
11327 /* syntax/typing.nit:1778 */
11328 fra
.me
.REG
[2] = fra
.me
.REG
[0];
11329 fra
.me
.REG
[3] = fra
.me
.REG
[1];
11330 /* syntax/typing.nit:1780 */
11331 CALL_SUPER_syntax___typing___ANeExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
11332 /* syntax/typing.nit:1781 */
11333 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11334 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11335 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11336 if (UNTAG_Bool(REGB0
)) {
11337 REGB0
= TAG_Bool(1);
11339 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11340 REGB1
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11341 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
11344 if (UNTAG_Bool(REGB0
)) {
11347 /* syntax/typing.nit:1782 */
11348 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11349 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11350 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11351 if (UNTAG_Bool(REGB0
)) {
11352 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11353 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11354 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11355 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11357 REGB1
= TAG_Bool(0);
11360 if (UNTAG_Bool(REGB0
)) {
11361 REGB0
= TAG_Bool(1);
11363 /* syntax/typing.nit:1783 */
11364 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11365 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11366 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11367 /* syntax/typing.nit:1782 */
11370 if (UNTAG_Bool(REGB0
)) {
11371 /* syntax/typing.nit:1783 */
11372 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11373 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11374 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11375 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11377 /* syntax/typing.nit:1782 */
11378 REGB1
= TAG_Bool(0);
11381 if (UNTAG_Bool(REGB0
)) {
11382 /* syntax/typing.nit:1784 */
11383 if (!once_value_2
) {
11384 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between null and a non nullable value.");
11385 REGB0
= TAG_Int(59);
11386 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11387 once_value_2
= fra
.me
.REG
[1];
11388 register_static_object(&once_value_2
);
11389 } else fra
.me
.REG
[1] = once_value_2
;
11390 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11391 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11393 /* syntax/typing.nit:1787 */
11394 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11395 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11396 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11397 if (UNTAG_Bool(REGB0
)) {
11398 /* syntax/typing.nit:1788 */
11399 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11400 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11401 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11402 if (UNTAG_Bool(REGB0
)) {
11403 /* syntax/typing.nit:1789 */
11404 if (!once_value_3
) {
11405 fra
.me
.REG
[1] = BOX_NativeString("Warning: comparaison between two null values.");
11406 REGB0
= TAG_Int(45);
11407 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
11408 once_value_3
= fra
.me
.REG
[1];
11409 register_static_object(&once_value_3
);
11410 } else fra
.me
.REG
[1] = once_value_3
;
11411 fra
.me
.REG
[1] = fra
.me
.REG
[1];
11412 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
11414 /* syntax/typing.nit:1791 */
11415 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11416 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11419 /* syntax/typing.nit:1793 */
11420 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABinopExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11421 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11422 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
11423 if (UNTAG_Bool(REGB0
)) {
11424 /* syntax/typing.nit:1794 */
11425 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11426 CALL_syntax___typing___ANeExpr___try_to_isa(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
11430 stack_frame_head
= fra
.me
.prev
;
11433 static const char LOCATE_syntax___typing___ANeExpr___try_to_isa
[] = "typing::ANeExpr::try_to_isa";
11434 void syntax___typing___ANeExpr___try_to_isa(val_t p0
, val_t p1
, val_t p2
){
11435 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
11439 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11440 fra
.me
.file
= LOCATE_syntax___typing
;
11441 fra
.me
.line
= 1798;
11442 fra
.me
.meth
= LOCATE_syntax___typing___ANeExpr___try_to_isa
;
11443 fra
.me
.has_broke
= 0;
11444 fra
.me
.REG_size
= 5;
11445 fra
.me
.nitni_local_ref_head
= NULL
;
11446 fra
.me
.REG
[0] = NIT_NULL
;
11447 fra
.me
.REG
[1] = NIT_NULL
;
11448 fra
.me
.REG
[2] = NIT_NULL
;
11449 fra
.me
.REG
[3] = NIT_NULL
;
11450 fra
.me
.REG
[4] = NIT_NULL
;
11451 fra
.me
.REG
[0] = p0
;
11452 fra
.me
.REG
[1] = p1
;
11453 fra
.me
.REG
[2] = p2
;
11454 /* syntax/typing.nit:1800 */
11455 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11456 /* syntax/typing.nit:1801 */
11457 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11458 if (UNTAG_Bool(REGB0
)) {
11460 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
11461 if (UNTAG_Bool(REGB1
)) {
11462 REGB1
= TAG_Bool(0);
11465 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
11469 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
11470 if (UNTAG_Bool(REGB0
)) {
11471 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11472 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMNullableType
, ID_metamodel___static_type___MMNullableType
)) /*cast MMNullableType*/;
11474 REGB1
= TAG_Bool(0);
11477 if (UNTAG_Bool(REGB0
)) {
11478 /* syntax/typing.nit:1802 */
11479 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11480 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11481 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
11482 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]);
11483 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
11484 /* syntax/typing.nit:1803 */
11485 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11486 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
11487 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]);
11488 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
11490 stack_frame_head
= fra
.me
.prev
;
11493 static const char LOCATE_syntax___typing___ALtExpr___name
[] = "typing::ALtExpr::(typing::ASendExpr::name)";
11494 val_t
syntax___typing___ALtExpr___name(val_t p0
){
11495 struct {struct stack_frame_t me
;} fra
;
11498 static val_t once_value_1
; /* Once value */
11499 static val_t once_value_2
; /* Once value */
11500 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11501 fra
.me
.file
= LOCATE_syntax___typing
;
11502 fra
.me
.line
= 1808;
11503 fra
.me
.meth
= LOCATE_syntax___typing___ALtExpr___name
;
11504 fra
.me
.has_broke
= 0;
11505 fra
.me
.REG_size
= 1;
11506 fra
.me
.nitni_local_ref_head
= NULL
;
11507 fra
.me
.REG
[0] = NIT_NULL
;
11508 fra
.me
.REG
[0] = p0
;
11509 /* syntax/typing.nit:1808 */
11510 if (!once_value_1
) {
11511 if (!once_value_2
) {
11512 fra
.me
.REG
[0] = BOX_NativeString("<");
11513 REGB0
= TAG_Int(1);
11514 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11515 once_value_2
= fra
.me
.REG
[0];
11516 register_static_object(&once_value_2
);
11517 } else fra
.me
.REG
[0] = once_value_2
;
11518 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11519 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11520 once_value_1
= fra
.me
.REG
[0];
11521 register_static_object(&once_value_1
);
11522 } else fra
.me
.REG
[0] = once_value_1
;
11523 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11526 stack_frame_head
= fra
.me
.prev
;
11527 return fra
.me
.REG
[0];
11529 static const char LOCATE_syntax___typing___ALeExpr___name
[] = "typing::ALeExpr::(typing::ASendExpr::name)";
11530 val_t
syntax___typing___ALeExpr___name(val_t p0
){
11531 struct {struct stack_frame_t me
;} fra
;
11534 static val_t once_value_1
; /* Once value */
11535 static val_t once_value_2
; /* Once value */
11536 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11537 fra
.me
.file
= LOCATE_syntax___typing
;
11538 fra
.me
.line
= 1811;
11539 fra
.me
.meth
= LOCATE_syntax___typing___ALeExpr___name
;
11540 fra
.me
.has_broke
= 0;
11541 fra
.me
.REG_size
= 1;
11542 fra
.me
.nitni_local_ref_head
= NULL
;
11543 fra
.me
.REG
[0] = NIT_NULL
;
11544 fra
.me
.REG
[0] = p0
;
11545 /* syntax/typing.nit:1811 */
11546 if (!once_value_1
) {
11547 if (!once_value_2
) {
11548 fra
.me
.REG
[0] = BOX_NativeString("<=");
11549 REGB0
= TAG_Int(2);
11550 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11551 once_value_2
= fra
.me
.REG
[0];
11552 register_static_object(&once_value_2
);
11553 } else fra
.me
.REG
[0] = once_value_2
;
11554 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11555 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11556 once_value_1
= fra
.me
.REG
[0];
11557 register_static_object(&once_value_1
);
11558 } else fra
.me
.REG
[0] = once_value_1
;
11559 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11562 stack_frame_head
= fra
.me
.prev
;
11563 return fra
.me
.REG
[0];
11565 static const char LOCATE_syntax___typing___ALlExpr___name
[] = "typing::ALlExpr::(typing::ASendExpr::name)";
11566 val_t
syntax___typing___ALlExpr___name(val_t p0
){
11567 struct {struct stack_frame_t me
;} fra
;
11570 static val_t once_value_1
; /* Once value */
11571 static val_t once_value_2
; /* Once value */
11572 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11573 fra
.me
.file
= LOCATE_syntax___typing
;
11574 fra
.me
.line
= 1814;
11575 fra
.me
.meth
= LOCATE_syntax___typing___ALlExpr___name
;
11576 fra
.me
.has_broke
= 0;
11577 fra
.me
.REG_size
= 1;
11578 fra
.me
.nitni_local_ref_head
= NULL
;
11579 fra
.me
.REG
[0] = NIT_NULL
;
11580 fra
.me
.REG
[0] = p0
;
11581 /* syntax/typing.nit:1814 */
11582 if (!once_value_1
) {
11583 if (!once_value_2
) {
11584 fra
.me
.REG
[0] = BOX_NativeString("<<");
11585 REGB0
= TAG_Int(2);
11586 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11587 once_value_2
= fra
.me
.REG
[0];
11588 register_static_object(&once_value_2
);
11589 } else fra
.me
.REG
[0] = once_value_2
;
11590 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11591 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11592 once_value_1
= fra
.me
.REG
[0];
11593 register_static_object(&once_value_1
);
11594 } else fra
.me
.REG
[0] = once_value_1
;
11595 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11598 stack_frame_head
= fra
.me
.prev
;
11599 return fra
.me
.REG
[0];
11601 static const char LOCATE_syntax___typing___AGtExpr___name
[] = "typing::AGtExpr::(typing::ASendExpr::name)";
11602 val_t
syntax___typing___AGtExpr___name(val_t p0
){
11603 struct {struct stack_frame_t me
;} fra
;
11606 static val_t once_value_1
; /* Once value */
11607 static val_t once_value_2
; /* Once value */
11608 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11609 fra
.me
.file
= LOCATE_syntax___typing
;
11610 fra
.me
.line
= 1817;
11611 fra
.me
.meth
= LOCATE_syntax___typing___AGtExpr___name
;
11612 fra
.me
.has_broke
= 0;
11613 fra
.me
.REG_size
= 1;
11614 fra
.me
.nitni_local_ref_head
= NULL
;
11615 fra
.me
.REG
[0] = NIT_NULL
;
11616 fra
.me
.REG
[0] = p0
;
11617 /* syntax/typing.nit:1817 */
11618 if (!once_value_1
) {
11619 if (!once_value_2
) {
11620 fra
.me
.REG
[0] = BOX_NativeString(">");
11621 REGB0
= TAG_Int(1);
11622 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11623 once_value_2
= fra
.me
.REG
[0];
11624 register_static_object(&once_value_2
);
11625 } else fra
.me
.REG
[0] = once_value_2
;
11626 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11627 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11628 once_value_1
= fra
.me
.REG
[0];
11629 register_static_object(&once_value_1
);
11630 } else fra
.me
.REG
[0] = once_value_1
;
11631 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11634 stack_frame_head
= fra
.me
.prev
;
11635 return fra
.me
.REG
[0];
11637 static const char LOCATE_syntax___typing___AGeExpr___name
[] = "typing::AGeExpr::(typing::ASendExpr::name)";
11638 val_t
syntax___typing___AGeExpr___name(val_t p0
){
11639 struct {struct stack_frame_t me
;} fra
;
11642 static val_t once_value_1
; /* Once value */
11643 static val_t once_value_2
; /* Once value */
11644 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11645 fra
.me
.file
= LOCATE_syntax___typing
;
11646 fra
.me
.line
= 1820;
11647 fra
.me
.meth
= LOCATE_syntax___typing___AGeExpr___name
;
11648 fra
.me
.has_broke
= 0;
11649 fra
.me
.REG_size
= 1;
11650 fra
.me
.nitni_local_ref_head
= NULL
;
11651 fra
.me
.REG
[0] = NIT_NULL
;
11652 fra
.me
.REG
[0] = p0
;
11653 /* syntax/typing.nit:1820 */
11654 if (!once_value_1
) {
11655 if (!once_value_2
) {
11656 fra
.me
.REG
[0] = BOX_NativeString(">=");
11657 REGB0
= TAG_Int(2);
11658 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11659 once_value_2
= fra
.me
.REG
[0];
11660 register_static_object(&once_value_2
);
11661 } else fra
.me
.REG
[0] = once_value_2
;
11662 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11663 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11664 once_value_1
= fra
.me
.REG
[0];
11665 register_static_object(&once_value_1
);
11666 } else fra
.me
.REG
[0] = once_value_1
;
11667 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11670 stack_frame_head
= fra
.me
.prev
;
11671 return fra
.me
.REG
[0];
11673 static const char LOCATE_syntax___typing___AGgExpr___name
[] = "typing::AGgExpr::(typing::ASendExpr::name)";
11674 val_t
syntax___typing___AGgExpr___name(val_t p0
){
11675 struct {struct stack_frame_t me
;} fra
;
11678 static val_t once_value_1
; /* Once value */
11679 static val_t once_value_2
; /* Once value */
11680 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11681 fra
.me
.file
= LOCATE_syntax___typing
;
11682 fra
.me
.line
= 1823;
11683 fra
.me
.meth
= LOCATE_syntax___typing___AGgExpr___name
;
11684 fra
.me
.has_broke
= 0;
11685 fra
.me
.REG_size
= 1;
11686 fra
.me
.nitni_local_ref_head
= NULL
;
11687 fra
.me
.REG
[0] = NIT_NULL
;
11688 fra
.me
.REG
[0] = p0
;
11689 /* syntax/typing.nit:1823 */
11690 if (!once_value_1
) {
11691 if (!once_value_2
) {
11692 fra
.me
.REG
[0] = BOX_NativeString(">>");
11693 REGB0
= TAG_Int(2);
11694 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11695 once_value_2
= fra
.me
.REG
[0];
11696 register_static_object(&once_value_2
);
11697 } else fra
.me
.REG
[0] = once_value_2
;
11698 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11699 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11700 once_value_1
= fra
.me
.REG
[0];
11701 register_static_object(&once_value_1
);
11702 } else fra
.me
.REG
[0] = once_value_1
;
11703 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11706 stack_frame_head
= fra
.me
.prev
;
11707 return fra
.me
.REG
[0];
11709 static const char LOCATE_syntax___typing___APlusExpr___name
[] = "typing::APlusExpr::(typing::ASendExpr::name)";
11710 val_t
syntax___typing___APlusExpr___name(val_t p0
){
11711 struct {struct stack_frame_t me
;} fra
;
11714 static val_t once_value_1
; /* Once value */
11715 static val_t once_value_2
; /* Once value */
11716 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11717 fra
.me
.file
= LOCATE_syntax___typing
;
11718 fra
.me
.line
= 1826;
11719 fra
.me
.meth
= LOCATE_syntax___typing___APlusExpr___name
;
11720 fra
.me
.has_broke
= 0;
11721 fra
.me
.REG_size
= 1;
11722 fra
.me
.nitni_local_ref_head
= NULL
;
11723 fra
.me
.REG
[0] = NIT_NULL
;
11724 fra
.me
.REG
[0] = p0
;
11725 /* syntax/typing.nit:1826 */
11726 if (!once_value_1
) {
11727 if (!once_value_2
) {
11728 fra
.me
.REG
[0] = BOX_NativeString("+");
11729 REGB0
= TAG_Int(1);
11730 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11731 once_value_2
= fra
.me
.REG
[0];
11732 register_static_object(&once_value_2
);
11733 } else fra
.me
.REG
[0] = once_value_2
;
11734 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11735 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11736 once_value_1
= fra
.me
.REG
[0];
11737 register_static_object(&once_value_1
);
11738 } else fra
.me
.REG
[0] = once_value_1
;
11739 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11742 stack_frame_head
= fra
.me
.prev
;
11743 return fra
.me
.REG
[0];
11745 static const char LOCATE_syntax___typing___AMinusExpr___name
[] = "typing::AMinusExpr::(typing::ASendExpr::name)";
11746 val_t
syntax___typing___AMinusExpr___name(val_t p0
){
11747 struct {struct stack_frame_t me
;} fra
;
11750 static val_t once_value_1
; /* Once value */
11751 static val_t once_value_2
; /* Once value */
11752 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11753 fra
.me
.file
= LOCATE_syntax___typing
;
11754 fra
.me
.line
= 1829;
11755 fra
.me
.meth
= LOCATE_syntax___typing___AMinusExpr___name
;
11756 fra
.me
.has_broke
= 0;
11757 fra
.me
.REG_size
= 1;
11758 fra
.me
.nitni_local_ref_head
= NULL
;
11759 fra
.me
.REG
[0] = NIT_NULL
;
11760 fra
.me
.REG
[0] = p0
;
11761 /* syntax/typing.nit:1829 */
11762 if (!once_value_1
) {
11763 if (!once_value_2
) {
11764 fra
.me
.REG
[0] = BOX_NativeString("-");
11765 REGB0
= TAG_Int(1);
11766 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11767 once_value_2
= fra
.me
.REG
[0];
11768 register_static_object(&once_value_2
);
11769 } else fra
.me
.REG
[0] = once_value_2
;
11770 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11771 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11772 once_value_1
= fra
.me
.REG
[0];
11773 register_static_object(&once_value_1
);
11774 } else fra
.me
.REG
[0] = once_value_1
;
11775 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11778 stack_frame_head
= fra
.me
.prev
;
11779 return fra
.me
.REG
[0];
11781 static const char LOCATE_syntax___typing___AStarshipExpr___name
[] = "typing::AStarshipExpr::(typing::ASendExpr::name)";
11782 val_t
syntax___typing___AStarshipExpr___name(val_t p0
){
11783 struct {struct stack_frame_t me
;} fra
;
11786 static val_t once_value_1
; /* Once value */
11787 static val_t once_value_2
; /* Once value */
11788 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11789 fra
.me
.file
= LOCATE_syntax___typing
;
11790 fra
.me
.line
= 1832;
11791 fra
.me
.meth
= LOCATE_syntax___typing___AStarshipExpr___name
;
11792 fra
.me
.has_broke
= 0;
11793 fra
.me
.REG_size
= 1;
11794 fra
.me
.nitni_local_ref_head
= NULL
;
11795 fra
.me
.REG
[0] = NIT_NULL
;
11796 fra
.me
.REG
[0] = p0
;
11797 /* syntax/typing.nit:1832 */
11798 if (!once_value_1
) {
11799 if (!once_value_2
) {
11800 fra
.me
.REG
[0] = BOX_NativeString("<=>");
11801 REGB0
= TAG_Int(3);
11802 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11803 once_value_2
= fra
.me
.REG
[0];
11804 register_static_object(&once_value_2
);
11805 } else fra
.me
.REG
[0] = once_value_2
;
11806 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11807 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11808 once_value_1
= fra
.me
.REG
[0];
11809 register_static_object(&once_value_1
);
11810 } else fra
.me
.REG
[0] = once_value_1
;
11811 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11814 stack_frame_head
= fra
.me
.prev
;
11815 return fra
.me
.REG
[0];
11817 static const char LOCATE_syntax___typing___AStarExpr___name
[] = "typing::AStarExpr::(typing::ASendExpr::name)";
11818 val_t
syntax___typing___AStarExpr___name(val_t p0
){
11819 struct {struct stack_frame_t me
;} fra
;
11822 static val_t once_value_1
; /* Once value */
11823 static val_t once_value_2
; /* Once value */
11824 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11825 fra
.me
.file
= LOCATE_syntax___typing
;
11826 fra
.me
.line
= 1835;
11827 fra
.me
.meth
= LOCATE_syntax___typing___AStarExpr___name
;
11828 fra
.me
.has_broke
= 0;
11829 fra
.me
.REG_size
= 1;
11830 fra
.me
.nitni_local_ref_head
= NULL
;
11831 fra
.me
.REG
[0] = NIT_NULL
;
11832 fra
.me
.REG
[0] = p0
;
11833 /* syntax/typing.nit:1835 */
11834 if (!once_value_1
) {
11835 if (!once_value_2
) {
11836 fra
.me
.REG
[0] = BOX_NativeString("*");
11837 REGB0
= TAG_Int(1);
11838 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11839 once_value_2
= fra
.me
.REG
[0];
11840 register_static_object(&once_value_2
);
11841 } else fra
.me
.REG
[0] = once_value_2
;
11842 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11843 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11844 once_value_1
= fra
.me
.REG
[0];
11845 register_static_object(&once_value_1
);
11846 } else fra
.me
.REG
[0] = once_value_1
;
11847 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11850 stack_frame_head
= fra
.me
.prev
;
11851 return fra
.me
.REG
[0];
11853 static const char LOCATE_syntax___typing___ASlashExpr___name
[] = "typing::ASlashExpr::(typing::ASendExpr::name)";
11854 val_t
syntax___typing___ASlashExpr___name(val_t p0
){
11855 struct {struct stack_frame_t me
;} fra
;
11858 static val_t once_value_1
; /* Once value */
11859 static val_t once_value_2
; /* Once value */
11860 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11861 fra
.me
.file
= LOCATE_syntax___typing
;
11862 fra
.me
.line
= 1838;
11863 fra
.me
.meth
= LOCATE_syntax___typing___ASlashExpr___name
;
11864 fra
.me
.has_broke
= 0;
11865 fra
.me
.REG_size
= 1;
11866 fra
.me
.nitni_local_ref_head
= NULL
;
11867 fra
.me
.REG
[0] = NIT_NULL
;
11868 fra
.me
.REG
[0] = p0
;
11869 /* syntax/typing.nit:1838 */
11870 if (!once_value_1
) {
11871 if (!once_value_2
) {
11872 fra
.me
.REG
[0] = BOX_NativeString("/");
11873 REGB0
= TAG_Int(1);
11874 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11875 once_value_2
= fra
.me
.REG
[0];
11876 register_static_object(&once_value_2
);
11877 } else fra
.me
.REG
[0] = once_value_2
;
11878 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11879 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11880 once_value_1
= fra
.me
.REG
[0];
11881 register_static_object(&once_value_1
);
11882 } else fra
.me
.REG
[0] = once_value_1
;
11883 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11886 stack_frame_head
= fra
.me
.prev
;
11887 return fra
.me
.REG
[0];
11889 static const char LOCATE_syntax___typing___APercentExpr___name
[] = "typing::APercentExpr::(typing::ASendExpr::name)";
11890 val_t
syntax___typing___APercentExpr___name(val_t p0
){
11891 struct {struct stack_frame_t me
;} fra
;
11894 static val_t once_value_1
; /* Once value */
11895 static val_t once_value_2
; /* Once value */
11896 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11897 fra
.me
.file
= LOCATE_syntax___typing
;
11898 fra
.me
.line
= 1841;
11899 fra
.me
.meth
= LOCATE_syntax___typing___APercentExpr___name
;
11900 fra
.me
.has_broke
= 0;
11901 fra
.me
.REG_size
= 1;
11902 fra
.me
.nitni_local_ref_head
= NULL
;
11903 fra
.me
.REG
[0] = NIT_NULL
;
11904 fra
.me
.REG
[0] = p0
;
11905 /* syntax/typing.nit:1841 */
11906 if (!once_value_1
) {
11907 if (!once_value_2
) {
11908 fra
.me
.REG
[0] = BOX_NativeString("%");
11909 REGB0
= TAG_Int(1);
11910 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11911 once_value_2
= fra
.me
.REG
[0];
11912 register_static_object(&once_value_2
);
11913 } else fra
.me
.REG
[0] = once_value_2
;
11914 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11915 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11916 once_value_1
= fra
.me
.REG
[0];
11917 register_static_object(&once_value_1
);
11918 } else fra
.me
.REG
[0] = once_value_1
;
11919 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11922 stack_frame_head
= fra
.me
.prev
;
11923 return fra
.me
.REG
[0];
11925 static const char LOCATE_syntax___typing___AUminusExpr___name
[] = "typing::AUminusExpr::(typing::ASendExpr::name)";
11926 val_t
syntax___typing___AUminusExpr___name(val_t p0
){
11927 struct {struct stack_frame_t me
;} fra
;
11930 static val_t once_value_1
; /* Once value */
11931 static val_t once_value_2
; /* Once value */
11932 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11933 fra
.me
.file
= LOCATE_syntax___typing
;
11934 fra
.me
.line
= 1845;
11935 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___name
;
11936 fra
.me
.has_broke
= 0;
11937 fra
.me
.REG_size
= 1;
11938 fra
.me
.nitni_local_ref_head
= NULL
;
11939 fra
.me
.REG
[0] = NIT_NULL
;
11940 fra
.me
.REG
[0] = p0
;
11941 /* syntax/typing.nit:1845 */
11942 if (!once_value_1
) {
11943 if (!once_value_2
) {
11944 fra
.me
.REG
[0] = BOX_NativeString("unary -");
11945 REGB0
= TAG_Int(7);
11946 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
11947 once_value_2
= fra
.me
.REG
[0];
11948 register_static_object(&once_value_2
);
11949 } else fra
.me
.REG
[0] = once_value_2
;
11950 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11951 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
11952 once_value_1
= fra
.me
.REG
[0];
11953 register_static_object(&once_value_1
);
11954 } else fra
.me
.REG
[0] = once_value_1
;
11955 fra
.me
.REG
[0] = fra
.me
.REG
[0];
11958 stack_frame_head
= fra
.me
.prev
;
11959 return fra
.me
.REG
[0];
11961 static const char LOCATE_syntax___typing___AUminusExpr___compute_raw_arguments
[] = "typing::AUminusExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
11962 val_t
syntax___typing___AUminusExpr___compute_raw_arguments(val_t p0
){
11963 struct {struct stack_frame_t me
;} fra
;
11965 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11966 fra
.me
.file
= LOCATE_syntax___typing
;
11967 fra
.me
.line
= 1846;
11968 fra
.me
.meth
= LOCATE_syntax___typing___AUminusExpr___compute_raw_arguments
;
11969 fra
.me
.has_broke
= 0;
11970 fra
.me
.REG_size
= 1;
11971 fra
.me
.nitni_local_ref_head
= NULL
;
11972 fra
.me
.REG
[0] = NIT_NULL
;
11973 fra
.me
.REG
[0] = p0
;
11974 /* syntax/typing.nit:1846 */
11975 fra
.me
.REG
[0] = NIT_NULL
;
11978 stack_frame_head
= fra
.me
.prev
;
11979 return fra
.me
.REG
[0];
11981 static const char LOCATE_syntax___typing___ACallFormExpr___after_typing
[] = "typing::ACallFormExpr::(typing::ANode::after_typing)";
11982 void syntax___typing___ACallFormExpr___after_typing(val_t p0
, val_t p1
){
11983 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} 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
= 1850;
11992 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___after_typing
;
11993 fra
.me
.has_broke
= 0;
11994 fra
.me
.REG_size
= 9;
11995 fra
.me
.nitni_local_ref_head
= NULL
;
11996 fra
.me
.REG
[0] = NIT_NULL
;
11997 fra
.me
.REG
[1] = NIT_NULL
;
11998 fra
.me
.REG
[2] = NIT_NULL
;
11999 fra
.me
.REG
[3] = NIT_NULL
;
12000 fra
.me
.REG
[4] = NIT_NULL
;
12001 fra
.me
.REG
[5] = NIT_NULL
;
12002 fra
.me
.REG
[6] = NIT_NULL
;
12003 fra
.me
.REG
[7] = NIT_NULL
;
12004 fra
.me
.REG
[8] = NIT_NULL
;
12005 fra
.me
.REG
[0] = p0
;
12006 fra
.me
.REG
[1] = p1
;
12007 /* syntax/typing.nit:1850 */
12008 fra
.me
.REG
[2] = fra
.me
.REG
[0];
12009 fra
.me
.REG
[3] = fra
.me
.REG
[1];
12010 /* syntax/typing.nit:1852 */
12011 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12012 REGB0
= CALL_syntax___typing___AExpr___is_implicit_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12013 if (UNTAG_Bool(REGB0
)) {
12014 /* syntax/typing.nit:1853 */
12015 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12016 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12017 /* syntax/typing.nit:1854 */
12018 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12019 fra
.me
.REG
[5] = CALL_syntax___scope___ScopeContext_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
12020 /* syntax/typing.nit:1855 */
12021 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
12022 if (UNTAG_Bool(REGB0
)) {
12024 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
12025 if (UNTAG_Bool(REGB1
)) {
12026 REGB1
= TAG_Bool(0);
12029 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
12033 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12034 if (UNTAG_Bool(REGB0
)) {
12035 /* syntax/typing.nit:1857 */
12036 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*/;
12037 if (UNTAG_Bool(REGB0
)) {
12038 /* syntax/typing.nit:1858 */
12039 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12040 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12041 fra
.me
.REG
[8] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12042 fra
.me
.REG
[8] = NEW_AClosureCallExpr_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(fra
.me
.REG
[6], fra
.me
.REG
[7], fra
.me
.REG
[8]);
12043 /* syntax/typing.nit:1859 */
12044 ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
12046 /* syntax/typing.nit:1861 */
12047 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12048 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
12049 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
12050 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12051 if (UNTAG_Bool(REGB0
)) {
12052 REGB0
= TAG_Bool(1);
12054 fra
.me
.REG
[7] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12055 REGB1
= TAG_Bool(VAL_ISA(fra
.me
.REG
[7], COLOR_parser___parser_nodes___AParExprs
, ID_parser___parser_nodes___AParExprs
)) /*cast AParExprs*/;
12058 if (UNTAG_Bool(REGB0
)) {
12059 /* syntax/typing.nit:1862 */
12060 REGB0
= TAG_Int(3);
12061 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
12062 if (!once_value_1
) {
12063 fra
.me
.REG
[6] = BOX_NativeString("Error: ");
12064 REGB0
= TAG_Int(7);
12065 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
12066 once_value_1
= fra
.me
.REG
[6];
12067 register_static_object(&once_value_1
);
12068 } else fra
.me
.REG
[6] = once_value_1
;
12069 fra
.me
.REG
[6] = fra
.me
.REG
[6];
12070 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
12071 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12072 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
12073 if (!once_value_2
) {
12074 fra
.me
.REG
[4] = BOX_NativeString(" is variable, not a function.");
12075 REGB0
= TAG_Int(29);
12076 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
12077 once_value_2
= fra
.me
.REG
[4];
12078 register_static_object(&once_value_2
);
12079 } else fra
.me
.REG
[4] = once_value_2
;
12080 fra
.me
.REG
[4] = fra
.me
.REG
[4];
12081 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[4]);
12082 fra
.me
.REG
[7] = CALL_standard___string___Object___to_s(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
12083 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[7]);
12084 /* syntax/typing.nit:1863 */
12087 /* syntax/typing.nit:1865 */
12088 fra
.me
.REG
[7] = CALL_syntax___typing___ACallFormExpr___variable_create(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
12089 fra
.me
.REG
[8] = fra
.me
.REG
[7];
12090 /* syntax/typing.nit:1866 */
12091 ATTR_syntax___typing___AVarFormExpr____variable(fra
.me
.REG
[8]) = fra
.me
.REG
[5];
12093 /* syntax/typing.nit:1868 */
12094 CALL_parser___parser_prod___ANode___replace_with(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
12095 /* syntax/typing.nit:1869 */
12096 CALL_syntax___typing___ANode___after_typing(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
12097 /* syntax/typing.nit:1870 */
12101 /* syntax/typing.nit:1874 */
12102 CALL_SUPER_syntax___typing___ACallFormExpr___after_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12104 stack_frame_head
= fra
.me
.prev
;
12107 static const char LOCATE_syntax___typing___ACallFormExpr___closure_defs
[] = "typing::ACallFormExpr::(syntax_base::ASendExpr::closure_defs)";
12108 val_t
syntax___typing___ACallFormExpr___closure_defs(val_t p0
){
12109 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12112 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12113 fra
.me
.file
= LOCATE_syntax___typing
;
12114 fra
.me
.line
= 1877;
12115 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___closure_defs
;
12116 fra
.me
.has_broke
= 0;
12117 fra
.me
.REG_size
= 2;
12118 fra
.me
.nitni_local_ref_head
= NULL
;
12119 fra
.me
.REG
[0] = NIT_NULL
;
12120 fra
.me
.REG
[1] = NIT_NULL
;
12121 fra
.me
.REG
[0] = p0
;
12122 /* syntax/typing.nit:1879 */
12123 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12124 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12125 if (UNTAG_Bool(REGB0
)) {
12126 /* syntax/typing.nit:1880 */
12127 fra
.me
.REG
[1] = NIT_NULL
;
12130 /* syntax/typing.nit:1882 */
12131 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12132 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12133 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12137 stack_frame_head
= fra
.me
.prev
;
12138 return fra
.me
.REG
[1];
12140 static const char LOCATE_syntax___typing___ACallFormExpr___variable_create
[] = "typing::ACallFormExpr::variable_create";
12141 val_t
syntax___typing___ACallFormExpr___variable_create(val_t p0
, val_t p1
){
12142 struct {struct stack_frame_t me
;} fra
;
12144 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12145 fra
.me
.file
= LOCATE_syntax___typing
;
12146 fra
.me
.line
= 1886;
12147 fra
.me
.meth
= LOCATE_syntax___typing___ACallFormExpr___variable_create
;
12148 fra
.me
.has_broke
= 0;
12149 fra
.me
.REG_size
= 0;
12150 fra
.me
.nitni_local_ref_head
= NULL
;
12151 /* syntax/typing.nit:1886 */
12152 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1886);
12153 stack_frame_head
= fra
.me
.prev
;
12156 static const char LOCATE_syntax___typing___ACallExpr___variable_create
[] = "typing::ACallExpr::(typing::ACallFormExpr::variable_create)";
12157 val_t
syntax___typing___ACallExpr___variable_create(val_t p0
, val_t p1
){
12158 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12160 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12161 fra
.me
.file
= LOCATE_syntax___typing
;
12162 fra
.me
.line
= 1891;
12163 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___variable_create
;
12164 fra
.me
.has_broke
= 0;
12165 fra
.me
.REG_size
= 2;
12166 fra
.me
.nitni_local_ref_head
= NULL
;
12167 fra
.me
.REG
[0] = NIT_NULL
;
12168 fra
.me
.REG
[1] = NIT_NULL
;
12169 fra
.me
.REG
[0] = p0
;
12170 fra
.me
.REG
[1] = p1
;
12171 /* syntax/typing.nit:1893 */
12172 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12173 fra
.me
.REG
[0] = NEW_AVarExpr_parser___parser_prod___AVarExpr___init_avarexpr(fra
.me
.REG
[0]);
12176 stack_frame_head
= fra
.me
.prev
;
12177 return fra
.me
.REG
[0];
12179 static const char LOCATE_syntax___typing___ACallExpr___name
[] = "typing::ACallExpr::(typing::ASendExpr::name)";
12180 val_t
syntax___typing___ACallExpr___name(val_t p0
){
12181 struct {struct stack_frame_t me
;} fra
;
12183 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12184 fra
.me
.file
= LOCATE_syntax___typing
;
12185 fra
.me
.line
= 1896;
12186 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___name
;
12187 fra
.me
.has_broke
= 0;
12188 fra
.me
.REG_size
= 1;
12189 fra
.me
.nitni_local_ref_head
= NULL
;
12190 fra
.me
.REG
[0] = NIT_NULL
;
12191 fra
.me
.REG
[0] = p0
;
12192 /* syntax/typing.nit:1896 */
12193 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12194 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12197 stack_frame_head
= fra
.me
.prev
;
12198 return fra
.me
.REG
[0];
12200 static const char LOCATE_syntax___typing___ACallExpr___compute_raw_arguments
[] = "typing::ACallExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12201 val_t
syntax___typing___ACallExpr___compute_raw_arguments(val_t p0
){
12202 struct {struct stack_frame_t me
;} fra
;
12204 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12205 fra
.me
.file
= LOCATE_syntax___typing
;
12206 fra
.me
.line
= 1897;
12207 fra
.me
.meth
= LOCATE_syntax___typing___ACallExpr___compute_raw_arguments
;
12208 fra
.me
.has_broke
= 0;
12209 fra
.me
.REG_size
= 1;
12210 fra
.me
.nitni_local_ref_head
= NULL
;
12211 fra
.me
.REG
[0] = NIT_NULL
;
12212 fra
.me
.REG
[0] = p0
;
12213 /* syntax/typing.nit:1897 */
12214 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12215 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12218 stack_frame_head
= fra
.me
.prev
;
12219 return fra
.me
.REG
[0];
12221 static const char LOCATE_syntax___typing___ACallAssignExpr___variable_create
[] = "typing::ACallAssignExpr::(typing::ACallFormExpr::variable_create)";
12222 val_t
syntax___typing___ACallAssignExpr___variable_create(val_t p0
, val_t p1
){
12223 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
12225 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12226 fra
.me
.file
= LOCATE_syntax___typing
;
12227 fra
.me
.line
= 1901;
12228 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___variable_create
;
12229 fra
.me
.has_broke
= 0;
12230 fra
.me
.REG_size
= 3;
12231 fra
.me
.nitni_local_ref_head
= NULL
;
12232 fra
.me
.REG
[0] = NIT_NULL
;
12233 fra
.me
.REG
[1] = NIT_NULL
;
12234 fra
.me
.REG
[2] = NIT_NULL
;
12235 fra
.me
.REG
[0] = p0
;
12236 fra
.me
.REG
[1] = p1
;
12237 /* syntax/typing.nit:1903 */
12238 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12239 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_assign(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12240 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12241 fra
.me
.REG
[0] = NEW_AVarAssignExpr_parser___parser_prod___AVarAssignExpr___init_avarassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
12244 stack_frame_head
= fra
.me
.prev
;
12245 return fra
.me
.REG
[0];
12247 static const char LOCATE_syntax___typing___ACallAssignExpr___name
[] = "typing::ACallAssignExpr::(typing::ASendExpr::name)";
12248 val_t
syntax___typing___ACallAssignExpr___name(val_t p0
){
12249 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12252 static val_t once_value_1
; /* Once value */
12253 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12254 fra
.me
.file
= LOCATE_syntax___typing
;
12255 fra
.me
.line
= 1906;
12256 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___name
;
12257 fra
.me
.has_broke
= 0;
12258 fra
.me
.REG_size
= 2;
12259 fra
.me
.nitni_local_ref_head
= NULL
;
12260 fra
.me
.REG
[0] = NIT_NULL
;
12261 fra
.me
.REG
[1] = NIT_NULL
;
12262 fra
.me
.REG
[0] = p0
;
12263 /* syntax/typing.nit:1906 */
12264 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12265 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12266 if (!once_value_1
) {
12267 fra
.me
.REG
[1] = BOX_NativeString("=");
12268 REGB0
= TAG_Int(1);
12269 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
12270 once_value_1
= fra
.me
.REG
[1];
12271 register_static_object(&once_value_1
);
12272 } else fra
.me
.REG
[1] = once_value_1
;
12273 fra
.me
.REG
[1] = fra
.me
.REG
[1];
12274 fra
.me
.REG
[1] = CALL_standard___string___String_____plus(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12275 fra
.me
.REG
[1] = CALL_symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12278 stack_frame_head
= fra
.me
.prev
;
12279 return fra
.me
.REG
[1];
12281 static const char LOCATE_syntax___typing___ACallAssignExpr___compute_raw_arguments
[] = "typing::ACallAssignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12282 val_t
syntax___typing___ACallAssignExpr___compute_raw_arguments(val_t p0
){
12283 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12285 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12286 fra
.me
.file
= LOCATE_syntax___typing
;
12287 fra
.me
.line
= 1907;
12288 fra
.me
.meth
= LOCATE_syntax___typing___ACallAssignExpr___compute_raw_arguments
;
12289 fra
.me
.has_broke
= 0;
12290 fra
.me
.REG_size
= 2;
12291 fra
.me
.nitni_local_ref_head
= NULL
;
12292 fra
.me
.REG
[0] = NIT_NULL
;
12293 fra
.me
.REG
[1] = NIT_NULL
;
12294 fra
.me
.REG
[0] = p0
;
12295 /* syntax/typing.nit:1908 */
12296 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12297 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12298 /* syntax/typing.nit:1909 */
12299 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12300 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12301 /* syntax/typing.nit:1910 */
12304 stack_frame_head
= fra
.me
.prev
;
12305 return fra
.me
.REG
[1];
12307 static const char LOCATE_syntax___typing___ACallReassignExpr___variable_create
[] = "typing::ACallReassignExpr::(typing::ACallFormExpr::variable_create)";
12308 val_t
syntax___typing___ACallReassignExpr___variable_create(val_t p0
, val_t p1
){
12309 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
12311 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12312 fra
.me
.file
= LOCATE_syntax___typing
;
12313 fra
.me
.line
= 1915;
12314 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___variable_create
;
12315 fra
.me
.has_broke
= 0;
12316 fra
.me
.REG_size
= 3;
12317 fra
.me
.nitni_local_ref_head
= NULL
;
12318 fra
.me
.REG
[0] = NIT_NULL
;
12319 fra
.me
.REG
[1] = NIT_NULL
;
12320 fra
.me
.REG
[2] = NIT_NULL
;
12321 fra
.me
.REG
[0] = p0
;
12322 fra
.me
.REG
[1] = p1
;
12323 /* syntax/typing.nit:1917 */
12324 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12325 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AReassignFormExpr___n_assign_op(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12326 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12327 fra
.me
.REG
[0] = NEW_AVarReassignExpr_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
12330 stack_frame_head
= fra
.me
.prev
;
12331 return fra
.me
.REG
[0];
12333 static const char LOCATE_syntax___typing___ACallReassignExpr___name
[] = "typing::ACallReassignExpr::(typing::ASendExpr::name)";
12334 val_t
syntax___typing___ACallReassignExpr___name(val_t p0
){
12335 struct {struct stack_frame_t me
;} fra
;
12337 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12338 fra
.me
.file
= LOCATE_syntax___typing
;
12339 fra
.me
.line
= 1920;
12340 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___name
;
12341 fra
.me
.has_broke
= 0;
12342 fra
.me
.REG_size
= 1;
12343 fra
.me
.nitni_local_ref_head
= NULL
;
12344 fra
.me
.REG
[0] = NIT_NULL
;
12345 fra
.me
.REG
[0] = p0
;
12346 /* syntax/typing.nit:1920 */
12347 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12348 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12351 stack_frame_head
= fra
.me
.prev
;
12352 return fra
.me
.REG
[0];
12354 static const char LOCATE_syntax___typing___ACallReassignExpr___compute_raw_arguments
[] = "typing::ACallReassignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12355 val_t
syntax___typing___ACallReassignExpr___compute_raw_arguments(val_t p0
){
12356 struct {struct stack_frame_t me
;} fra
;
12358 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12359 fra
.me
.file
= LOCATE_syntax___typing
;
12360 fra
.me
.line
= 1921;
12361 fra
.me
.meth
= LOCATE_syntax___typing___ACallReassignExpr___compute_raw_arguments
;
12362 fra
.me
.has_broke
= 0;
12363 fra
.me
.REG_size
= 1;
12364 fra
.me
.nitni_local_ref_head
= NULL
;
12365 fra
.me
.REG
[0] = NIT_NULL
;
12366 fra
.me
.REG
[0] = p0
;
12367 /* syntax/typing.nit:1921 */
12368 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ACallFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12369 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12372 stack_frame_head
= fra
.me
.prev
;
12373 return fra
.me
.REG
[0];
12375 static const char LOCATE_syntax___typing___ABraExpr___name
[] = "typing::ABraExpr::(typing::ASendExpr::name)";
12376 val_t
syntax___typing___ABraExpr___name(val_t p0
){
12377 struct {struct stack_frame_t me
;} fra
;
12380 static val_t once_value_1
; /* Once value */
12381 static val_t once_value_2
; /* Once value */
12382 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12383 fra
.me
.file
= LOCATE_syntax___typing
;
12384 fra
.me
.line
= 1925;
12385 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___name
;
12386 fra
.me
.has_broke
= 0;
12387 fra
.me
.REG_size
= 1;
12388 fra
.me
.nitni_local_ref_head
= NULL
;
12389 fra
.me
.REG
[0] = NIT_NULL
;
12390 fra
.me
.REG
[0] = p0
;
12391 /* syntax/typing.nit:1925 */
12392 if (!once_value_1
) {
12393 if (!once_value_2
) {
12394 fra
.me
.REG
[0] = BOX_NativeString("[]");
12395 REGB0
= TAG_Int(2);
12396 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12397 once_value_2
= fra
.me
.REG
[0];
12398 register_static_object(&once_value_2
);
12399 } else fra
.me
.REG
[0] = once_value_2
;
12400 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12401 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12402 once_value_1
= fra
.me
.REG
[0];
12403 register_static_object(&once_value_1
);
12404 } else fra
.me
.REG
[0] = once_value_1
;
12405 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12408 stack_frame_head
= fra
.me
.prev
;
12409 return fra
.me
.REG
[0];
12411 static const char LOCATE_syntax___typing___ABraExpr___compute_raw_arguments
[] = "typing::ABraExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12412 val_t
syntax___typing___ABraExpr___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
= 1926;
12418 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___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:1926 */
12425 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___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___closure_defs
[] = "typing::ABraExpr::(syntax_base::ASendExpr::closure_defs)";
12433 val_t
syntax___typing___ABraExpr___closure_defs(val_t p0
){
12434 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12437 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12438 fra
.me
.file
= LOCATE_syntax___typing
;
12439 fra
.me
.line
= 1927;
12440 fra
.me
.meth
= LOCATE_syntax___typing___ABraExpr___closure_defs
;
12441 fra
.me
.has_broke
= 0;
12442 fra
.me
.REG_size
= 2;
12443 fra
.me
.nitni_local_ref_head
= NULL
;
12444 fra
.me
.REG
[0] = NIT_NULL
;
12445 fra
.me
.REG
[1] = NIT_NULL
;
12446 fra
.me
.REG
[0] = p0
;
12447 /* syntax/typing.nit:1929 */
12448 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12449 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12450 if (UNTAG_Bool(REGB0
)) {
12451 /* syntax/typing.nit:1930 */
12452 fra
.me
.REG
[1] = NIT_NULL
;
12455 /* syntax/typing.nit:1932 */
12456 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASendExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12457 fra
.me
.REG
[0] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12458 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12462 stack_frame_head
= fra
.me
.prev
;
12463 return fra
.me
.REG
[1];
12465 static const char LOCATE_syntax___typing___ABraAssignExpr___name
[] = "typing::ABraAssignExpr::(typing::ASendExpr::name)";
12466 val_t
syntax___typing___ABraAssignExpr___name(val_t p0
){
12467 struct {struct stack_frame_t me
;} fra
;
12470 static val_t once_value_1
; /* Once value */
12471 static val_t once_value_2
; /* Once value */
12472 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12473 fra
.me
.file
= LOCATE_syntax___typing
;
12474 fra
.me
.line
= 1938;
12475 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___name
;
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:1938 */
12482 if (!once_value_1
) {
12483 if (!once_value_2
) {
12484 fra
.me
.REG
[0] = BOX_NativeString("[]=");
12485 REGB0
= TAG_Int(3);
12486 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12487 once_value_2
= fra
.me
.REG
[0];
12488 register_static_object(&once_value_2
);
12489 } else fra
.me
.REG
[0] = once_value_2
;
12490 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12491 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12492 once_value_1
= fra
.me
.REG
[0];
12493 register_static_object(&once_value_1
);
12494 } else fra
.me
.REG
[0] = once_value_1
;
12495 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12498 stack_frame_head
= fra
.me
.prev
;
12499 return fra
.me
.REG
[0];
12501 static const char LOCATE_syntax___typing___ABraAssignExpr___compute_raw_arguments
[] = "typing::ABraAssignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12502 val_t
syntax___typing___ABraAssignExpr___compute_raw_arguments(val_t p0
){
12503 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12505 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12506 fra
.me
.file
= LOCATE_syntax___typing
;
12507 fra
.me
.line
= 1939;
12508 fra
.me
.meth
= LOCATE_syntax___typing___ABraAssignExpr___compute_raw_arguments
;
12509 fra
.me
.has_broke
= 0;
12510 fra
.me
.REG_size
= 2;
12511 fra
.me
.nitni_local_ref_head
= NULL
;
12512 fra
.me
.REG
[0] = NIT_NULL
;
12513 fra
.me
.REG
[1] = NIT_NULL
;
12514 fra
.me
.REG
[0] = p0
;
12515 /* syntax/typing.nit:1940 */
12516 fra
.me
.REG
[1] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12517 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12518 /* syntax/typing.nit:1941 */
12519 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12520 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12521 /* syntax/typing.nit:1942 */
12524 stack_frame_head
= fra
.me
.prev
;
12525 return fra
.me
.REG
[1];
12527 static const char LOCATE_syntax___typing___ABraReassignExpr___name
[] = "typing::ABraReassignExpr::(typing::ASendExpr::name)";
12528 val_t
syntax___typing___ABraReassignExpr___name(val_t p0
){
12529 struct {struct stack_frame_t me
;} fra
;
12532 static val_t once_value_1
; /* Once value */
12533 static val_t once_value_2
; /* Once value */
12534 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12535 fra
.me
.file
= LOCATE_syntax___typing
;
12536 fra
.me
.line
= 1947;
12537 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___name
;
12538 fra
.me
.has_broke
= 0;
12539 fra
.me
.REG_size
= 1;
12540 fra
.me
.nitni_local_ref_head
= NULL
;
12541 fra
.me
.REG
[0] = NIT_NULL
;
12542 fra
.me
.REG
[0] = p0
;
12543 /* syntax/typing.nit:1947 */
12544 if (!once_value_1
) {
12545 if (!once_value_2
) {
12546 fra
.me
.REG
[0] = BOX_NativeString("[]");
12547 REGB0
= TAG_Int(2);
12548 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
12549 once_value_2
= fra
.me
.REG
[0];
12550 register_static_object(&once_value_2
);
12551 } else fra
.me
.REG
[0] = once_value_2
;
12552 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12553 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12554 once_value_1
= fra
.me
.REG
[0];
12555 register_static_object(&once_value_1
);
12556 } else fra
.me
.REG
[0] = once_value_1
;
12557 fra
.me
.REG
[0] = fra
.me
.REG
[0];
12560 stack_frame_head
= fra
.me
.prev
;
12561 return fra
.me
.REG
[0];
12563 static const char LOCATE_syntax___typing___ABraReassignExpr___compute_raw_arguments
[] = "typing::ABraReassignExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12564 val_t
syntax___typing___ABraReassignExpr___compute_raw_arguments(val_t p0
){
12565 struct {struct stack_frame_t me
;} fra
;
12567 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12568 fra
.me
.file
= LOCATE_syntax___typing
;
12569 fra
.me
.line
= 1948;
12570 fra
.me
.meth
= LOCATE_syntax___typing___ABraReassignExpr___compute_raw_arguments
;
12571 fra
.me
.has_broke
= 0;
12572 fra
.me
.REG_size
= 1;
12573 fra
.me
.nitni_local_ref_head
= NULL
;
12574 fra
.me
.REG
[0] = NIT_NULL
;
12575 fra
.me
.REG
[0] = p0
;
12576 /* syntax/typing.nit:1948 */
12577 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABraFormExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12578 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12581 stack_frame_head
= fra
.me
.prev
;
12582 return fra
.me
.REG
[0];
12584 static const char LOCATE_syntax___typing___AInitExpr___name
[] = "typing::AInitExpr::(typing::ASendExpr::name)";
12585 val_t
syntax___typing___AInitExpr___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
= 1952;
12594 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___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:1952 */
12601 if (!once_value_1
) {
12602 if (!once_value_2
) {
12603 fra
.me
.REG
[0] = BOX_NativeString("init");
12604 REGB0
= TAG_Int(4);
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___AInitExpr___compute_raw_arguments
[] = "typing::AInitExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12621 val_t
syntax___typing___AInitExpr___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
= 1953;
12627 fra
.me
.meth
= LOCATE_syntax___typing___AInitExpr___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:1953 */
12634 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AInitExpr___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___AClosureCallExpr___variable
[] = "typing::AClosureCallExpr::(syntax_base::AClosureCallExpr::variable)";
12642 val_t
syntax___typing___AClosureCallExpr___variable(val_t p0
){
12643 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12646 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12647 fra
.me
.file
= LOCATE_syntax___typing
;
12648 fra
.me
.line
= 1958;
12649 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___variable
;
12650 fra
.me
.has_broke
= 0;
12651 fra
.me
.REG_size
= 2;
12652 fra
.me
.nitni_local_ref_head
= NULL
;
12653 fra
.me
.REG
[0] = NIT_NULL
;
12654 fra
.me
.REG
[1] = NIT_NULL
;
12655 fra
.me
.REG
[0] = p0
;
12656 /* syntax/typing.nit:1958 */
12657 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12658 fra
.me
.REG
[1] = ATTR_syntax___typing___AClosureCallExpr____variable(fra
.me
.REG
[1]);
12659 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
12660 if (UNTAG_Bool(REGB0
)) {
12662 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1958);
12666 stack_frame_head
= fra
.me
.prev
;
12667 return fra
.me
.REG
[1];
12669 static const char LOCATE_syntax___typing___AClosureCallExpr___compute_raw_arguments
[] = "typing::AClosureCallExpr::(typing::AAbsAbsSendExpr::compute_raw_arguments)";
12670 val_t
syntax___typing___AClosureCallExpr___compute_raw_arguments(val_t p0
){
12671 struct {struct stack_frame_t me
;} fra
;
12673 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12674 fra
.me
.file
= LOCATE_syntax___typing
;
12675 fra
.me
.line
= 1959;
12676 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___compute_raw_arguments
;
12677 fra
.me
.has_broke
= 0;
12678 fra
.me
.REG_size
= 1;
12679 fra
.me
.nitni_local_ref_head
= NULL
;
12680 fra
.me
.REG
[0] = NIT_NULL
;
12681 fra
.me
.REG
[0] = p0
;
12682 /* syntax/typing.nit:1959 */
12683 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AClosureCallExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12684 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExprs___to_a(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12687 stack_frame_head
= fra
.me
.prev
;
12688 return fra
.me
.REG
[0];
12690 static const char LOCATE_syntax___typing___AClosureCallExpr___after_typing
[] = "typing::AClosureCallExpr::(typing::ANode::after_typing)";
12691 void syntax___typing___AClosureCallExpr___after_typing(val_t p0
, val_t p1
){
12692 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
12696 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12697 fra
.me
.file
= LOCATE_syntax___typing
;
12698 fra
.me
.line
= 1961;
12699 fra
.me
.meth
= LOCATE_syntax___typing___AClosureCallExpr___after_typing
;
12700 fra
.me
.has_broke
= 0;
12701 fra
.me
.REG_size
= 5;
12702 fra
.me
.nitni_local_ref_head
= NULL
;
12703 fra
.me
.REG
[0] = NIT_NULL
;
12704 fra
.me
.REG
[1] = NIT_NULL
;
12705 fra
.me
.REG
[2] = NIT_NULL
;
12706 fra
.me
.REG
[3] = NIT_NULL
;
12707 fra
.me
.REG
[4] = NIT_NULL
;
12708 fra
.me
.REG
[0] = p0
;
12709 fra
.me
.REG
[1] = p1
;
12710 /* syntax/typing.nit:1963 */
12711 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12712 /* syntax/typing.nit:1964 */
12713 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12714 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12715 if (UNTAG_Bool(REGB0
)) {
12716 CALL_syntax___typing___TypingVisitor___mark_unreash(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
12718 /* syntax/typing.nit:1965 */
12719 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12720 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12721 /* syntax/typing.nit:1966 */
12722 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12723 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12724 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsAbsSendExpr___compute_raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12725 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]);
12726 /* syntax/typing.nit:1967 */
12727 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12728 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12729 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
12730 if (UNTAG_Bool(REGB1
)) {
12731 /* syntax/typing.nit:1968 */
12732 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureCallExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12733 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12734 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12735 fra
.me
.REG
[3] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12736 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]);
12738 /* syntax/typing.nit:1970 */
12739 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
12740 if (UNTAG_Bool(REGB0
)) {
12743 /* syntax/typing.nit:1971 */
12744 ATTR_syntax___typing___AAbsAbsSendExpr____prop_signature(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12745 /* syntax/typing.nit:1972 */
12746 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12747 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12748 /* syntax/typing.nit:1973 */
12749 REGB0
= TAG_Bool(1);
12750 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
12752 stack_frame_head
= fra
.me
.prev
;
12755 static const char LOCATE_syntax___typing___AClosureId___to_symbol
[] = "typing::AClosureId::to_symbol";
12756 val_t
syntax___typing___AClosureId___to_symbol(val_t p0
){
12757 struct {struct stack_frame_t me
;} fra
;
12759 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12760 fra
.me
.file
= LOCATE_syntax___typing
;
12761 fra
.me
.line
= 1978;
12762 fra
.me
.meth
= LOCATE_syntax___typing___AClosureId___to_symbol
;
12763 fra
.me
.has_broke
= 0;
12764 fra
.me
.REG_size
= 0;
12765 fra
.me
.nitni_local_ref_head
= NULL
;
12766 /* syntax/typing.nit:1978 */
12767 nit_abort("Deferred method called", NULL
, LOCATE_syntax___typing
, 1978);
12768 stack_frame_head
= fra
.me
.prev
;
12771 static const char LOCATE_syntax___typing___ASimpleClosureId___to_symbol
[] = "typing::ASimpleClosureId::(typing::AClosureId::to_symbol)";
12772 val_t
syntax___typing___ASimpleClosureId___to_symbol(val_t p0
){
12773 struct {struct stack_frame_t me
;} fra
;
12775 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12776 fra
.me
.file
= LOCATE_syntax___typing
;
12777 fra
.me
.line
= 1981;
12778 fra
.me
.meth
= LOCATE_syntax___typing___ASimpleClosureId___to_symbol
;
12779 fra
.me
.has_broke
= 0;
12780 fra
.me
.REG_size
= 1;
12781 fra
.me
.nitni_local_ref_head
= NULL
;
12782 fra
.me
.REG
[0] = NIT_NULL
;
12783 fra
.me
.REG
[0] = p0
;
12784 /* syntax/typing.nit:1981 */
12785 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ASimpleClosureId___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12786 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12789 stack_frame_head
= fra
.me
.prev
;
12790 return fra
.me
.REG
[0];
12792 static const char LOCATE_syntax___typing___ABreakClosureId___to_symbol
[] = "typing::ABreakClosureId::(typing::AClosureId::to_symbol)";
12793 val_t
syntax___typing___ABreakClosureId___to_symbol(val_t p0
){
12794 struct {struct stack_frame_t me
;} fra
;
12796 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12797 fra
.me
.file
= LOCATE_syntax___typing
;
12798 fra
.me
.line
= 1984;
12799 fra
.me
.meth
= LOCATE_syntax___typing___ABreakClosureId___to_symbol
;
12800 fra
.me
.has_broke
= 0;
12801 fra
.me
.REG_size
= 1;
12802 fra
.me
.nitni_local_ref_head
= NULL
;
12803 fra
.me
.REG
[0] = NIT_NULL
;
12804 fra
.me
.REG
[0] = p0
;
12805 /* syntax/typing.nit:1984 */
12806 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABreakClosureId___n_kwbreak(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12807 fra
.me
.REG
[0] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12810 stack_frame_head
= fra
.me
.prev
;
12811 return fra
.me
.REG
[0];
12813 static const char LOCATE_syntax___typing___AClosureDef___closure
[] = "typing::AClosureDef::(syntax_base::AClosureDef::closure)";
12814 val_t
syntax___typing___AClosureDef___closure(val_t p0
){
12815 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
12818 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12819 fra
.me
.file
= LOCATE_syntax___typing
;
12820 fra
.me
.line
= 1989;
12821 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___closure
;
12822 fra
.me
.has_broke
= 0;
12823 fra
.me
.REG_size
= 2;
12824 fra
.me
.nitni_local_ref_head
= NULL
;
12825 fra
.me
.REG
[0] = NIT_NULL
;
12826 fra
.me
.REG
[1] = NIT_NULL
;
12827 fra
.me
.REG
[0] = p0
;
12828 /* syntax/typing.nit:1989 */
12829 fra
.me
.REG
[1] = fra
.me
.REG
[0];
12830 fra
.me
.REG
[1] = ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[1]);
12831 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
12832 if (UNTAG_Bool(REGB0
)) {
12834 nit_abort("Cast failed", NULL
, LOCATE_syntax___typing
, 1989);
12838 stack_frame_head
= fra
.me
.prev
;
12839 return fra
.me
.REG
[1];
12841 static const char LOCATE_syntax___typing___AClosureDef___escapable
[] = "typing::AClosureDef::escapable";
12842 val_t
syntax___typing___AClosureDef___escapable(val_t p0
){
12843 struct {struct stack_frame_t me
;} fra
;
12845 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12846 fra
.me
.file
= LOCATE_syntax___typing
;
12847 fra
.me
.line
= 1991;
12848 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___escapable
;
12849 fra
.me
.has_broke
= 0;
12850 fra
.me
.REG_size
= 1;
12851 fra
.me
.nitni_local_ref_head
= NULL
;
12852 fra
.me
.REG
[0] = NIT_NULL
;
12853 fra
.me
.REG
[0] = p0
;
12854 /* syntax/typing.nit:1991 */
12855 fra
.me
.REG
[0] = ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]);
12856 stack_frame_head
= fra
.me
.prev
;
12857 return fra
.me
.REG
[0];
12859 static const char LOCATE_syntax___typing___AClosureDef___accept_typing
[] = "typing::AClosureDef::(typing::ANode::accept_typing)";
12860 void syntax___typing___AClosureDef___accept_typing(val_t p0
, val_t p1
){
12861 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
12864 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12865 fra
.me
.file
= LOCATE_syntax___typing
;
12866 fra
.me
.line
= 1995;
12867 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing
;
12868 fra
.me
.has_broke
= 0;
12869 fra
.me
.REG_size
= 3;
12870 fra
.me
.nitni_local_ref_head
= NULL
;
12871 fra
.me
.REG
[0] = NIT_NULL
;
12872 fra
.me
.REG
[1] = NIT_NULL
;
12873 fra
.me
.REG
[2] = NIT_NULL
;
12874 fra
.me
.REG
[0] = p0
;
12875 fra
.me
.REG
[1] = p1
;
12876 /* syntax/typing.nit:1995 */
12877 fra
.me
.REG
[2] = fra
.me
.REG
[0];
12878 /* syntax/typing.nit:1998 */
12879 REGB0
= TAG_Bool(ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2])!=NIT_NULL
);
12880 if (UNTAG_Bool(REGB0
)) {
12882 nit_abort("Uninitialized attribute %s", "_accept_typing2", LOCATE_syntax___typing
, 1998);
12884 REGB0
= ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[2]);
12885 if (UNTAG_Bool(REGB0
)) {
12886 CALL_SUPER_syntax___typing___AClosureDef___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
12888 stack_frame_head
= fra
.me
.prev
;
12891 static const char LOCATE_syntax___typing___AClosureDef___accept_typing2
[] = "typing::AClosureDef::accept_typing2";
12892 void syntax___typing___AClosureDef___accept_typing2(val_t p0
, val_t p1
, val_t p2
){
12893 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
12899 static val_t once_value_1
; /* Once value */
12900 static val_t once_value_2
; /* Once value */
12901 static val_t once_value_3
; /* Once value */
12902 static val_t once_value_6
; /* Once value */
12903 static val_t once_value_7
; /* Once value */
12904 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
12905 fra
.me
.file
= LOCATE_syntax___typing
;
12906 fra
.me
.line
= 2001;
12907 fra
.me
.meth
= LOCATE_syntax___typing___AClosureDef___accept_typing2
;
12908 fra
.me
.has_broke
= 0;
12909 fra
.me
.REG_size
= 8;
12910 fra
.me
.nitni_local_ref_head
= NULL
;
12911 fra
.me
.REG
[0] = NIT_NULL
;
12912 fra
.me
.REG
[1] = NIT_NULL
;
12913 fra
.me
.REG
[2] = NIT_NULL
;
12914 fra
.me
.REG
[3] = NIT_NULL
;
12915 fra
.me
.REG
[4] = NIT_NULL
;
12916 fra
.me
.REG
[5] = NIT_NULL
;
12917 fra
.me
.REG
[6] = NIT_NULL
;
12918 fra
.me
.REG
[7] = NIT_NULL
;
12919 fra
.me
.REG
[0] = p0
;
12920 fra
.me
.REG
[1] = p1
;
12921 fra
.me
.REG
[2] = p2
;
12922 /* syntax/typing.nit:2003 */
12923 ATTR_syntax___typing___AClosureDef____escapable(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
12924 /* syntax/typing.nit:2005 */
12925 fra
.me
.REG
[3] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12926 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12927 /* syntax/typing.nit:2006 */
12928 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12929 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12930 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12931 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
12932 if (UNTAG_Bool(REGB2
)) {
12934 /* ../lib/standard/kernel.nit:230 */
12935 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
12936 /* syntax/typing.nit:2006 */
12939 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
12940 if (UNTAG_Bool(REGB2
)) {
12941 /* syntax/typing.nit:2007 */
12942 REGB2
= TAG_Int(5);
12943 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
12944 if (!once_value_1
) {
12945 fra
.me
.REG
[5] = BOX_NativeString("Error: ");
12946 REGB2
= TAG_Int(7);
12947 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12948 once_value_1
= fra
.me
.REG
[5];
12949 register_static_object(&once_value_1
);
12950 } else fra
.me
.REG
[5] = once_value_1
;
12951 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12952 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12953 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
12954 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
12955 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12956 if (!once_value_2
) {
12957 fra
.me
.REG
[5] = BOX_NativeString(" automatic variable names expected, ");
12958 REGB2
= TAG_Int(36);
12959 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12960 once_value_2
= fra
.me
.REG
[5];
12961 register_static_object(&once_value_2
);
12962 } else fra
.me
.REG
[5] = once_value_2
;
12963 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12964 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12965 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
12966 REGB2
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
12967 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(REGB2
)(REGB2
);
12968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12969 if (!once_value_3
) {
12970 fra
.me
.REG
[5] = BOX_NativeString(" found.");
12971 REGB2
= TAG_Int(7);
12972 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB2
);
12973 once_value_3
= fra
.me
.REG
[5];
12974 register_static_object(&once_value_3
);
12975 } else fra
.me
.REG
[5] = once_value_3
;
12976 fra
.me
.REG
[5] = fra
.me
.REG
[5];
12977 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
12978 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
12979 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
12980 /* syntax/typing.nit:2008 */
12983 /* syntax/typing.nit:2011 */
12984 fra
.me
.REG
[4] = CALL_syntax___scope___EscapableClosure___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
12985 ATTR_syntax___typing___AClosureDef____closure(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
12986 /* syntax/typing.nit:2013 */
12987 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12988 CALL_syntax___scope___ScopeContext___push(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
12989 /* syntax/typing.nit:2014 */
12990 fra
.me
.REG
[4] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12991 /* syntax/typing.nit:2015 */
12992 fra
.me
.REG
[5] = CALL_syntax___typing___TypingVisitor___base_flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12993 /* syntax/typing.nit:2016 */
12994 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
12995 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
12996 /* syntax/typing.nit:2017 */
12997 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___init();
12998 CALL_syntax___syntax_base___AClosureDef___variables__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6]);
12999 /* syntax/typing.nit:2018 */
13000 REGB2
= TAG_Int(0);
13001 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13002 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
13003 /* ../lib/standard/kernel.nit:355 */
13005 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
13006 if (UNTAG_Bool(REGB0
)) {
13008 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
13010 /* ../lib/standard/kernel.nit:235 */
13011 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
13012 /* ../lib/standard/kernel.nit:355 */
13013 if (UNTAG_Bool(REGB0
)) {
13014 /* syntax/typing.nit:2018 */
13016 /* syntax/typing.nit:2019 */
13017 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13018 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
13019 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
13020 if (UNTAG_Bool(REGB3
)) {
13021 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 2019);
13023 fra
.me
.REG
[6] = CALL_syntax___syntax_base___Token___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
13024 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDef___n_ids(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13025 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
13026 fra
.me
.REG
[7] = NEW_AutoVariable_syntax___syntax_base___AutoVariable___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
13027 /* syntax/typing.nit:2020 */
13028 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13029 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
13030 if (UNTAG_Bool(REGB3
)) {
13031 nit_abort("Reciever is null", NULL
, LOCATE_syntax___typing
, 2020);
13033 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
13034 /* syntax/typing.nit:2021 */
13035 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
13036 CALL_syntax___syntax_base___Variable___stype__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[6]);
13037 /* syntax/typing.nit:2022 */
13038 fra
.me
.REG
[6] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13039 CALL_syntax___scope___ScopeContext___add_variable(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
13040 /* ../lib/standard/kernel.nit:357 */
13041 REGB0
= TAG_Int(1);
13042 /* ../lib/standard/kernel.nit:238 */
13043 REGB0
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB0
));
13044 /* ../lib/standard/kernel.nit:357 */
13047 /* ../lib/standard/kernel.nit:355 */
13052 /* syntax/typing.nit:2025 */
13053 REGB2
= TAG_Bool(1);
13054 ATTR_syntax___typing___AClosureDef____accept_typing2(fra
.me
.REG
[0]) = REGB2
;
13055 /* syntax/typing.nit:2026 */
13056 CALL_syntax___typing___ANode___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
13057 /* syntax/typing.nit:2028 */
13058 fra
.me
.REG
[3] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13059 REGB2
= CALL_syntax___flow___FlowContext___unreash(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13060 REGB1
= TAG_Bool(0);
13061 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
13062 if (UNTAG_Bool(REGB0
)) {
13064 /* ../lib/standard/kernel.nit:198 */
13065 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
13066 /* syntax/typing.nit:2028 */
13069 if (UNTAG_Bool(REGB0
)) {
13070 /* syntax/typing.nit:2029 */
13071 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13072 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13073 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13074 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13075 if (UNTAG_Bool(REGB0
)) {
13077 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13078 if (UNTAG_Bool(REGB1
)) {
13079 REGB1
= TAG_Bool(0);
13082 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
13086 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13087 if (UNTAG_Bool(REGB0
)) {
13088 /* syntax/typing.nit:2030 */
13089 if (!once_value_6
) {
13090 fra
.me
.REG
[3] = BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected).");
13091 REGB0
= TAG_Int(77);
13092 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
13093 once_value_6
= fra
.me
.REG
[3];
13094 register_static_object(&once_value_6
);
13095 } else fra
.me
.REG
[3] = once_value_6
;
13096 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13097 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
13099 /* syntax/typing.nit:2031 */
13100 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13101 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13102 if (UNTAG_Bool(REGB0
)) {
13103 fra
.me
.REG
[2] = CALL_syntax___scope___EscapableBlock___break_list(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13104 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
13105 if (UNTAG_Bool(REGB0
)) {
13107 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
13108 if (UNTAG_Bool(REGB1
)) {
13109 REGB1
= TAG_Bool(0);
13112 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
13116 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13118 REGB1
= TAG_Bool(0);
13121 if (UNTAG_Bool(REGB0
)) {
13122 /* syntax/typing.nit:2032 */
13123 if (!once_value_7
) {
13124 fra
.me
.REG
[2] = BOX_NativeString("Control error: Reached end of break block (a 'break' with a value was expected).");
13125 REGB0
= TAG_Int(80);
13126 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
13127 once_value_7
= fra
.me
.REG
[2];
13128 register_static_object(&once_value_7
);
13129 } else fra
.me
.REG
[2] = once_value_7
;
13130 fra
.me
.REG
[2] = fra
.me
.REG
[2];
13131 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
13135 /* syntax/typing.nit:2035 */
13136 CALL_syntax___typing___TypingVisitor___flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
13137 /* syntax/typing.nit:2036 */
13138 CALL_syntax___typing___TypingVisitor___base_flow_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
13139 /* syntax/typing.nit:2037 */
13140 fra
.me
.REG
[1] = CALL_syntax___typing___TypingVisitor___scope_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13141 CALL_syntax___scope___ScopeContext___pop(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13143 stack_frame_head
= fra
.me
.prev
;
13146 static const char LOCATE_syntax___typing___ATypeCheckExpr___check_expr_cast
[] = "typing::ATypeCheckExpr::check_expr_cast";
13147 void syntax___typing___ATypeCheckExpr___check_expr_cast(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
13148 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
13152 static val_t once_value_2
; /* Once value */
13153 static val_t once_value_3
; /* Once value */
13154 static val_t once_value_4
; /* Once value */
13155 static val_t once_value_5
; /* Once value */
13156 static val_t once_value_6
; /* Once value */
13157 static val_t once_value_7
; /* Once value */
13158 static val_t once_value_8
; /* Once value */
13159 static val_t once_value_9
; /* Once value */
13160 static val_t once_value_10
; /* Once value */
13161 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13162 fra
.me
.file
= LOCATE_syntax___typing
;
13163 fra
.me
.line
= 2043;
13164 fra
.me
.meth
= LOCATE_syntax___typing___ATypeCheckExpr___check_expr_cast
;
13165 fra
.me
.has_broke
= 0;
13166 fra
.me
.REG_size
= 6;
13167 fra
.me
.nitni_local_ref_head
= NULL
;
13168 fra
.me
.REG
[0] = NIT_NULL
;
13169 fra
.me
.REG
[1] = NIT_NULL
;
13170 fra
.me
.REG
[2] = NIT_NULL
;
13171 fra
.me
.REG
[3] = NIT_NULL
;
13172 fra
.me
.REG
[4] = NIT_NULL
;
13173 fra
.me
.REG
[5] = NIT_NULL
;
13174 fra
.me
.REG
[0] = p0
;
13175 fra
.me
.REG
[1] = p1
;
13176 fra
.me
.REG
[2] = p2
;
13177 fra
.me
.REG
[3] = p3
;
13178 /* syntax/typing.nit:2045 */
13179 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
13180 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13181 if (UNTAG_Bool(REGB0
)) {
13184 /* syntax/typing.nit:2046 */
13185 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13186 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13187 if (UNTAG_Bool(REGB0
)) {
13190 /* syntax/typing.nit:2047 */
13191 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13192 /* syntax/typing.nit:2048 */
13193 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13194 /* syntax/typing.nit:2049 */
13195 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
13196 if (UNTAG_Bool(REGB0
)) {
13198 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13201 if (UNTAG_Bool(REGB0
)) {
13202 /* syntax/typing.nit:2050 */
13203 REGB0
= TAG_Int(3);
13204 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13205 if (!once_value_2
) {
13206 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
13207 REGB0
= TAG_Int(33);
13208 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13209 once_value_2
= fra
.me
.REG
[5];
13210 register_static_object(&once_value_2
);
13211 } else fra
.me
.REG
[5] = once_value_2
;
13212 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13213 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13214 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13215 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13216 if (!once_value_3
) {
13217 fra
.me
.REG
[5] = BOX_NativeString(".");
13218 REGB0
= TAG_Int(1);
13219 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13220 once_value_3
= fra
.me
.REG
[5];
13221 register_static_object(&once_value_3
);
13222 } else fra
.me
.REG
[5] = once_value_3
;
13223 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13224 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13225 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13226 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13228 /* syntax/typing.nit:2051 */
13229 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13230 if (UNTAG_Bool(REGB0
)) {
13231 /* syntax/typing.nit:2052 */
13232 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___type_formal___MMTypeFormal
, ID_metamodel___type_formal___MMTypeFormal
)) /*cast MMTypeFormal*/;
13233 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13234 if (UNTAG_Bool(REGB0
)) {
13235 /* syntax/typing.nit:2054 */
13236 REGB0
= TAG_Int(5);
13237 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13238 if (!once_value_4
) {
13239 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is already a ");
13240 REGB0
= TAG_Int(33);
13241 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13242 once_value_4
= fra
.me
.REG
[5];
13243 register_static_object(&once_value_4
);
13244 } else fra
.me
.REG
[5] = once_value_4
;
13245 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13246 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13247 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13248 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13249 if (!once_value_5
) {
13250 fra
.me
.REG
[5] = BOX_NativeString(" since it is a ");
13251 REGB0
= TAG_Int(15);
13252 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13253 once_value_5
= fra
.me
.REG
[5];
13254 register_static_object(&once_value_5
);
13255 } else fra
.me
.REG
[5] = once_value_5
;
13256 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13257 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13258 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13259 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13260 if (!once_value_6
) {
13261 fra
.me
.REG
[5] = BOX_NativeString(".");
13262 REGB0
= TAG_Int(1);
13263 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13264 once_value_6
= fra
.me
.REG
[5];
13265 register_static_object(&once_value_6
);
13266 } else fra
.me
.REG
[5] = once_value_6
;
13267 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13268 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13269 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13270 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13273 /* syntax/typing.nit:2056 */
13274 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
13275 if (UNTAG_Bool(REGB0
)) {
13276 /* syntax/typing.nit:2058 */
13277 REGB0
= TAG_Int(3);
13278 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13279 if (!once_value_7
) {
13280 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is null therefore cannot be a ");
13281 REGB0
= TAG_Int(50);
13282 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13283 once_value_7
= fra
.me
.REG
[5];
13284 register_static_object(&once_value_7
);
13285 } else fra
.me
.REG
[5] = once_value_7
;
13286 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13287 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13288 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13289 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13290 if (!once_value_8
) {
13291 fra
.me
.REG
[5] = BOX_NativeString(".");
13292 REGB0
= TAG_Int(1);
13293 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13294 once_value_8
= fra
.me
.REG
[5];
13295 register_static_object(&once_value_8
);
13296 } else fra
.me
.REG
[5] = once_value_8
;
13297 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13298 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13299 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13300 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13302 /* syntax/typing.nit:2059 */
13303 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13304 if (UNTAG_Bool(REGB0
)) {
13305 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13306 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
13307 if (UNTAG_Bool(REGB0
)) {
13309 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13313 REGB1
= TAG_Bool(0);
13316 if (UNTAG_Bool(REGB0
)) {
13317 /* syntax/typing.nit:2060 */
13318 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___type_formal___MMTypeFormal
, ID_metamodel___type_formal___MMTypeFormal
)) /*cast MMTypeFormal*/;
13319 if (UNTAG_Bool(REGB0
)) {
13320 fra
.me
.REG
[3] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13321 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13323 REGB1
= TAG_Bool(0);
13326 if (UNTAG_Bool(REGB0
)) {
13328 /* syntax/typing.nit:2066 */
13329 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_parser___parser_nodes___AIsaExpr
, ID_parser___parser_nodes___AIsaExpr
)) /*cast AIsaExpr*/;
13330 if (UNTAG_Bool(REGB0
)) {
13331 /* syntax/typing.nit:2067 */
13332 if (!once_value_9
) {
13333 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '!= null'.");
13334 REGB0
= TAG_Int(26);
13335 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
13336 once_value_9
= fra
.me
.REG
[3];
13337 register_static_object(&once_value_9
);
13338 } else fra
.me
.REG
[3] = once_value_9
;
13339 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13340 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
13342 /* syntax/typing.nit:2069 */
13343 if (!once_value_10
) {
13344 fra
.me
.REG
[3] = BOX_NativeString("Warning: Prefer '.as(not null)'.");
13345 REGB0
= TAG_Int(32);
13346 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
13347 once_value_10
= fra
.me
.REG
[3];
13348 register_static_object(&once_value_10
);
13349 } else fra
.me
.REG
[3] = once_value_10
;
13350 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13351 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
13359 stack_frame_head
= fra
.me
.prev
;
13362 static const char LOCATE_syntax___typing___AIsaExpr___after_typing
[] = "typing::AIsaExpr::(typing::ANode::after_typing)";
13363 void syntax___typing___AIsaExpr___after_typing(val_t p0
, val_t p1
){
13364 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
13368 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13369 fra
.me
.file
= LOCATE_syntax___typing
;
13370 fra
.me
.line
= 2077;
13371 fra
.me
.meth
= LOCATE_syntax___typing___AIsaExpr___after_typing
;
13372 fra
.me
.has_broke
= 0;
13373 fra
.me
.REG_size
= 5;
13374 fra
.me
.nitni_local_ref_head
= NULL
;
13375 fra
.me
.REG
[0] = NIT_NULL
;
13376 fra
.me
.REG
[1] = NIT_NULL
;
13377 fra
.me
.REG
[2] = NIT_NULL
;
13378 fra
.me
.REG
[3] = NIT_NULL
;
13379 fra
.me
.REG
[4] = NIT_NULL
;
13380 fra
.me
.REG
[0] = p0
;
13381 fra
.me
.REG
[1] = p1
;
13382 /* syntax/typing.nit:2079 */
13383 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13384 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13385 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]);
13386 /* syntax/typing.nit:2080 */
13387 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13388 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13389 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13390 if (UNTAG_Bool(REGB0
)) {
13393 /* syntax/typing.nit:2081 */
13394 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13395 fra
.me
.REG
[3] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13396 /* syntax/typing.nit:2082 */
13397 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13398 if (UNTAG_Bool(REGB0
)) {
13400 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13401 if (UNTAG_Bool(REGB1
)) {
13402 REGB1
= TAG_Bool(0);
13405 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
13409 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13410 if (UNTAG_Bool(REGB0
)) {
13411 /* syntax/typing.nit:2083 */
13412 fra
.me
.REG
[2] = CALL_syntax___typing___TypingVisitor___flow_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13413 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13414 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13415 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]);
13416 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
13418 /* syntax/typing.nit:2085 */
13419 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13420 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13421 /* syntax/typing.nit:2086 */
13422 REGB0
= TAG_Bool(1);
13423 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13425 stack_frame_head
= fra
.me
.prev
;
13428 static const char LOCATE_syntax___typing___AAsCastExpr___after_typing
[] = "typing::AAsCastExpr::(typing::ANode::after_typing)";
13429 void syntax___typing___AAsCastExpr___after_typing(val_t p0
, val_t p1
){
13430 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
13434 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13435 fra
.me
.file
= LOCATE_syntax___typing
;
13436 fra
.me
.line
= 2092;
13437 fra
.me
.meth
= LOCATE_syntax___typing___AAsCastExpr___after_typing
;
13438 fra
.me
.has_broke
= 0;
13439 fra
.me
.REG_size
= 4;
13440 fra
.me
.nitni_local_ref_head
= NULL
;
13441 fra
.me
.REG
[0] = NIT_NULL
;
13442 fra
.me
.REG
[1] = NIT_NULL
;
13443 fra
.me
.REG
[2] = NIT_NULL
;
13444 fra
.me
.REG
[3] = NIT_NULL
;
13445 fra
.me
.REG
[0] = p0
;
13446 fra
.me
.REG
[1] = p1
;
13447 /* syntax/typing.nit:2094 */
13448 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13449 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13450 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]);
13451 /* syntax/typing.nit:2095 */
13452 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13453 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13454 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13455 if (UNTAG_Bool(REGB0
)) {
13458 /* syntax/typing.nit:2096 */
13459 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsCastExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13460 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13461 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
13462 /* syntax/typing.nit:2097 */
13463 fra
.me
.REG
[3] = ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]);
13464 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13465 if (UNTAG_Bool(REGB0
)) {
13467 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
13468 if (UNTAG_Bool(REGB1
)) {
13469 REGB1
= TAG_Bool(0);
13472 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
13476 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13477 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13479 stack_frame_head
= fra
.me
.prev
;
13482 static const char LOCATE_syntax___typing___AAsNotnullExpr___after_typing
[] = "typing::AAsNotnullExpr::(typing::ANode::after_typing)";
13483 void syntax___typing___AAsNotnullExpr___after_typing(val_t p0
, val_t p1
){
13484 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
13487 static val_t once_value_2
; /* Once value */
13488 static val_t once_value_3
; /* Once value */
13489 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13490 fra
.me
.file
= LOCATE_syntax___typing
;
13491 fra
.me
.line
= 2102;
13492 fra
.me
.meth
= LOCATE_syntax___typing___AAsNotnullExpr___after_typing
;
13493 fra
.me
.has_broke
= 0;
13494 fra
.me
.REG_size
= 5;
13495 fra
.me
.nitni_local_ref_head
= NULL
;
13496 fra
.me
.REG
[0] = NIT_NULL
;
13497 fra
.me
.REG
[1] = NIT_NULL
;
13498 fra
.me
.REG
[2] = NIT_NULL
;
13499 fra
.me
.REG
[3] = NIT_NULL
;
13500 fra
.me
.REG
[4] = NIT_NULL
;
13501 fra
.me
.REG
[0] = p0
;
13502 fra
.me
.REG
[1] = p1
;
13503 /* syntax/typing.nit:2104 */
13504 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13505 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
13506 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13507 if (UNTAG_Bool(REGB0
)) {
13510 /* syntax/typing.nit:2105 */
13511 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13512 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13513 /* syntax/typing.nit:2106 */
13514 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMTypeNone
, ID_metamodel___static_type___MMTypeNone
)) /*cast MMTypeNone*/;
13515 if (UNTAG_Bool(REGB0
)) {
13516 /* syntax/typing.nit:2107 */
13517 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13518 if (!once_value_2
) {
13519 fra
.me
.REG
[4] = BOX_NativeString("Type error: 'as(not null)' on 'null' value.");
13520 REGB0
= TAG_Int(43);
13521 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
13522 once_value_2
= fra
.me
.REG
[4];
13523 register_static_object(&once_value_2
);
13524 } else fra
.me
.REG
[4] = once_value_2
;
13525 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13526 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
13527 /* syntax/typing.nit:2108 */
13530 /* syntax/typing.nit:2109 */
13531 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13532 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13533 if (UNTAG_Bool(REGB0
)) {
13534 /* syntax/typing.nit:2110 */
13535 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13536 if (!once_value_3
) {
13537 fra
.me
.REG
[4] = BOX_NativeString("Warning: 'as(not null)' on non nullable type.");
13538 REGB0
= TAG_Int(45);
13539 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
13540 once_value_3
= fra
.me
.REG
[4];
13541 register_static_object(&once_value_3
);
13542 } else fra
.me
.REG
[4] = once_value_3
;
13543 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13544 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
13547 /* syntax/typing.nit:2112 */
13548 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13549 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13550 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___as_notnull(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13551 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
13552 /* syntax/typing.nit:2113 */
13553 REGB0
= TAG_Bool(1);
13554 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13556 stack_frame_head
= fra
.me
.prev
;
13559 static const char LOCATE_syntax___typing___AProxyExpr___after_typing
[] = "typing::AProxyExpr::(typing::ANode::after_typing)";
13560 void syntax___typing___AProxyExpr___after_typing(val_t p0
, val_t p1
){
13561 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
13564 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13565 fra
.me
.file
= LOCATE_syntax___typing
;
13566 fra
.me
.line
= 2118;
13567 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___after_typing
;
13568 fra
.me
.has_broke
= 0;
13569 fra
.me
.REG_size
= 2;
13570 fra
.me
.nitni_local_ref_head
= NULL
;
13571 fra
.me
.REG
[0] = NIT_NULL
;
13572 fra
.me
.REG
[1] = NIT_NULL
;
13573 fra
.me
.REG
[0] = p0
;
13574 fra
.me
.REG
[1] = p1
;
13575 /* syntax/typing.nit:2120 */
13576 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13577 REGB0
= CALL_syntax___syntax_base___AExpr___is_typed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13578 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13579 if (UNTAG_Bool(REGB0
)) {
13582 /* syntax/typing.nit:2121 */
13583 REGB0
= TAG_Bool(1);
13584 ATTR_syntax___typing___AExpr____is_typed(fra
.me
.REG
[0]) = REGB0
;
13585 /* syntax/typing.nit:2122 */
13586 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13587 REGB0
= CALL_syntax___syntax_base___AExpr___is_statement(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13588 if (UNTAG_Bool(REGB0
)) {
13591 /* syntax/typing.nit:2123 */
13592 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13593 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
13594 ATTR_syntax___typing___AExpr____stype(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13595 /* syntax/typing.nit:2124 */
13596 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13597 fra
.me
.REG
[1] = ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[1]);
13598 ATTR_syntax___typing___AExpr____if_true_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13599 /* syntax/typing.nit:2125 */
13600 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13601 fra
.me
.REG
[1] = ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[1]);
13602 ATTR_syntax___typing___AExpr____if_false_flow_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
13604 stack_frame_head
= fra
.me
.prev
;
13607 static const char LOCATE_syntax___typing___AProxyExpr___is_self
[] = "typing::AProxyExpr::(typing::AExpr::is_self)";
13608 val_t
syntax___typing___AProxyExpr___is_self(val_t p0
){
13609 struct {struct stack_frame_t me
;} fra
;
13612 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13613 fra
.me
.file
= LOCATE_syntax___typing
;
13614 fra
.me
.line
= 2128;
13615 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___is_self
;
13616 fra
.me
.has_broke
= 0;
13617 fra
.me
.REG_size
= 1;
13618 fra
.me
.nitni_local_ref_head
= NULL
;
13619 fra
.me
.REG
[0] = NIT_NULL
;
13620 fra
.me
.REG
[0] = p0
;
13621 /* syntax/typing.nit:2128 */
13622 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13623 REGB0
= CALL_syntax___typing___AExpr___is_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13626 stack_frame_head
= fra
.me
.prev
;
13629 static const char LOCATE_syntax___typing___AProxyExpr___its_variable
[] = "typing::AProxyExpr::(typing::AExpr::its_variable)";
13630 val_t
syntax___typing___AProxyExpr___its_variable(val_t p0
){
13631 struct {struct stack_frame_t me
;} fra
;
13633 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13634 fra
.me
.file
= LOCATE_syntax___typing
;
13635 fra
.me
.line
= 2130;
13636 fra
.me
.meth
= LOCATE_syntax___typing___AProxyExpr___its_variable
;
13637 fra
.me
.has_broke
= 0;
13638 fra
.me
.REG_size
= 1;
13639 fra
.me
.nitni_local_ref_head
= NULL
;
13640 fra
.me
.REG
[0] = NIT_NULL
;
13641 fra
.me
.REG
[0] = p0
;
13642 /* syntax/typing.nit:2130 */
13643 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13644 fra
.me
.REG
[0] = CALL_syntax___typing___AExpr___its_variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13647 stack_frame_head
= fra
.me
.prev
;
13648 return fra
.me
.REG
[0];
13650 static const char LOCATE_syntax___typing___AOnceExpr___accept_typing
[] = "typing::AOnceExpr::(typing::ANode::accept_typing)";
13651 void syntax___typing___AOnceExpr___accept_typing(val_t p0
, val_t p1
){
13652 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
13657 static val_t once_value_1
; /* Once value */
13658 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13659 fra
.me
.file
= LOCATE_syntax___typing
;
13660 fra
.me
.line
= 2134;
13661 fra
.me
.meth
= LOCATE_syntax___typing___AOnceExpr___accept_typing
;
13662 fra
.me
.has_broke
= 0;
13663 fra
.me
.REG_size
= 5;
13664 fra
.me
.nitni_local_ref_head
= NULL
;
13665 fra
.me
.REG
[0] = NIT_NULL
;
13666 fra
.me
.REG
[1] = NIT_NULL
;
13667 fra
.me
.REG
[2] = NIT_NULL
;
13668 fra
.me
.REG
[3] = NIT_NULL
;
13669 fra
.me
.REG
[4] = NIT_NULL
;
13670 fra
.me
.REG
[0] = p0
;
13671 fra
.me
.REG
[1] = p1
;
13672 /* syntax/typing.nit:2134 */
13673 fra
.me
.REG
[2] = fra
.me
.REG
[0];
13674 fra
.me
.REG
[3] = fra
.me
.REG
[1];
13675 /* syntax/typing.nit:2136 */
13676 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13677 REGB1
= TAG_Int(0);
13678 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
13679 if (UNTAG_Bool(REGB2
)) {
13681 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
13683 /* ../lib/standard/kernel.nit:237 */
13684 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
13685 /* syntax/typing.nit:2136 */
13686 if (UNTAG_Bool(REGB1
)) {
13687 /* syntax/typing.nit:2137 */
13688 if (!once_value_1
) {
13689 fra
.me
.REG
[4] = BOX_NativeString("Useless once in a once expression.");
13690 REGB1
= TAG_Int(34);
13691 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
13692 once_value_1
= fra
.me
.REG
[4];
13693 register_static_object(&once_value_1
);
13694 } else fra
.me
.REG
[4] = once_value_1
;
13695 fra
.me
.REG
[4] = fra
.me
.REG
[4];
13696 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
13698 /* syntax/typing.nit:2139 */
13699 REGB1
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13700 REGB0
= TAG_Int(1);
13701 /* ../lib/standard/kernel.nit:238 */
13702 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
13703 /* syntax/typing.nit:2139 */
13704 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
13705 /* syntax/typing.nit:2141 */
13706 CALL_SUPER_syntax___typing___AOnceExpr___accept_typing(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
13707 /* syntax/typing.nit:2143 */
13708 REGB0
= CALL_syntax___typing___TypingVisitor___once_count(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13709 REGB1
= TAG_Int(1);
13710 /* ../lib/standard/kernel.nit:240 */
13711 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
13712 /* syntax/typing.nit:2143 */
13713 CALL_syntax___typing___TypingVisitor___once_count__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
13714 stack_frame_head
= fra
.me
.prev
;
13717 static const char LOCATE_syntax___typing___ADebugTypeExpr___after_typing
[] = "typing::ADebugTypeExpr::(typing::ANode::after_typing)";
13718 void syntax___typing___ADebugTypeExpr___after_typing(val_t p0
, val_t p1
){
13719 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
13723 static val_t once_value_2
; /* Once value */
13724 static val_t once_value_3
; /* Once value */
13725 static val_t once_value_4
; /* Once value */
13726 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
13727 fra
.me
.file
= LOCATE_syntax___typing
;
13728 fra
.me
.line
= 2148;
13729 fra
.me
.meth
= LOCATE_syntax___typing___ADebugTypeExpr___after_typing
;
13730 fra
.me
.has_broke
= 0;
13731 fra
.me
.REG_size
= 6;
13732 fra
.me
.nitni_local_ref_head
= NULL
;
13733 fra
.me
.REG
[0] = NIT_NULL
;
13734 fra
.me
.REG
[1] = NIT_NULL
;
13735 fra
.me
.REG
[2] = NIT_NULL
;
13736 fra
.me
.REG
[3] = NIT_NULL
;
13737 fra
.me
.REG
[4] = NIT_NULL
;
13738 fra
.me
.REG
[5] = NIT_NULL
;
13739 fra
.me
.REG
[0] = p0
;
13740 fra
.me
.REG
[1] = p1
;
13741 /* syntax/typing.nit:2150 */
13742 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13743 REGB0
= CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
13744 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13745 if (UNTAG_Bool(REGB0
)) {
13748 /* syntax/typing.nit:2151 */
13749 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13750 REGB0
= CALL_syntax___syntax_base___AType___is_typed(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13751 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13752 if (UNTAG_Bool(REGB0
)) {
13755 /* syntax/typing.nit:2152 */
13756 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ADebugTypeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13757 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13758 /* syntax/typing.nit:2153 */
13759 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ADebugTypeExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
13760 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13761 /* syntax/typing.nit:2154 */
13762 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
13763 if (UNTAG_Bool(REGB0
)) {
13765 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
13768 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
13769 if (UNTAG_Bool(REGB0
)) {
13770 /* syntax/typing.nit:2155 */
13771 REGB0
= TAG_Int(5);
13772 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
13773 if (!once_value_2
) {
13774 fra
.me
.REG
[5] = BOX_NativeString("Warning: Expression is a ");
13775 REGB0
= TAG_Int(25);
13776 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
13777 once_value_2
= fra
.me
.REG
[5];
13778 register_static_object(&once_value_2
);
13779 } else fra
.me
.REG
[5] = once_value_2
;
13780 fra
.me
.REG
[5] = fra
.me
.REG
[5];
13781 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
13782 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
13783 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
13784 if (!once_value_3
) {
13785 fra
.me
.REG
[2] = BOX_NativeString(", expected ");
13786 REGB0
= TAG_Int(11);
13787 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
13788 once_value_3
= fra
.me
.REG
[2];
13789 register_static_object(&once_value_3
);
13790 } else fra
.me
.REG
[2] = once_value_3
;
13791 fra
.me
.REG
[2] = fra
.me
.REG
[2];
13792 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
13793 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
13794 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
13795 if (!once_value_4
) {
13796 fra
.me
.REG
[3] = BOX_NativeString(".");
13797 REGB0
= TAG_Int(1);
13798 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
13799 once_value_4
= fra
.me
.REG
[3];
13800 register_static_object(&once_value_4
);
13801 } else fra
.me
.REG
[3] = once_value_4
;
13802 fra
.me
.REG
[3] = fra
.me
.REG
[3];
13803 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
13804 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
13805 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[4]);
13808 stack_frame_head
= fra
.me
.prev
;