1 /* This C file is generated by NIT to compile module typing. */
2 #include "typing._sep.h"
3 void typing___MMSrcModule___do_typing(val_t self
, val_t param0
) {
4 struct trace_t trace
= {NULL
, NULL
, 23, LOCATE_typing___MMSrcModule___do_typing
};
6 void **closurevariable
= NULL
;
7 trace
.prev
= tracehead
; tracehead
= &trace
;
8 trace
.file
= LOCATE_typing
;
11 variable
[4] = variable
[0];
12 variable
[5] = NEW_TypingVisitor_typing___TypingVisitor___init( variable
[1] /*tc*/, variable
[4]); /*new TypingVisitor*/
13 variable
[4] = variable
[5];
14 variable
[3] = variable
[4];
15 variable
[4] = variable
[0];
16 variable
[4] = CALL_syntax_base___MMSrcModule___node(variable
[4])(variable
[4]) /*MMSrcModule::node*/;
17 CALL_parser_prod___Visitor___visit( variable
[3] /*tv*/)( variable
[3] /*tv*/, variable
[4]) /*TypingVisitor::visit*/;
18 return_label0
: while(false);
19 tracehead
= trace
.prev
;
22 void typing___TypingVisitor___visit(val_t self
, val_t param0
) {
23 struct trace_t trace
= {NULL
, NULL
, 39, LOCATE_typing___TypingVisitor___visit
};
25 void **closurevariable
= NULL
;
26 trace
.prev
= tracehead
; tracehead
= &trace
;
27 trace
.file
= LOCATE_typing
;
30 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*n*/ == NIT_NULL
/*null*/) || (( variable
[1] /*n*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*n*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*n*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*n*/)( variable
[1] /*n*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
31 if (UNTAG_Bool(variable
[3])) { /*if*/
32 variable
[3] = variable
[0];
33 CALL_typing___PNode___accept_typing( variable
[1] /*n*/)( variable
[1] /*n*/, variable
[3]) /*PNode::accept_typing*/;
35 return_label1
: while(false);
36 tracehead
= trace
.prev
;
39 val_t
typing___TypingVisitor___variable_ctx(val_t self
) {
40 struct trace_t trace
= {NULL
, NULL
, 44, LOCATE_typing___TypingVisitor___variable_ctx
};
41 val_t
*variable
= NULL
;
42 void **closurevariable
= NULL
;
43 trace
.prev
= tracehead
; tracehead
= &trace
;
44 trace
.file
= LOCATE_typing
;
45 tracehead
= trace
.prev
;
46 return ATTR_typing___TypingVisitor____variable_ctx( self
) /*TypingVisitor::_variable_ctx*/;
48 void typing___TypingVisitor___variable_ctx__eq(val_t self
, val_t param0
) {
49 struct trace_t trace
= {NULL
, NULL
, 44, LOCATE_typing___TypingVisitor___variable_ctx__eq
};
50 val_t
*variable
= NULL
;
51 void **closurevariable
= NULL
;
52 trace
.prev
= tracehead
; tracehead
= &trace
;
53 trace
.file
= LOCATE_typing
;
54 ATTR_typing___TypingVisitor____variable_ctx( self
) /*TypingVisitor::_variable_ctx*/ = param0
;
55 tracehead
= trace
.prev
;
58 val_t
typing___TypingVisitor___self_var(val_t self
) {
59 struct trace_t trace
= {NULL
, NULL
, 47, LOCATE_typing___TypingVisitor___self_var
};
60 val_t
*variable
= NULL
;
61 void **closurevariable
= NULL
;
62 trace
.prev
= tracehead
; tracehead
= &trace
;
63 trace
.file
= LOCATE_typing
;
64 tracehead
= trace
.prev
;
65 return ATTR_typing___TypingVisitor____self_var( self
) /*TypingVisitor::_self_var*/;
67 void typing___TypingVisitor___self_var__eq(val_t self
, val_t param0
) {
68 struct trace_t trace
= {NULL
, NULL
, 47, LOCATE_typing___TypingVisitor___self_var__eq
};
69 val_t
*variable
= NULL
;
70 void **closurevariable
= NULL
;
71 trace
.prev
= tracehead
; tracehead
= &trace
;
72 trace
.file
= LOCATE_typing
;
73 ATTR_typing___TypingVisitor____self_var( self
) /*TypingVisitor::_self_var*/ = param0
;
74 tracehead
= trace
.prev
;
77 val_t
typing___TypingVisitor___top_block(val_t self
) {
78 struct trace_t trace
= {NULL
, NULL
, 50, LOCATE_typing___TypingVisitor___top_block
};
79 val_t
*variable
= NULL
;
80 void **closurevariable
= NULL
;
81 trace
.prev
= tracehead
; tracehead
= &trace
;
82 trace
.file
= LOCATE_typing
;
83 tracehead
= trace
.prev
;
84 return ATTR_typing___TypingVisitor____top_block( self
) /*TypingVisitor::_top_block*/;
86 void typing___TypingVisitor___top_block__eq(val_t self
, val_t param0
) {
87 struct trace_t trace
= {NULL
, NULL
, 50, LOCATE_typing___TypingVisitor___top_block__eq
};
88 val_t
*variable
= NULL
;
89 void **closurevariable
= NULL
;
90 trace
.prev
= tracehead
; tracehead
= &trace
;
91 trace
.file
= LOCATE_typing
;
92 ATTR_typing___TypingVisitor____top_block( self
) /*TypingVisitor::_top_block*/ = param0
;
93 tracehead
= trace
.prev
;
96 val_t
typing___TypingVisitor___closure(val_t self
) {
97 struct trace_t trace
= {NULL
, NULL
, 53, LOCATE_typing___TypingVisitor___closure
};
98 val_t
*variable
= NULL
;
99 void **closurevariable
= NULL
;
100 trace
.prev
= tracehead
; tracehead
= &trace
;
101 trace
.file
= LOCATE_typing
;
102 tracehead
= trace
.prev
;
103 return ATTR_typing___TypingVisitor____closure( self
) /*TypingVisitor::_closure*/;
105 void typing___TypingVisitor___closure__eq(val_t self
, val_t param0
) {
106 struct trace_t trace
= {NULL
, NULL
, 53, LOCATE_typing___TypingVisitor___closure__eq
};
107 val_t
*variable
= NULL
;
108 void **closurevariable
= NULL
;
109 trace
.prev
= tracehead
; tracehead
= &trace
;
110 trace
.file
= LOCATE_typing
;
111 ATTR_typing___TypingVisitor____closure( self
) /*TypingVisitor::_closure*/ = param0
;
112 tracehead
= trace
.prev
;
115 val_t
typing___TypingVisitor___closure_break_stype(val_t self
) {
116 struct trace_t trace
= {NULL
, NULL
, 56, LOCATE_typing___TypingVisitor___closure_break_stype
};
117 val_t
*variable
= NULL
;
118 void **closurevariable
= NULL
;
119 trace
.prev
= tracehead
; tracehead
= &trace
;
120 trace
.file
= LOCATE_typing
;
121 tracehead
= trace
.prev
;
122 return ATTR_typing___TypingVisitor____closure_break_stype( self
) /*TypingVisitor::_closure_break_stype*/;
124 void typing___TypingVisitor___closure_break_stype__eq(val_t self
, val_t param0
) {
125 struct trace_t trace
= {NULL
, NULL
, 56, LOCATE_typing___TypingVisitor___closure_break_stype__eq
};
126 val_t
*variable
= NULL
;
127 void **closurevariable
= NULL
;
128 trace
.prev
= tracehead
; tracehead
= &trace
;
129 trace
.file
= LOCATE_typing
;
130 ATTR_typing___TypingVisitor____closure_break_stype( self
) /*TypingVisitor::_closure_break_stype*/ = param0
;
131 tracehead
= trace
.prev
;
134 val_t
typing___TypingVisitor___break_list(val_t self
) {
135 struct trace_t trace
= {NULL
, NULL
, 59, LOCATE_typing___TypingVisitor___break_list
};
136 val_t
*variable
= NULL
;
137 void **closurevariable
= NULL
;
138 trace
.prev
= tracehead
; tracehead
= &trace
;
139 trace
.file
= LOCATE_typing
;
140 tracehead
= trace
.prev
;
141 return ATTR_typing___TypingVisitor____break_list( self
) /*TypingVisitor::_break_list*/;
143 void typing___TypingVisitor___break_list__eq(val_t self
, val_t param0
) {
144 struct trace_t trace
= {NULL
, NULL
, 59, LOCATE_typing___TypingVisitor___break_list__eq
};
145 val_t
*variable
= NULL
;
146 void **closurevariable
= NULL
;
147 trace
.prev
= tracehead
; tracehead
= &trace
;
148 trace
.file
= LOCATE_typing
;
149 ATTR_typing___TypingVisitor____break_list( self
) /*TypingVisitor::_break_list*/ = param0
;
150 tracehead
= trace
.prev
;
153 val_t
typing___TypingVisitor___explicit_super_init_calls(val_t self
) {
154 struct trace_t trace
= {NULL
, NULL
, 62, LOCATE_typing___TypingVisitor___explicit_super_init_calls
};
155 val_t
*variable
= NULL
;
156 void **closurevariable
= NULL
;
157 trace
.prev
= tracehead
; tracehead
= &trace
;
158 trace
.file
= LOCATE_typing
;
159 tracehead
= trace
.prev
;
160 return ATTR_typing___TypingVisitor____explicit_super_init_calls( self
) /*TypingVisitor::_explicit_super_init_calls*/;
162 void typing___TypingVisitor___explicit_super_init_calls__eq(val_t self
, val_t param0
) {
163 struct trace_t trace
= {NULL
, NULL
, 62, LOCATE_typing___TypingVisitor___explicit_super_init_calls__eq
};
164 val_t
*variable
= NULL
;
165 void **closurevariable
= NULL
;
166 trace
.prev
= tracehead
; tracehead
= &trace
;
167 trace
.file
= LOCATE_typing
;
168 ATTR_typing___TypingVisitor____explicit_super_init_calls( self
) /*TypingVisitor::_explicit_super_init_calls*/ = param0
;
169 tracehead
= trace
.prev
;
172 val_t
typing___TypingVisitor___explicit_other_init_call(val_t self
) {
173 struct trace_t trace
= {NULL
, NULL
, 65, LOCATE_typing___TypingVisitor___explicit_other_init_call
};
174 val_t
*variable
= NULL
;
175 void **closurevariable
= NULL
;
176 trace
.prev
= tracehead
; tracehead
= &trace
;
177 trace
.file
= LOCATE_typing
;
178 tracehead
= trace
.prev
;
179 return ATTR_typing___TypingVisitor____explicit_other_init_call( self
) /*TypingVisitor::_explicit_other_init_call*/;
181 void typing___TypingVisitor___explicit_other_init_call__eq(val_t self
, val_t param0
) {
182 struct trace_t trace
= {NULL
, NULL
, 65, LOCATE_typing___TypingVisitor___explicit_other_init_call__eq
};
183 val_t
*variable
= NULL
;
184 void **closurevariable
= NULL
;
185 trace
.prev
= tracehead
; tracehead
= &trace
;
186 trace
.file
= LOCATE_typing
;
187 ATTR_typing___TypingVisitor____explicit_other_init_call( self
) /*TypingVisitor::_explicit_other_init_call*/ = param0
;
188 tracehead
= trace
.prev
;
191 void typing___TypingVisitor___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
192 struct trace_t trace
= {NULL
, NULL
, 68, LOCATE_typing___TypingVisitor___init
};
194 void **closurevariable
= NULL
;
195 trace
.prev
= tracehead
; tracehead
= &trace
;
196 trace
.file
= LOCATE_typing
;
198 variable
[1] = param0
;
199 variable
[2] = param1
;
200 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_TypingVisitor
].i
]) return;
201 CALL_syntax_base___AbsSyntaxVisitor___init(variable
[0])(variable
[0], variable
[1], variable
[2], init_table
/*YYY*/) /*AbsSyntaxVisitor::init*/;
202 return_label2
: while(false);
203 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_TypingVisitor
].i
] = 1;
204 tracehead
= trace
.prev
;
207 val_t
typing___TypingVisitor___get_default_constructor_for(val_t self
, val_t param0
, val_t param1
, val_t param2
) {
208 struct trace_t trace
= {NULL
, NULL
, 70, LOCATE_typing___TypingVisitor___get_default_constructor_for
};
209 static val_t once_value_5
; static int once_bool_5
; /* Once value for variable[17]*/
211 void **closurevariable
= NULL
;
212 trace
.prev
= tracehead
; tracehead
= &trace
;
213 trace
.file
= LOCATE_typing
;
215 variable
[1] = param0
;
216 variable
[2] = param1
;
217 variable
[3] = param2
;
218 variable
[6] = variable
[0];
219 variable
[5] = variable
[6];
220 variable
[7] = NEW_Array_array___Array___init(); /*new Array[MMMethod]*/
221 variable
[6] = variable
[7];
222 variable
[8] = NEW_Array_array___Array___init(); /*new Array[MMMethod]*/
223 variable
[7] = variable
[8];
224 variable
[9] = CALL_static_type___MMLocalProperty___signature( variable
[3] /*prop*/)( variable
[3] /*prop*/) /*MMLocalProperty::signature*/;
225 variable
[9] = CALL_static_type___MMSignature___arity(variable
[9])(variable
[9]) /*MMSignature::arity*/;
226 variable
[8] = variable
[9];
227 variable
[9] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable
[2] /*c*/)( variable
[2] /*c*/) /*MMLocalClass::global_properties*/;
228 variable
[9] = CALL_abstract_collection___Collection___iterator(variable
[9])(variable
[9]) /*Collection::iterator*/;
229 while (true) { /*for*/
230 variable
[10] = CALL_abstract_collection___Iterator___is_ok(variable
[9])(variable
[9]) /*Iterator::is_ok*/;
231 if (!UNTAG_Bool(variable
[10])) break; /*for*/
232 variable
[10] = CALL_abstract_collection___Iterator___item(variable
[9])(variable
[9]) /*Iterator::item*/;
233 variable
[11] = variable
[10];
234 variable
[12] = CALL_abstractmetamodel___MMGlobalProperty___is_init_for( variable
[11] /*g*/)( variable
[11] /*g*/, variable
[2] /*c*/) /*MMGlobalProperty::is_init_for*/;
235 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[12])))) { /*if*/
238 variable
[13] = CALL_abstractmetamodel___MMLocalClass_____bra( variable
[2] /*c*/)( variable
[2] /*c*/, variable
[11] /*g*/) /*MMLocalClass::[]*/;
239 variable
[12] = variable
[13];
240 variable
[14] = CALL_static_type___MMLocalClass___get_type( variable
[2] /*c*/)( variable
[2] /*c*/) /*MMLocalClass::get_type*/;
241 variable
[14] = CALL_static_type___MMLocalProperty___signature_for( variable
[12] /*gp*/)( variable
[12] /*gp*/, variable
[14]) /*MMLocalProperty::signature_for*/;
242 variable
[13] = variable
[14];
243 variable
[14] = TAG_Bool(( variable
[12] /*gp*/==NIT_NULL
) || VAL_ISA( variable
[12] /*gp*/, COLOR_MMSrcMethod
, ID_MMSrcMethod
)) /*cast MMSrcMethod*/;
244 if (!UNTAG_Bool(variable
[14])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_typing___TypingVisitor___get_default_constructor_for
, LOCATE_typing
, 82); nit_exit(1);}
245 variable
[15] = CALL_static_type___MMSignature___arity( variable
[13] /*gps*/)( variable
[13] /*gps*/) /*MMSignature::arity*/;
246 variable
[14] = variable
[15];
247 variable
[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*prop*/ == NIT_NULL
/*null*/) || (( variable
[3] /*prop*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*prop*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*prop*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*prop*/)( variable
[3] /*prop*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
248 variable
[16] = variable
[15];
249 if (UNTAG_Bool(variable
[16])) { /* and */
250 variable
[16] = CALL_abstractmetamodel___MMLocalProperty___name( variable
[12] /*gp*/)( variable
[12] /*gp*/) /*MMLocalProperty::name*/;
251 variable
[17] = CALL_abstractmetamodel___MMLocalProperty___name( variable
[3] /*prop*/)( variable
[3] /*prop*/) /*MMLocalProperty::name*/;
252 variable
[16] = TAG_Bool((variable
[16] == variable
[17]) || ((variable
[16] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[16])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[16],variable
[17])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[16])(variable
[16], variable
[17]) /*Object::==*/)))));
254 variable
[15] = variable
[16];
255 if (UNTAG_Bool(variable
[15])) { /*if*/
256 variable
[15] = TAG_Bool(( variable
[14] /*garity*/)==( TAG_Int(0)));
257 variable
[16] = variable
[15];
258 if (!UNTAG_Bool(variable
[16])) { /* or */
259 variable
[16] = TAG_Bool(( variable
[8] /*parity*/)==( variable
[14] /*garity*/));
260 variable
[17] = variable
[16];
261 if (UNTAG_Bool(variable
[17])) { /* and */
262 variable
[17] = CALL_static_type___MMLocalProperty___signature( variable
[3] /*prop*/)( variable
[3] /*prop*/) /*MMLocalProperty::signature*/;
263 variable
[17] = CALL_static_type___MMSignature_____l(variable
[17])(variable
[17], variable
[13] /*gps*/) /*MMSignature::<*/;
265 variable
[16] = variable
[17];
267 variable
[15] = variable
[16];
268 if (UNTAG_Bool(variable
[15])) { /*if*/
269 variable
[4] = variable
[12] /*gp*/;
272 CALL_abstract_collection___SimpleCollection___add( variable
[7] /*false_candidates*/)( variable
[7] /*false_candidates*/, variable
[12] /*gp*/) /*AbstractArray::add*/;
275 variable
[15] = TAG_Bool(( variable
[14] /*garity*/)==( TAG_Int(0)));
276 variable
[16] = variable
[15];
277 if (UNTAG_Bool(variable
[16])) { /* and */
278 variable
[16] = CALL_abstractmetamodel___MMLocalProperty___name( variable
[12] /*gp*/)( variable
[12] /*gp*/) /*MMLocalProperty::name*/;
279 if (once_bool_5
) variable
[17] = once_value_5
;
281 variable
[17] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
282 variable
[17] = CALL_symbol___String___to_symbol(variable
[17])(variable
[17]) /*String::to_symbol*/;
283 once_value_5
= variable
[17];
286 variable
[16] = TAG_Bool((variable
[16] == variable
[17]) || ((variable
[16] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[16])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[16],variable
[17])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[16])(variable
[16], variable
[17]) /*Object::==*/)))));
288 variable
[15] = variable
[16];
289 if (UNTAG_Bool(variable
[15])) { /*if*/
290 CALL_abstract_collection___SimpleCollection___add( variable
[6] /*candidates*/)( variable
[6] /*candidates*/, variable
[12] /*gp*/) /*AbstractArray::add*/;
291 CALL_abstract_collection___SimpleCollection___add( variable
[7] /*false_candidates*/)( variable
[7] /*false_candidates*/, variable
[12] /*gp*/) /*AbstractArray::add*/;
293 CALL_abstract_collection___SimpleCollection___add( variable
[7] /*false_candidates*/)( variable
[7] /*false_candidates*/, variable
[12] /*gp*/) /*AbstractArray::add*/;
296 continue_4
: while(0);
297 CALL_abstract_collection___Iterator___next(variable
[9])(variable
[9]) /*Iterator::next*/;
300 variable
[9] = CALL_abstract_collection___Collection___length( variable
[6] /*candidates*/)( variable
[6] /*candidates*/) /*AbstractArray::length*/;
301 variable
[9] = TAG_Bool((variable
[9])==( TAG_Int(1)));
302 if (UNTAG_Bool(variable
[9])) { /*if*/
303 variable
[9] = CALL_abstract_collection___Collection___first( variable
[6] /*candidates*/)( variable
[6] /*candidates*/) /*IndexedCollection::first*/;
304 variable
[4] = variable
[9];
307 variable
[9] = CALL_abstract_collection___Collection___length( variable
[6] /*candidates*/)( variable
[6] /*candidates*/) /*AbstractArray::length*/;
308 variable
[9] = TAG_Bool(UNTAG_Int(variable
[9])>UNTAG_Int( TAG_Int(0)));
309 if (UNTAG_Bool(variable
[9])) { /*if*/
310 variable
[10] = NEW_Array_array___Array___init(); /*new Array[String]*/
311 variable
[9] = variable
[10];
312 variable
[10] = CALL_abstract_collection___Collection___iterator( variable
[6] /*candidates*/)( variable
[6] /*candidates*/) /*AbstractArray::iterator*/;
313 while (true) { /*for*/
314 variable
[11] = CALL_abstract_collection___Iterator___is_ok(variable
[10])(variable
[10]) /*ArrayIterator::is_ok*/;
315 if (!UNTAG_Bool(variable
[11])) break; /*for*/
316 variable
[11] = CALL_abstract_collection___Iterator___item(variable
[10])(variable
[10]) /*ArrayIterator::item*/;
317 variable
[12] = variable
[11];
318 variable
[13] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
319 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
320 variable
[15] = variable
[14];
321 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[15]) /*AbstractArray::add*/;
322 variable
[16] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable
[12] /*p*/)( variable
[12] /*p*/) /*MMLocalProperty::full_name*/;
323 variable
[17] = variable
[16];
324 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[17]) /*AbstractArray::add*/;
325 variable
[18] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
326 variable
[19] = variable
[18];
327 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[19]) /*AbstractArray::add*/;
328 variable
[20] = CALL_static_type___MMLocalProperty___signature( variable
[12] /*p*/)( variable
[12] /*p*/) /*MMLocalProperty::signature*/;
329 variable
[21] = variable
[20];
330 variable
[21] = CALL_string___Object___to_s(variable
[21])(variable
[21]) /*Object::to_s*/;
331 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[21]) /*AbstractArray::add*/;
332 variable
[22] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
333 variable
[23] = variable
[22];
334 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[23]) /*AbstractArray::add*/;
335 variable
[13] = CALL_string___Object___to_s(variable
[13])(variable
[13]) /*Object::to_s*/;
336 CALL_abstract_collection___SimpleCollection___add( variable
[9] /*a*/)( variable
[9] /*a*/, variable
[13]) /*AbstractArray::add*/;
337 continue_6
: while(0);
338 CALL_abstract_collection___Iterator___next(variable
[10])(variable
[10]) /*ArrayIterator::next*/;
341 variable
[10] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
342 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: Conflicting default constructor to call for "), TAG_Int(51)); /*new String*/
343 variable
[12] = variable
[11];
344 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[12]) /*AbstractArray::add*/;
345 variable
[13] = variable
[2] /*c*/;
346 variable
[13] = CALL_string___Object___to_s(variable
[13])(variable
[13]) /*Object::to_s*/;
347 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[13]) /*AbstractArray::add*/;
348 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
349 variable
[15] = variable
[14];
350 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[15]) /*AbstractArray::add*/;
351 variable
[16] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
352 variable
[16] = CALL_string___Collection___join( variable
[9] /*a*/)( variable
[9] /*a*/, variable
[16]) /*Collection::join*/;
353 variable
[17] = variable
[16];
354 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[17]) /*AbstractArray::add*/;
355 variable
[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
356 variable
[19] = variable
[18];
357 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[19]) /*AbstractArray::add*/;
358 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
359 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[5] /*v*/)( variable
[5] /*v*/, variable
[1] /*n*/, variable
[10]) /*AbsSyntaxVisitor::error*/;
360 variable
[4] = NIT_NULL
/*null*/;
363 variable
[9] = CALL_abstract_collection___Collection___length( variable
[7] /*false_candidates*/)( variable
[7] /*false_candidates*/) /*AbstractArray::length*/;
364 variable
[9] = TAG_Bool(UNTAG_Int(variable
[9])>UNTAG_Int( TAG_Int(0)));
365 if (UNTAG_Bool(variable
[9])) { /*if*/
366 variable
[10] = NEW_Array_array___Array___init(); /*new Array[String]*/
367 variable
[9] = variable
[10];
368 variable
[10] = CALL_abstract_collection___Collection___iterator( variable
[7] /*false_candidates*/)( variable
[7] /*false_candidates*/) /*AbstractArray::iterator*/;
369 while (true) { /*for*/
370 variable
[11] = CALL_abstract_collection___Iterator___is_ok(variable
[10])(variable
[10]) /*ArrayIterator::is_ok*/;
371 if (!UNTAG_Bool(variable
[11])) break; /*for*/
372 variable
[11] = CALL_abstract_collection___Iterator___item(variable
[10])(variable
[10]) /*ArrayIterator::item*/;
373 variable
[12] = variable
[11];
374 variable
[13] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
375 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
376 variable
[15] = variable
[14];
377 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[15]) /*AbstractArray::add*/;
378 variable
[16] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable
[12] /*p*/)( variable
[12] /*p*/) /*MMLocalProperty::full_name*/;
379 variable
[17] = variable
[16];
380 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[17]) /*AbstractArray::add*/;
381 variable
[18] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
382 variable
[19] = variable
[18];
383 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[19]) /*AbstractArray::add*/;
384 variable
[20] = CALL_static_type___MMLocalProperty___signature( variable
[12] /*p*/)( variable
[12] /*p*/) /*MMLocalProperty::signature*/;
385 variable
[21] = variable
[20];
386 variable
[21] = CALL_string___Object___to_s(variable
[21])(variable
[21]) /*Object::to_s*/;
387 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[21]) /*AbstractArray::add*/;
388 variable
[22] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
389 variable
[23] = variable
[22];
390 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[23]) /*AbstractArray::add*/;
391 variable
[13] = CALL_string___Object___to_s(variable
[13])(variable
[13]) /*Object::to_s*/;
392 CALL_abstract_collection___SimpleCollection___add( variable
[9] /*a*/)( variable
[9] /*a*/, variable
[13]) /*AbstractArray::add*/;
393 continue_7
: while(0);
394 CALL_abstract_collection___Iterator___next(variable
[10])(variable
[10]) /*ArrayIterator::next*/;
397 variable
[10] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
398 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: there is no available compatible constrctor in "), TAG_Int(54)); /*new String*/
399 variable
[12] = variable
[11];
400 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[12]) /*AbstractArray::add*/;
401 variable
[13] = variable
[2] /*c*/;
402 variable
[13] = CALL_string___Object___to_s(variable
[13])(variable
[13]) /*Object::to_s*/;
403 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[13]) /*AbstractArray::add*/;
404 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString(". Discarded candidates are "), TAG_Int(27)); /*new String*/
405 variable
[15] = variable
[14];
406 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[15]) /*AbstractArray::add*/;
407 variable
[16] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
408 variable
[16] = CALL_string___Collection___join( variable
[9] /*a*/)( variable
[9] /*a*/, variable
[16]) /*Collection::join*/;
409 variable
[17] = variable
[16];
410 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[17]) /*AbstractArray::add*/;
411 variable
[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
412 variable
[19] = variable
[18];
413 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[19]) /*AbstractArray::add*/;
414 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
415 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[5] /*v*/)( variable
[5] /*v*/, variable
[1] /*n*/, variable
[10]) /*AbsSyntaxVisitor::error*/;
416 variable
[4] = NIT_NULL
/*null*/;
419 variable
[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
420 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: there is no available compatible constrctor in "), TAG_Int(54)); /*new String*/
421 variable
[11] = variable
[10];
422 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[11]) /*AbstractArray::add*/;
423 variable
[12] = variable
[2] /*c*/;
424 variable
[12] = CALL_string___Object___to_s(variable
[12])(variable
[12]) /*Object::to_s*/;
425 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[12]) /*AbstractArray::add*/;
426 variable
[13] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
427 variable
[14] = variable
[13];
428 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[14]) /*AbstractArray::add*/;
429 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
430 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[5] /*v*/)( variable
[5] /*v*/, variable
[1] /*n*/, variable
[9]) /*AbsSyntaxVisitor::error*/;
431 variable
[4] = NIT_NULL
/*null*/;
436 return_label3
: while(false);
437 tracehead
= trace
.prev
;
440 val_t
typing___VariableContext_____bra(val_t self
, val_t param0
) {
441 struct trace_t trace
= {NULL
, NULL
, 123, LOCATE_typing___VariableContext_____bra
};
443 void **closurevariable
= NULL
;
444 trace
.prev
= tracehead
; tracehead
= &trace
;
445 trace
.file
= LOCATE_typing
;
447 variable
[1] = param0
;
448 variable
[3] = variable
[0];
449 variable
[3] = ATTR_typing___VariableContext____dico(variable
[3]) /*VariableContext::_dico*/;
450 variable
[3] = CALL_abstract_collection___Map___has_key(variable
[3])(variable
[3], variable
[1] /*s*/) /*Map::has_key*/;
451 if (UNTAG_Bool(variable
[3])) { /*if*/
452 variable
[3] = variable
[0];
453 variable
[3] = ATTR_typing___VariableContext____dico(variable
[3]) /*VariableContext::_dico*/;
454 variable
[3] = CALL_abstract_collection___Map_____bra(variable
[3])(variable
[3], variable
[1] /*s*/) /*Map::[]*/;
455 variable
[2] = variable
[3];
458 variable
[2] = NIT_NULL
/*null*/;
461 return_label8
: while(false);
462 tracehead
= trace
.prev
;
465 void typing___VariableContext___add(val_t self
, val_t param0
) {
466 struct trace_t trace
= {NULL
, NULL
, 134, LOCATE_typing___VariableContext___add
};
468 void **closurevariable
= NULL
;
469 trace
.prev
= tracehead
; tracehead
= &trace
;
470 trace
.file
= LOCATE_typing
;
472 variable
[1] = param0
;
473 variable
[3] = variable
[0];
474 variable
[3] = ATTR_typing___VariableContext____dico(variable
[3]) /*VariableContext::_dico*/;
475 variable
[4] = CALL_syntax_base___Variable___name( variable
[1] /*v*/)( variable
[1] /*v*/) /*Variable::name*/;
476 CALL_abstract_collection___Map_____braeq(variable
[3])(variable
[3], variable
[4], variable
[1] /*v*/) /*Map::[]=*/;
477 return_label9
: while(false);
478 tracehead
= trace
.prev
;
481 val_t
typing___VariableContext___stype(val_t self
, val_t param0
) {
482 struct trace_t trace
= {NULL
, NULL
, 141, LOCATE_typing___VariableContext___stype
};
484 void **closurevariable
= NULL
;
485 trace
.prev
= tracehead
; tracehead
= &trace
;
486 trace
.file
= LOCATE_typing
;
488 variable
[1] = param0
;
489 variable
[3] = CALL_syntax_base___Variable___stype( variable
[1] /*v*/)( variable
[1] /*v*/) /*Variable::stype*/;
490 variable
[2] = variable
[3];
492 return_label10
: while(false);
493 tracehead
= trace
.prev
;
496 val_t
typing___VariableContext___sub(val_t self
) {
497 struct trace_t trace
= {NULL
, NULL
, 151, LOCATE_typing___VariableContext___sub
};
499 void **closurevariable
= NULL
;
500 trace
.prev
= tracehead
; tracehead
= &trace
;
501 trace
.file
= LOCATE_typing
;
503 variable
[2] = variable
[0];
504 variable
[3] = NEW_SubVariableContext_typing___SubVariableContext___with_prev(variable
[2], NIT_NULL
/*null*/, NIT_NULL
/*null*/); /*new SubVariableContext*/
505 variable
[2] = variable
[3];
506 variable
[1] = variable
[2];
508 return_label11
: while(false);
509 tracehead
= trace
.prev
;
512 val_t
typing___VariableContext___sub_with(val_t self
, val_t param0
, val_t param1
) {
513 struct trace_t trace
= {NULL
, NULL
, 157, LOCATE_typing___VariableContext___sub_with
};
515 void **closurevariable
= NULL
;
516 trace
.prev
= tracehead
; tracehead
= &trace
;
517 trace
.file
= LOCATE_typing
;
519 variable
[1] = param0
;
520 variable
[2] = param1
;
521 variable
[4] = variable
[0];
522 variable
[5] = NEW_SubVariableContext_typing___SubVariableContext___with_prev(variable
[4], variable
[1] /*v*/, variable
[2] /*t*/); /*new SubVariableContext*/
523 variable
[4] = variable
[5];
524 variable
[3] = variable
[4];
526 return_label12
: while(false);
527 tracehead
= trace
.prev
;
530 void typing___VariableContext___init(val_t self
, int* init_table
) {
531 struct trace_t trace
= {NULL
, NULL
, 163, LOCATE_typing___VariableContext___init
};
533 void **closurevariable
= NULL
;
534 trace
.prev
= tracehead
; tracehead
= &trace
;
535 trace
.file
= LOCATE_typing
;
537 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_VariableContext
].i
]) return;
538 variable
[2] = variable
[0];
539 variable
[3] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Symbol, Variable]*/
540 ATTR_typing___VariableContext____dico(variable
[2]) /*VariableContext::_dico*/ = variable
[3];
541 return_label13
: while(false);
542 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_VariableContext
].i
] = 1;
543 tracehead
= trace
.prev
;
546 val_t
typing___SubVariableContext_____bra(val_t self
, val_t param0
) {
547 struct trace_t trace
= {NULL
, NULL
, 175, LOCATE_typing___SubVariableContext_____bra
};
549 void **closurevariable
= NULL
;
550 trace
.prev
= tracehead
; tracehead
= &trace
;
551 trace
.file
= LOCATE_typing
;
553 variable
[1] = param0
;
554 variable
[3] = variable
[0];
555 variable
[3] = ATTR_typing___VariableContext____dico(variable
[3]) /*VariableContext::_dico*/;
556 variable
[3] = CALL_abstract_collection___Map___has_key(variable
[3])(variable
[3], variable
[1] /*s*/) /*Map::has_key*/;
557 if (UNTAG_Bool(variable
[3])) { /*if*/
558 variable
[3] = variable
[0];
559 variable
[3] = ATTR_typing___VariableContext____dico(variable
[3]) /*VariableContext::_dico*/;
560 variable
[3] = CALL_abstract_collection___Map_____bra(variable
[3])(variable
[3], variable
[1] /*s*/) /*Map::[]*/;
561 variable
[2] = variable
[3];
564 variable
[3] = variable
[0];
565 variable
[3] = CALL_typing___SubVariableContext___prev(variable
[3])(variable
[3]) /*SubVariableContext::prev*/;
566 variable
[3] = CALL_typing___VariableContext_____bra(variable
[3])(variable
[3], variable
[1] /*s*/) /*VariableContext::[]*/;
567 variable
[2] = variable
[3];
570 return_label14
: while(false);
571 tracehead
= trace
.prev
;
574 val_t
typing___SubVariableContext___stype(val_t self
, val_t param0
) {
575 struct trace_t trace
= {NULL
, NULL
, 184, LOCATE_typing___SubVariableContext___stype
};
577 void **closurevariable
= NULL
;
578 trace
.prev
= tracehead
; tracehead
= &trace
;
579 trace
.file
= LOCATE_typing
;
581 variable
[1] = param0
;
582 variable
[3] = variable
[0];
583 variable
[3] = ATTR_typing___SubVariableContext____variable(variable
[3]) /*SubVariableContext::_variable*/;
584 variable
[3] = TAG_Bool((variable
[3] == variable
[1] /*v*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], variable
[1] /*v*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], variable
[1] /*v*/) /*Object::==*/)))));
585 if (UNTAG_Bool(variable
[3])) { /*if*/
586 variable
[3] = variable
[0];
587 variable
[3] = ATTR_typing___SubVariableContext____var_type(variable
[3]) /*SubVariableContext::_var_type*/;
588 variable
[2] = variable
[3];
591 variable
[3] = variable
[0];
592 variable
[3] = CALL_typing___SubVariableContext___prev(variable
[3])(variable
[3]) /*SubVariableContext::prev*/;
593 variable
[3] = CALL_typing___VariableContext___stype(variable
[3])(variable
[3], variable
[1] /*v*/) /*VariableContext::stype*/;
594 variable
[2] = variable
[3];
596 return_label15
: while(false);
597 tracehead
= trace
.prev
;
600 val_t
typing___SubVariableContext___prev(val_t self
) {
601 struct trace_t trace
= {NULL
, NULL
, 171, LOCATE_typing___SubVariableContext___prev
};
602 val_t
*variable
= NULL
;
603 void **closurevariable
= NULL
;
604 trace
.prev
= tracehead
; tracehead
= &trace
;
605 trace
.file
= LOCATE_typing
;
606 tracehead
= trace
.prev
;
607 return ATTR_typing___SubVariableContext____prev( self
) /*SubVariableContext::_prev*/;
609 void typing___SubVariableContext___with_prev(val_t self
, val_t param0
, val_t param1
, val_t param2
, int* init_table
) {
610 struct trace_t trace
= {NULL
, NULL
, 192, LOCATE_typing___SubVariableContext___with_prev
};
612 void **closurevariable
= NULL
;
613 trace
.prev
= tracehead
; tracehead
= &trace
;
614 trace
.file
= LOCATE_typing
;
616 variable
[1] = param0
;
617 variable
[2] = param1
;
618 variable
[3] = param2
;
619 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_SubVariableContext
].i
]) return;
620 variable
[5] = variable
[0];
621 CALL_typing___VariableContext___init(variable
[5])(variable
[5], init_table
/*YYY*/) /*VariableContext::init*/;
622 variable
[5] = variable
[0];
623 ATTR_typing___SubVariableContext____prev(variable
[5]) /*SubVariableContext::_prev*/ = variable
[1] /*p*/;
624 variable
[5] = variable
[0];
625 ATTR_typing___SubVariableContext____variable(variable
[5]) /*SubVariableContext::_variable*/ = variable
[2] /*v*/;
626 variable
[5] = variable
[0];
627 ATTR_typing___SubVariableContext____var_type(variable
[5]) /*SubVariableContext::_var_type*/ = variable
[3] /*t*/;
628 return_label16
: while(false);
629 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_SubVariableContext
].i
] = 1;
630 tracehead
= trace
.prev
;
633 void typing___PNode___accept_typing(val_t self
, val_t param0
) {
634 struct trace_t trace
= {NULL
, NULL
, 205, LOCATE_typing___PNode___accept_typing
};
636 void **closurevariable
= NULL
;
637 trace
.prev
= tracehead
; tracehead
= &trace
;
638 trace
.file
= LOCATE_typing
;
640 variable
[1] = param0
;
641 variable
[3] = variable
[0];
642 CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable
[3])(variable
[3], variable
[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
643 variable
[3] = variable
[0];
644 CALL_typing___PNode___after_typing(variable
[3])(variable
[3], variable
[1] /*v*/) /*PNode::after_typing*/;
645 return_label17
: while(false);
646 tracehead
= trace
.prev
;
649 void typing___PNode___after_typing(val_t self
, val_t param0
) {
650 struct trace_t trace
= {NULL
, NULL
, 210, LOCATE_typing___PNode___after_typing
};
652 void **closurevariable
= NULL
;
653 trace
.prev
= tracehead
; tracehead
= &trace
;
654 trace
.file
= LOCATE_typing
;
656 variable
[1] = param0
;
657 return_label18
: while(false);
658 tracehead
= trace
.prev
;
661 void typing___PClassdef___accept_typing(val_t self
, val_t param0
) {
662 struct trace_t trace
= {NULL
, NULL
, 214, LOCATE_typing___PClassdef___accept_typing
};
664 void **closurevariable
= NULL
;
665 trace
.prev
= tracehead
; tracehead
= &trace
;
666 trace
.file
= LOCATE_typing
;
668 variable
[1] = param0
;
669 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("self"), TAG_Int(4)); /*new String*/
670 variable
[3] = CALL_symbol___String___to_symbol(variable
[3])(variable
[3]) /*String::to_symbol*/;
671 variable
[4] = variable
[0];
672 variable
[5] = NEW_ParamVariable_syntax_base___ParamVariable___init(variable
[3], variable
[4]); /*new ParamVariable*/
673 variable
[3] = variable
[5];
674 CALL_typing___TypingVisitor___self_var__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*TypingVisitor::self_var=*/;
675 variable
[3] = CALL_typing___TypingVisitor___self_var( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::self_var*/;
676 variable
[4] = variable
[0];
677 variable
[4] = CALL_syntax_base___PClassdef___local_class(variable
[4])(variable
[4]) /*PClassdef::local_class*/;
678 variable
[4] = CALL_static_type___MMLocalClass___get_type(variable
[4])(variable
[4]) /*MMLocalClass::get_type*/;
679 CALL_syntax_base___Variable___stype__eq(variable
[3])(variable
[3], variable
[4]) /*Variable::stype=*/;
680 CALL_SUPER_typing___PClassdef___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super PClassdef::accept_typing*/;
681 return_label19
: while(false);
682 tracehead
= trace
.prev
;
685 void typing___AAttrPropdef___accept_typing(val_t self
, val_t param0
) {
686 struct trace_t trace
= {NULL
, NULL
, 223, LOCATE_typing___AAttrPropdef___accept_typing
};
688 void **closurevariable
= NULL
;
689 trace
.prev
= tracehead
; tracehead
= &trace
;
690 trace
.file
= LOCATE_typing
;
692 variable
[1] = param0
;
693 CALL_SUPER_typing___AAttrPropdef___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super AAttrPropdef::accept_typing*/;
694 variable
[3] = variable
[0];
695 variable
[3] = CALL_parser_nodes___AAttrPropdef___n_expr(variable
[3])(variable
[3]) /*AAttrPropdef::n_expr*/;
696 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
697 if (UNTAG_Bool(variable
[3])) { /*if*/
698 variable
[3] = variable
[0];
699 variable
[3] = CALL_parser_nodes___AAttrPropdef___n_expr(variable
[3])(variable
[3]) /*AAttrPropdef::n_expr*/;
700 variable
[4] = variable
[0];
701 variable
[4] = CALL_syntax_base___AAttrPropdef___prop(variable
[4])(variable
[4]) /*AAttrPropdef::prop*/;
702 variable
[4] = CALL_static_type___MMLocalProperty___signature(variable
[4])(variable
[4]) /*MMLocalProperty::signature*/;
703 variable
[4] = CALL_static_type___MMSignature___return_type(variable
[4])(variable
[4]) /*MMSignature::return_type*/;
704 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
706 return_label20
: while(false);
707 tracehead
= trace
.prev
;
710 val_t
typing___AMethPropdef___self_var(val_t self
) {
711 struct trace_t trace
= {NULL
, NULL
, 233, LOCATE_typing___AMethPropdef___self_var
};
712 val_t
*variable
= NULL
;
713 void **closurevariable
= NULL
;
714 trace
.prev
= tracehead
; tracehead
= &trace
;
715 trace
.file
= LOCATE_typing
;
716 tracehead
= trace
.prev
;
717 return ATTR_typing___AMethPropdef____self_var( self
) /*AMethPropdef::_self_var*/;
719 void typing___AMethPropdef___accept_typing(val_t self
, val_t param0
) {
720 struct trace_t trace
= {NULL
, NULL
, 234, LOCATE_typing___AMethPropdef___accept_typing
};
722 void **closurevariable
= NULL
;
723 trace
.prev
= tracehead
; tracehead
= &trace
;
724 trace
.file
= LOCATE_typing
;
726 variable
[1] = param0
;
727 variable
[3] = NEW_VariableContext_typing___VariableContext___init(); /*new VariableContext*/
728 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*TypingVisitor::variable_ctx=*/;
729 variable
[3] = variable
[0];
730 variable
[4] = CALL_typing___TypingVisitor___self_var( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::self_var*/;
731 ATTR_typing___AMethPropdef____self_var(variable
[3]) /*AMethPropdef::_self_var*/ = variable
[4];
732 CALL_SUPER_typing___AMethPropdef___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super AMethPropdef::accept_typing*/;
733 return_label21
: while(false);
734 tracehead
= trace
.prev
;
737 void typing___AConcreteInitPropdef___accept_typing(val_t self
, val_t param0
) {
738 struct trace_t trace
= {NULL
, NULL
, 245, LOCATE_typing___AConcreteInitPropdef___accept_typing
};
740 void **closurevariable
= NULL
;
741 trace
.prev
= tracehead
; tracehead
= &trace
;
742 trace
.file
= LOCATE_typing
;
744 variable
[1] = param0
;
745 variable
[3] = variable
[0];
746 variable
[3] = CALL_parser_nodes___AConcreteMethPropdef___n_block(variable
[3])(variable
[3]) /*AConcreteMethPropdef::n_block*/;
747 CALL_typing___TypingVisitor___top_block__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*TypingVisitor::top_block=*/;
748 variable
[3] = variable
[0];
749 variable
[3] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls(variable
[3])(variable
[3]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
750 CALL_typing___TypingVisitor___explicit_super_init_calls__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*TypingVisitor::explicit_super_init_calls=*/;
751 CALL_typing___TypingVisitor___explicit_other_init_call__eq( variable
[1] /*v*/)( variable
[1] /*v*/, TAG_Bool(false)) /*TypingVisitor::explicit_other_init_call=*/;
752 CALL_SUPER_typing___AConcreteInitPropdef___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super AConcreteInitPropdef::accept_typing*/;
753 variable
[3] = CALL_typing___TypingVisitor___explicit_other_init_call( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::explicit_other_init_call*/;
754 variable
[4] = variable
[3];
755 if (!UNTAG_Bool(variable
[4])) { /* or */
756 variable
[4] = variable
[0];
757 variable
[4] = CALL_syntax_base___AMethPropdef___method(variable
[4])(variable
[4]) /*AMethPropdef::method*/;
758 variable
[4] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[4])(variable
[4]) /*MMLocalProperty::global*/;
759 variable
[4] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[4])(variable
[4]) /*MMGlobalProperty::intro*/;
760 variable
[5] = variable
[0];
761 variable
[5] = CALL_syntax_base___AMethPropdef___method(variable
[5])(variable
[5]) /*AMethPropdef::method*/;
762 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == variable
[5]) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4],variable
[5])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], variable
[5]) /*Object::==*/)))))));
764 variable
[3] = variable
[4];
765 if (UNTAG_Bool(variable
[3])) { /*if*/
767 variable
[3] = TAG_Int(0);
768 variable
[5] = variable
[0];
769 variable
[5] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls(variable
[5])(variable
[5]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
770 variable
[5] = CALL_abstract_collection___Collection___length(variable
[5])(variable
[5]) /*AbstractArray::length*/;
771 variable
[4] = variable
[5];
772 variable
[5] = NIT_NULL
/*null*/;
773 variable
[6] = NIT_NULL
/*null*/;
774 variable
[7] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)<UNTAG_Int( variable
[4] /*l*/));
775 if (UNTAG_Bool(variable
[7])) { /*if*/
776 variable
[7] = variable
[0];
777 variable
[7] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls(variable
[7])(variable
[7]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
778 variable
[8] = variable
[7];
779 variable
[9] = variable
[3] /*i*/;
780 variable
[11] = TAG_Bool(UNTAG_Int( variable
[9] /*index*/)>=UNTAG_Int( TAG_Int(0)));
781 variable
[12] = variable
[11];
782 if (UNTAG_Bool(variable
[12])) { /* and */
783 variable
[12] = variable
[8];
784 variable
[12] = ATTR_array___AbstractArray____length(variable
[12]) /*AbstractArray::_length*/;
785 variable
[12] = TAG_Bool(UNTAG_Int( variable
[9] /*index*/)<UNTAG_Int(variable
[12]));
787 variable
[11] = variable
[12];
788 if (!UNTAG_Bool(variable
[11])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_typing
, 229); nit_exit(1);}
789 variable
[11] = variable
[8];
790 variable
[11] = ATTR_array___Array____items(variable
[11]) /*Array::_items*/;
791 variable
[11] = UNBOX_NativeArray(variable
[11])[UNTAG_Int( variable
[9] /*index*/)];
792 variable
[10] = variable
[11];
794 return_label23
: while(false);
795 variable
[7] = variable
[10];
796 variable
[5] = variable
[7] /*cur_m=*/;
797 variable
[7] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[5] /*cur_m*/)( variable
[5] /*cur_m*/) /*MMLocalProperty::global*/;
798 variable
[7] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[7])(variable
[7]) /*MMGlobalProperty::intro*/;
799 variable
[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[7])(variable
[7]) /*MMLocalProperty::local_class*/;
800 variable
[8] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
801 variable
[7] = CALL_abstractmetamodel___MMLocalClass___for_module(variable
[7])(variable
[7], variable
[8]) /*MMLocalClass::for_module*/;
802 variable
[6] = variable
[7] /*cur_c=*/;
804 variable
[7] = TAG_Int(0);
805 while (true) { /*while*/
806 variable
[8] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
807 variable
[8] = CALL_abstractmetamodel___MMLocalClass___cshe(variable
[8])(variable
[8]) /*MMLocalClass::cshe*/;
808 variable
[8] = CALL_partial_order___PartialOrderElement___direct_greaters(variable
[8])(variable
[8]) /*PartialOrderElement::direct_greaters*/;
809 variable
[8] = CALL_abstract_collection___Collection___length(variable
[8])(variable
[8]) /*AbstractArray::length*/;
810 variable
[8] = TAG_Bool(UNTAG_Int( variable
[7] /*j*/)<UNTAG_Int(variable
[8]));
811 if (!UNTAG_Bool(variable
[8])) break; /* while*/
812 variable
[9] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
813 variable
[9] = CALL_abstractmetamodel___MMLocalClass___cshe(variable
[9])(variable
[9]) /*MMLocalClass::cshe*/;
814 variable
[9] = CALL_partial_order___PartialOrderElement___direct_greaters(variable
[9])(variable
[9]) /*PartialOrderElement::direct_greaters*/;
815 variable
[10] = variable
[9];
816 variable
[11] = variable
[7] /*j*/;
817 variable
[13] = TAG_Bool(UNTAG_Int( variable
[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
818 variable
[14] = variable
[13];
819 if (UNTAG_Bool(variable
[14])) { /* and */
820 variable
[14] = variable
[10];
821 variable
[14] = ATTR_array___AbstractArray____length(variable
[14]) /*AbstractArray::_length*/;
822 variable
[14] = TAG_Bool(UNTAG_Int( variable
[11] /*index*/)<UNTAG_Int(variable
[14]));
824 variable
[13] = variable
[14];
825 if (!UNTAG_Bool(variable
[13])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_typing
, 229); nit_exit(1);}
826 variable
[13] = variable
[10];
827 variable
[13] = ATTR_array___Array____items(variable
[13]) /*Array::_items*/;
828 variable
[13] = UNBOX_NativeArray(variable
[13])[UNTAG_Int( variable
[11] /*index*/)];
829 variable
[12] = variable
[13];
831 return_label25
: while(false);
832 variable
[9] = variable
[12];
833 variable
[8] = variable
[9];
834 variable
[9] = CALL_abstractmetamodel___MMLocalClass___global( variable
[8] /*c*/)( variable
[8] /*c*/) /*MMLocalClass::global*/;
835 variable
[9] = CALL_abstractmetamodel___MMGlobalClass___is_interface(variable
[9])(variable
[9]) /*MMGlobalClass::is_interface*/;
836 variable
[10] = variable
[9];
837 if (!UNTAG_Bool(variable
[10])) { /* or */
838 variable
[10] = CALL_abstractmetamodel___MMLocalClass___global( variable
[8] /*c*/)( variable
[8] /*c*/) /*MMLocalClass::global*/;
839 variable
[10] = CALL_abstractmetamodel___MMGlobalClass___is_universal(variable
[10])(variable
[10]) /*MMGlobalClass::is_universal*/;
841 variable
[9] = variable
[10];
842 variable
[10] = variable
[9];
843 if (!UNTAG_Bool(variable
[10])) { /* or */
844 variable
[10] = CALL_abstractmetamodel___MMLocalClass___global( variable
[8] /*c*/)( variable
[8] /*c*/) /*MMLocalClass::global*/;
845 variable
[10] = CALL_abstractmetamodel___MMGlobalClass___is_mixin(variable
[10])(variable
[10]) /*MMGlobalClass::is_mixin*/;
847 variable
[9] = variable
[10];
848 if (UNTAG_Bool(variable
[9])) { /*if*/
849 variable
[7] = TAG_Int(UNTAG_Int(variable
[7])+UNTAG_Int( TAG_Int(1))) /*j*/;
851 variable
[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[6] /*cur_c*/ == NIT_NULL
/*null*/) || (( variable
[6] /*cur_c*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[6] /*cur_c*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[6] /*cur_c*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[6] /*cur_c*/)( variable
[6] /*cur_c*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
852 variable
[10] = variable
[9];
853 if (UNTAG_Bool(variable
[10])) { /* and */
854 variable
[10] = CALL_abstractmetamodel___MMLocalClass___cshe( variable
[8] /*c*/)( variable
[8] /*c*/) /*MMLocalClass::cshe*/;
855 variable
[10] = CALL_partial_order___PartialOrderElement_____leq(variable
[10])(variable
[10], variable
[6] /*cur_c*/) /*PartialOrderElement::<=*/;
856 variable
[11] = variable
[10];
857 if (!UNTAG_Bool(variable
[11])) { /* or */
858 variable
[11] = CALL_abstractmetamodel___MMLocalClass___global( variable
[6] /*cur_c*/)( variable
[6] /*cur_c*/) /*MMLocalClass::global*/;
859 variable
[11] = CALL_abstractmetamodel___MMGlobalClass___is_mixin(variable
[11])(variable
[11]) /*MMGlobalClass::is_mixin*/;
861 variable
[10] = variable
[11];
863 variable
[9] = variable
[10];
864 if (UNTAG_Bool(variable
[9])) { /*if*/
865 variable
[9] = TAG_Bool(( variable
[8] /*c*/ == variable
[6] /*cur_c*/) || (( variable
[8] /*c*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[8] /*c*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[8] /*c*/, variable
[6] /*cur_c*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[8] /*c*/)( variable
[8] /*c*/, variable
[6] /*cur_c*/) /*Object::==*/)))));
866 if (UNTAG_Bool(variable
[9])) { /*if*/
867 variable
[7] = TAG_Int(UNTAG_Int(variable
[7])+UNTAG_Int( TAG_Int(1))) /*j*/;
869 variable
[9] = variable
[0];
870 variable
[9] = CALL_typing___AConcreteInitPropdef___super_init_calls(variable
[9])(variable
[9]) /*AConcreteInitPropdef::super_init_calls*/;
871 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[5] /*cur_m*/) /*AbstractArray::add*/;
872 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])+UNTAG_Int( TAG_Int(1))) /*i*/;
873 variable
[9] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)<UNTAG_Int( variable
[4] /*l*/));
874 if (UNTAG_Bool(variable
[9])) { /*if*/
875 variable
[9] = variable
[0];
876 variable
[9] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls(variable
[9])(variable
[9]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
877 variable
[10] = variable
[9];
878 variable
[11] = variable
[3] /*i*/;
879 variable
[13] = TAG_Bool(UNTAG_Int( variable
[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
880 variable
[14] = variable
[13];
881 if (UNTAG_Bool(variable
[14])) { /* and */
882 variable
[14] = variable
[10];
883 variable
[14] = ATTR_array___AbstractArray____length(variable
[14]) /*AbstractArray::_length*/;
884 variable
[14] = TAG_Bool(UNTAG_Int( variable
[11] /*index*/)<UNTAG_Int(variable
[14]));
886 variable
[13] = variable
[14];
887 if (!UNTAG_Bool(variable
[13])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_typing
, 229); nit_exit(1);}
888 variable
[13] = variable
[10];
889 variable
[13] = ATTR_array___Array____items(variable
[13]) /*Array::_items*/;
890 variable
[13] = UNBOX_NativeArray(variable
[13])[UNTAG_Int( variable
[11] /*index*/)];
891 variable
[12] = variable
[13];
893 return_label26
: while(false);
894 variable
[9] = variable
[12];
895 variable
[5] = variable
[9] /*cur_m=*/;
896 variable
[9] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[5] /*cur_m*/)( variable
[5] /*cur_m*/) /*MMLocalProperty::global*/;
897 variable
[9] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[9])(variable
[9]) /*MMGlobalProperty::intro*/;
898 variable
[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[9])(variable
[9]) /*MMLocalProperty::local_class*/;
899 variable
[10] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
900 variable
[9] = CALL_abstractmetamodel___MMLocalClass___for_module(variable
[9])(variable
[9], variable
[10]) /*MMLocalClass::for_module*/;
901 variable
[6] = variable
[9] /*cur_c=*/;
903 variable
[5] = NIT_NULL
/*null*/ /*cur_m=*/;
904 variable
[6] = NIT_NULL
/*null*/ /*cur_c=*/;
907 variable
[10] = variable
[0];
908 variable
[11] = variable
[0];
909 variable
[11] = CALL_syntax_base___AMethPropdef___method(variable
[11])(variable
[11]) /*AMethPropdef::method*/;
910 variable
[10] = CALL_typing___TypingVisitor___get_default_constructor_for( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[10], variable
[8] /*c*/, variable
[11]) /*TypingVisitor::get_default_constructor_for*/;
911 variable
[9] = variable
[10];
912 variable
[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[9] /*p*/ == NIT_NULL
/*null*/) || (( variable
[9] /*p*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[9] /*p*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[9] /*p*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[9] /*p*/)( variable
[9] /*p*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
913 if (UNTAG_Bool(variable
[10])) { /*if*/
914 variable
[10] = variable
[0];
915 variable
[10] = CALL_typing___AConcreteInitPropdef___super_init_calls(variable
[10])(variable
[10]) /*AConcreteInitPropdef::super_init_calls*/;
916 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[9] /*p*/) /*AbstractArray::add*/;
918 variable
[7] = TAG_Int(UNTAG_Int(variable
[7])+UNTAG_Int( TAG_Int(1))) /*j*/;
921 continue_24
: while(0);
925 return_label22
: while(false);
926 tracehead
= trace
.prev
;
929 val_t
typing___AConcreteInitPropdef___super_init_calls(val_t self
) {
930 struct trace_t trace
= {NULL
, NULL
, 243, LOCATE_typing___AConcreteInitPropdef___super_init_calls
};
931 val_t
*variable
= NULL
;
932 void **closurevariable
= NULL
;
933 trace
.prev
= tracehead
; tracehead
= &trace
;
934 trace
.file
= LOCATE_typing
;
935 tracehead
= trace
.prev
;
936 return ATTR_typing___AConcreteInitPropdef____super_init_calls( self
) /*AConcreteInitPropdef::_super_init_calls*/;
938 val_t
typing___AConcreteInitPropdef___explicit_super_init_calls(val_t self
) {
939 struct trace_t trace
= {NULL
, NULL
, 244, LOCATE_typing___AConcreteInitPropdef___explicit_super_init_calls
};
940 val_t
*variable
= NULL
;
941 void **closurevariable
= NULL
;
942 trace
.prev
= tracehead
; tracehead
= &trace
;
943 trace
.file
= LOCATE_typing
;
944 tracehead
= trace
.prev
;
945 return ATTR_typing___AConcreteInitPropdef____explicit_super_init_calls( self
) /*AConcreteInitPropdef::_explicit_super_init_calls*/;
947 void typing___PParam___after_typing(val_t self
, val_t param0
) {
948 struct trace_t trace
= {NULL
, NULL
, 291, LOCATE_typing___PParam___after_typing
};
950 void **closurevariable
= NULL
;
951 trace
.prev
= tracehead
; tracehead
= &trace
;
952 trace
.file
= LOCATE_typing
;
954 variable
[1] = param0
;
955 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
956 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
957 if (UNTAG_Bool(variable
[3])) { /*if*/
958 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
959 variable
[4] = variable
[0];
960 variable
[4] = CALL_syntax_base___PParam___variable(variable
[4])(variable
[4]) /*PParam::variable*/;
961 CALL_typing___VariableContext___add(variable
[3])(variable
[3], variable
[4]) /*VariableContext::add*/;
963 return_label27
: while(false);
964 tracehead
= trace
.prev
;
967 void typing___AClosureDecl___accept_typing(val_t self
, val_t param0
) {
968 struct trace_t trace
= {NULL
, NULL
, 301, LOCATE_typing___AClosureDecl___accept_typing
};
970 void **closurevariable
= NULL
;
971 trace
.prev
= tracehead
; tracehead
= &trace
;
972 trace
.file
= LOCATE_typing
;
974 variable
[1] = param0
;
975 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
976 variable
[4] = variable
[0];
977 variable
[4] = CALL_syntax_base___PClosureDecl___variable(variable
[4])(variable
[4]) /*PClosureDecl::variable*/;
978 CALL_typing___VariableContext___add(variable
[3])(variable
[3], variable
[4]) /*VariableContext::add*/;
979 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
980 variable
[3] = variable
[4];
981 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
982 variable
[4] = CALL_typing___VariableContext___sub(variable
[4])(variable
[4]) /*VariableContext::sub*/;
983 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::variable_ctx=*/;
984 variable
[4] = variable
[0];
985 variable
[4] = CALL_syntax_base___PClosureDecl___variable(variable
[4])(variable
[4]) /*PClosureDecl::variable*/;
986 variable
[4] = CALL_syntax_base___ClosureVariable___closure(variable
[4])(variable
[4]) /*ClosureVariable::closure*/;
987 CALL_typing___TypingVisitor___closure__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::closure=*/;
988 CALL_SUPER_typing___AClosureDecl___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super AClosureDecl::accept_typing*/;
989 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
990 CALL_typing___TypingVisitor___closure__eq( variable
[1] /*v*/)( variable
[1] /*v*/, NIT_NULL
/*null*/) /*TypingVisitor::closure=*/;
991 return_label28
: while(false);
992 tracehead
= trace
.prev
;
995 void typing___PType___after_typing(val_t self
, val_t param0
) {
996 struct trace_t trace
= {NULL
, NULL
, 319, LOCATE_typing___PType___after_typing
};
998 void **closurevariable
= NULL
;
999 trace
.prev
= tracehead
; tracehead
= &trace
;
1000 trace
.file
= LOCATE_typing
;
1002 variable
[1] = param0
;
1003 variable
[3] = variable
[0];
1004 variable
[4] = variable
[0];
1005 variable
[4] = CALL_syntax_base___PType___get_stype(variable
[4])(variable
[4], variable
[1] /*v*/) /*PType::get_stype*/;
1006 ATTR_typing___PType____stype(variable
[3]) /*PType::_stype*/ = variable
[4];
1007 return_label29
: while(false);
1008 tracehead
= trace
.prev
;
1011 val_t
typing___PType___stype(val_t self
) {
1012 struct trace_t trace
= {NULL
, NULL
, 318, LOCATE_typing___PType___stype
};
1013 val_t
*variable
= NULL
;
1014 void **closurevariable
= NULL
;
1015 trace
.prev
= tracehead
; tracehead
= &trace
;
1016 trace
.file
= LOCATE_typing
;
1017 tracehead
= trace
.prev
;
1018 return ATTR_typing___PType____stype( self
) /*PType::_stype*/;
1020 val_t
typing___PExpr___stype(val_t self
) {
1021 struct trace_t trace
= {NULL
, NULL
, 326, LOCATE_typing___PExpr___stype
};
1022 val_t
*variable
= NULL
;
1023 void **closurevariable
= NULL
;
1024 trace
.prev
= tracehead
; tracehead
= &trace
;
1025 trace
.file
= LOCATE_typing
;
1026 tracehead
= trace
.prev
;
1027 return ATTR_typing___PExpr____stype( self
) /*PExpr::_stype*/;
1029 val_t
typing___PExpr___is_implicit_self(val_t self
) {
1030 struct trace_t trace
= {NULL
, NULL
, 328, LOCATE_typing___PExpr___is_implicit_self
};
1032 void **closurevariable
= NULL
;
1033 trace
.prev
= tracehead
; tracehead
= &trace
;
1034 trace
.file
= LOCATE_typing
;
1036 variable
[1] = TAG_Bool(false);
1037 goto return_label30
;
1038 return_label30
: while(false);
1039 tracehead
= trace
.prev
;
1042 val_t
typing___PExpr___is_self(val_t self
) {
1043 struct trace_t trace
= {NULL
, NULL
, 331, LOCATE_typing___PExpr___is_self
};
1045 void **closurevariable
= NULL
;
1046 trace
.prev
= tracehead
; tracehead
= &trace
;
1047 trace
.file
= LOCATE_typing
;
1049 variable
[1] = TAG_Bool(false);
1050 goto return_label31
;
1051 return_label31
: while(false);
1052 tracehead
= trace
.prev
;
1055 val_t
typing___PExpr___its_variable(val_t self
) {
1056 struct trace_t trace
= {NULL
, NULL
, 334, LOCATE_typing___PExpr___its_variable
};
1058 void **closurevariable
= NULL
;
1059 trace
.prev
= tracehead
; tracehead
= &trace
;
1060 trace
.file
= LOCATE_typing
;
1062 variable
[1] = NIT_NULL
/*null*/;
1063 goto return_label32
;
1064 return_label32
: while(false);
1065 tracehead
= trace
.prev
;
1068 val_t
typing___PExpr___if_true_variable_ctx(val_t self
) {
1069 struct trace_t trace
= {NULL
, NULL
, 337, LOCATE_typing___PExpr___if_true_variable_ctx
};
1070 val_t
*variable
= NULL
;
1071 void **closurevariable
= NULL
;
1072 trace
.prev
= tracehead
; tracehead
= &trace
;
1073 trace
.file
= LOCATE_typing
;
1074 tracehead
= trace
.prev
;
1075 return ATTR_typing___PExpr____if_true_variable_ctx( self
) /*PExpr::_if_true_variable_ctx*/;
1077 void typing___AVardeclExpr___after_typing(val_t self
, val_t param0
) {
1078 struct trace_t trace
= {NULL
, NULL
, 342, LOCATE_typing___AVardeclExpr___after_typing
};
1080 void **closurevariable
= NULL
;
1081 trace
.prev
= tracehead
; tracehead
= &trace
;
1082 trace
.file
= LOCATE_typing
;
1084 variable
[1] = param0
;
1085 variable
[4] = variable
[0];
1086 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_id(variable
[4])(variable
[4]) /*AVardeclExpr::n_id*/;
1087 variable
[4] = CALL_syntax_base___Token___to_symbol(variable
[4])(variable
[4]) /*Token::to_symbol*/;
1088 variable
[5] = variable
[0];
1089 variable
[6] = NEW_VarVariable_syntax_base___VarVariable___init(variable
[4], variable
[5]); /*new VarVariable*/
1090 variable
[4] = variable
[6];
1091 variable
[3] = variable
[4];
1092 variable
[4] = variable
[0];
1093 CALL_syntax_base___AVardeclExpr___variable__eq(variable
[4])(variable
[4], variable
[3] /*va*/) /*AVardeclExpr::variable=*/;
1094 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1095 CALL_typing___VariableContext___add(variable
[4])(variable
[4], variable
[3] /*va*/) /*VariableContext::add*/;
1096 variable
[4] = variable
[0];
1097 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_type(variable
[4])(variable
[4]) /*AVardeclExpr::n_type*/;
1098 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1099 if (UNTAG_Bool(variable
[4])) { /*if*/
1100 variable
[4] = variable
[0];
1101 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_type(variable
[4])(variable
[4]) /*AVardeclExpr::n_type*/;
1102 variable
[4] = CALL_typing___PType___stype(variable
[4])(variable
[4]) /*PType::stype*/;
1103 CALL_syntax_base___Variable___stype__eq( variable
[3] /*va*/)( variable
[3] /*va*/, variable
[4]) /*Variable::stype=*/;
1104 variable
[4] = variable
[0];
1105 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable
[4])(variable
[4]) /*AVardeclExpr::n_expr*/;
1106 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1107 if (UNTAG_Bool(variable
[4])) { /*if*/
1108 variable
[4] = variable
[0];
1109 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable
[4])(variable
[4]) /*AVardeclExpr::n_expr*/;
1110 variable
[5] = CALL_syntax_base___Variable___stype( variable
[3] /*va*/)( variable
[3] /*va*/) /*Variable::stype*/;
1111 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
1114 variable
[4] = variable
[0];
1115 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable
[4])(variable
[4]) /*AVardeclExpr::n_expr*/;
1116 CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*AbsSyntaxVisitor::check_expr*/;
1117 variable
[4] = variable
[0];
1118 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable
[4])(variable
[4]) /*AVardeclExpr::n_expr*/;
1119 variable
[4] = CALL_syntax_base___PExpr___stype(variable
[4])(variable
[4]) /*PExpr::stype*/;
1120 CALL_syntax_base___Variable___stype__eq( variable
[3] /*va*/)( variable
[3] /*va*/, variable
[4]) /*Variable::stype=*/;
1122 return_label33
: while(false);
1123 tracehead
= trace
.prev
;
1126 void typing___ABlockExpr___accept_typing(val_t self
, val_t param0
) {
1127 struct trace_t trace
= {NULL
, NULL
, 361, LOCATE_typing___ABlockExpr___accept_typing
};
1129 void **closurevariable
= NULL
;
1130 trace
.prev
= tracehead
; tracehead
= &trace
;
1131 trace
.file
= LOCATE_typing
;
1133 variable
[1] = param0
;
1134 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1135 variable
[3] = variable
[4];
1136 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1137 variable
[4] = CALL_typing___VariableContext___sub(variable
[4])(variable
[4]) /*VariableContext::sub*/;
1138 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::variable_ctx=*/;
1139 CALL_SUPER_typing___ABlockExpr___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super ABlockExpr::accept_typing*/;
1140 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
1141 return_label34
: while(false);
1142 tracehead
= trace
.prev
;
1145 void typing___AReturnExpr___after_typing(val_t self
, val_t param0
) {
1146 struct trace_t trace
= {NULL
, NULL
, 373, LOCATE_typing___AReturnExpr___after_typing
};
1148 void **closurevariable
= NULL
;
1149 trace
.prev
= tracehead
; tracehead
= &trace
;
1150 trace
.file
= LOCATE_typing
;
1152 variable
[1] = param0
;
1153 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
1154 variable
[4] = CALL_static_type___MMLocalProperty___signature(variable
[4])(variable
[4]) /*MMLocalProperty::signature*/;
1155 variable
[4] = CALL_static_type___MMSignature___return_type(variable
[4])(variable
[4]) /*MMSignature::return_type*/;
1156 variable
[3] = variable
[4];
1157 variable
[4] = variable
[0];
1158 variable
[4] = CALL_parser_nodes___AReturnExpr___n_expr(variable
[4])(variable
[4]) /*AReturnExpr::n_expr*/;
1159 variable
[4] = TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))));
1160 variable
[5] = variable
[4];
1161 if (UNTAG_Bool(variable
[5])) { /* and */
1162 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*t*/ == NIT_NULL
/*null*/) || (( variable
[3] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*t*/)( variable
[3] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1164 variable
[4] = variable
[5];
1165 if (UNTAG_Bool(variable
[4])) { /*if*/
1166 variable
[4] = variable
[0];
1167 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: Return without value in a function."), TAG_Int(42)); /*new String*/
1168 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
1170 variable
[4] = variable
[0];
1171 variable
[4] = CALL_parser_nodes___AReturnExpr___n_expr(variable
[4])(variable
[4]) /*AReturnExpr::n_expr*/;
1172 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1173 variable
[5] = variable
[4];
1174 if (UNTAG_Bool(variable
[5])) { /* and */
1175 variable
[5] = TAG_Bool(( variable
[3] /*t*/ == NIT_NULL
/*null*/) || (( variable
[3] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*t*/)( variable
[3] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))));
1177 variable
[4] = variable
[5];
1178 if (UNTAG_Bool(variable
[4])) { /*if*/
1179 variable
[4] = variable
[0];
1180 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: Return with value in a procedure."), TAG_Int(40)); /*new String*/
1181 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
1183 variable
[4] = variable
[0];
1184 variable
[4] = CALL_parser_nodes___AReturnExpr___n_expr(variable
[4])(variable
[4]) /*AReturnExpr::n_expr*/;
1185 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1186 variable
[5] = variable
[4];
1187 if (UNTAG_Bool(variable
[5])) { /* and */
1188 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*t*/ == NIT_NULL
/*null*/) || (( variable
[3] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*t*/)( variable
[3] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1190 variable
[4] = variable
[5];
1191 if (UNTAG_Bool(variable
[4])) { /*if*/
1192 variable
[4] = variable
[0];
1193 variable
[4] = CALL_parser_nodes___AReturnExpr___n_expr(variable
[4])(variable
[4]) /*AReturnExpr::n_expr*/;
1194 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[3] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
1198 return_label35
: while(false);
1199 tracehead
= trace
.prev
;
1202 void typing___AContinueExpr___after_typing(val_t self
, val_t param0
) {
1203 struct trace_t trace
= {NULL
, NULL
, 387, LOCATE_typing___AContinueExpr___after_typing
};
1205 void **closurevariable
= NULL
;
1206 trace
.prev
= tracehead
; tracehead
= &trace
;
1207 trace
.file
= LOCATE_typing
;
1209 variable
[1] = param0
;
1210 variable
[4] = CALL_typing___TypingVisitor___closure( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::closure*/;
1211 variable
[3] = variable
[4];
1212 variable
[4] = NIT_NULL
/*null*/;
1213 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*c*/ == NIT_NULL
/*null*/) || (( variable
[3] /*c*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*c*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*c*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*c*/)( variable
[3] /*c*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1214 if (UNTAG_Bool(variable
[5])) { /*if*/
1215 variable
[5] = CALL_static_type___MMClosure___is_break( variable
[3] /*c*/)( variable
[3] /*c*/) /*MMClosure::is_break*/;
1216 if (UNTAG_Bool(variable
[5])) { /*if*/
1217 variable
[5] = variable
[0];
1218 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: 'continue' forbiden in break blocks."), TAG_Int(43)); /*new String*/
1219 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[6]) /*AbsSyntaxVisitor::error*/;
1220 goto return_label36
;
1222 variable
[5] = CALL_static_type___MMClosure___signature( variable
[3] /*c*/)( variable
[3] /*c*/) /*MMClosure::signature*/;
1223 variable
[5] = CALL_static_type___MMSignature___return_type(variable
[5])(variable
[5]) /*MMSignature::return_type*/;
1224 variable
[4] = variable
[5] /*t=*/;
1226 variable
[5] = variable
[0];
1227 variable
[5] = CALL_parser_nodes___AContinueExpr___n_expr(variable
[5])(variable
[5]) /*AContinueExpr::n_expr*/;
1228 variable
[5] = TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))));
1229 variable
[6] = variable
[5];
1230 if (UNTAG_Bool(variable
[6])) { /* and */
1231 variable
[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*t*/ == NIT_NULL
/*null*/) || (( variable
[4] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*t*/)( variable
[4] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1233 variable
[5] = variable
[6];
1234 if (UNTAG_Bool(variable
[5])) { /*if*/
1235 variable
[5] = variable
[0];
1236 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: continue with a value required in this bloc."), TAG_Int(51)); /*new String*/
1237 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[6]) /*AbsSyntaxVisitor::error*/;
1239 variable
[5] = variable
[0];
1240 variable
[5] = CALL_parser_nodes___AContinueExpr___n_expr(variable
[5])(variable
[5]) /*AContinueExpr::n_expr*/;
1241 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))))));
1242 variable
[6] = variable
[5];
1243 if (UNTAG_Bool(variable
[6])) { /* and */
1244 variable
[6] = TAG_Bool(( variable
[4] /*t*/ == NIT_NULL
/*null*/) || (( variable
[4] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*t*/)( variable
[4] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))));
1246 variable
[5] = variable
[6];
1247 if (UNTAG_Bool(variable
[5])) { /*if*/
1248 variable
[5] = variable
[0];
1249 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: continue without value required in this bloc."), TAG_Int(52)); /*new String*/
1250 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[6]) /*AbsSyntaxVisitor::error*/;
1252 variable
[5] = variable
[0];
1253 variable
[5] = CALL_parser_nodes___AContinueExpr___n_expr(variable
[5])(variable
[5]) /*AContinueExpr::n_expr*/;
1254 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))))));
1255 variable
[6] = variable
[5];
1256 if (UNTAG_Bool(variable
[6])) { /* and */
1257 variable
[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*t*/ == NIT_NULL
/*null*/) || (( variable
[4] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*t*/)( variable
[4] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1259 variable
[5] = variable
[6];
1260 if (UNTAG_Bool(variable
[5])) { /*if*/
1261 variable
[5] = variable
[0];
1262 variable
[5] = CALL_parser_nodes___AContinueExpr___n_expr(variable
[5])(variable
[5]) /*AContinueExpr::n_expr*/;
1263 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[4] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
1267 return_label36
: while(false);
1268 tracehead
= trace
.prev
;
1271 void typing___ABreakExpr___after_typing(val_t self
, val_t param0
) {
1272 struct trace_t trace
= {NULL
, NULL
, 410, LOCATE_typing___ABreakExpr___after_typing
};
1274 void **closurevariable
= NULL
;
1275 trace
.prev
= tracehead
; tracehead
= &trace
;
1276 trace
.file
= LOCATE_typing
;
1278 variable
[1] = param0
;
1279 variable
[4] = CALL_typing___TypingVisitor___closure_break_stype( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::closure_break_stype*/;
1280 variable
[3] = variable
[4];
1281 variable
[4] = variable
[0];
1282 variable
[4] = CALL_parser_nodes___ABreakExpr___n_expr(variable
[4])(variable
[4]) /*ABreakExpr::n_expr*/;
1283 variable
[4] = TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))));
1284 variable
[5] = variable
[4];
1285 if (UNTAG_Bool(variable
[5])) { /* and */
1286 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*t*/ == NIT_NULL
/*null*/) || (( variable
[3] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*t*/)( variable
[3] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1288 variable
[4] = variable
[5];
1289 if (UNTAG_Bool(variable
[4])) { /*if*/
1290 variable
[4] = variable
[0];
1291 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: break with a value required in this bloc."), TAG_Int(48)); /*new String*/
1292 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
1294 variable
[4] = variable
[0];
1295 variable
[4] = CALL_parser_nodes___ABreakExpr___n_expr(variable
[4])(variable
[4]) /*ABreakExpr::n_expr*/;
1296 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1297 variable
[5] = variable
[4];
1298 if (UNTAG_Bool(variable
[5])) { /* and */
1299 variable
[5] = TAG_Bool(( variable
[3] /*t*/ == NIT_NULL
/*null*/) || (( variable
[3] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*t*/)( variable
[3] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))));
1301 variable
[4] = variable
[5];
1302 if (UNTAG_Bool(variable
[4])) { /*if*/
1303 variable
[4] = variable
[0];
1304 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: break without value required in this bloc."), TAG_Int(49)); /*new String*/
1305 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
1307 variable
[4] = variable
[0];
1308 variable
[4] = CALL_parser_nodes___ABreakExpr___n_expr(variable
[4])(variable
[4]) /*ABreakExpr::n_expr*/;
1309 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1310 variable
[5] = variable
[4];
1311 if (UNTAG_Bool(variable
[5])) { /* and */
1312 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*t*/ == NIT_NULL
/*null*/) || (( variable
[3] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*t*/)( variable
[3] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1314 variable
[4] = variable
[5];
1315 if (UNTAG_Bool(variable
[4])) { /*if*/
1316 variable
[4] = CALL_typing___TypingVisitor___break_list( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::break_list*/;
1317 variable
[5] = variable
[0];
1318 variable
[5] = CALL_parser_nodes___ABreakExpr___n_expr(variable
[5])(variable
[5]) /*ABreakExpr::n_expr*/;
1319 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
1323 return_label37
: while(false);
1324 tracehead
= trace
.prev
;
1327 void typing___AIfExpr___accept_typing(val_t self
, val_t param0
) {
1328 struct trace_t trace
= {NULL
, NULL
, 425, LOCATE_typing___AIfExpr___accept_typing
};
1330 void **closurevariable
= NULL
;
1331 trace
.prev
= tracehead
; tracehead
= &trace
;
1332 trace
.file
= LOCATE_typing
;
1334 variable
[1] = param0
;
1335 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1336 variable
[3] = variable
[4];
1337 variable
[4] = variable
[0];
1338 variable
[4] = CALL_parser_nodes___AIfExpr___n_expr(variable
[4])(variable
[4]) /*AIfExpr::n_expr*/;
1339 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
1340 variable
[4] = variable
[0];
1341 variable
[4] = CALL_parser_nodes___AIfExpr___n_expr(variable
[4])(variable
[4]) /*AIfExpr::n_expr*/;
1342 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1343 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
1344 variable
[4] = variable
[0];
1345 variable
[4] = CALL_parser_nodes___AIfExpr___n_expr(variable
[4])(variable
[4]) /*AIfExpr::n_expr*/;
1346 variable
[4] = CALL_typing___PExpr___if_true_variable_ctx(variable
[4])(variable
[4]) /*PExpr::if_true_variable_ctx*/;
1347 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1348 if (UNTAG_Bool(variable
[4])) { /*if*/
1349 variable
[4] = variable
[0];
1350 variable
[4] = CALL_parser_nodes___AIfExpr___n_expr(variable
[4])(variable
[4]) /*AIfExpr::n_expr*/;
1351 variable
[4] = CALL_typing___PExpr___if_true_variable_ctx(variable
[4])(variable
[4]) /*PExpr::if_true_variable_ctx*/;
1352 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::variable_ctx=*/;
1354 variable
[4] = variable
[0];
1355 variable
[4] = CALL_parser_nodes___AIfExpr___n_then(variable
[4])(variable
[4]) /*AIfExpr::n_then*/;
1356 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
1357 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
1358 variable
[4] = variable
[0];
1359 variable
[4] = CALL_parser_nodes___AIfExpr___n_else(variable
[4])(variable
[4]) /*AIfExpr::n_else*/;
1360 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1361 if (UNTAG_Bool(variable
[4])) { /*if*/
1362 variable
[4] = variable
[0];
1363 variable
[4] = CALL_parser_nodes___AIfExpr___n_else(variable
[4])(variable
[4]) /*AIfExpr::n_else*/;
1364 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
1365 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
1367 return_label38
: while(false);
1368 tracehead
= trace
.prev
;
1371 void typing___AWhileExpr___after_typing(val_t self
, val_t param0
) {
1372 struct trace_t trace
= {NULL
, NULL
, 447, LOCATE_typing___AWhileExpr___after_typing
};
1374 void **closurevariable
= NULL
;
1375 trace
.prev
= tracehead
; tracehead
= &trace
;
1376 trace
.file
= LOCATE_typing
;
1378 variable
[1] = param0
;
1379 variable
[3] = variable
[0];
1380 variable
[3] = CALL_parser_nodes___AWhileExpr___n_expr(variable
[3])(variable
[3]) /*AWhileExpr::n_expr*/;
1381 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1382 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
1383 return_label39
: while(false);
1384 tracehead
= trace
.prev
;
1387 void typing___AForExpr___after_typing(val_t self
, val_t param0
) {
1388 struct trace_t trace
= {NULL
, NULL
, 454, LOCATE_typing___AForExpr___after_typing
};
1390 void **closurevariable
= NULL
;
1391 trace
.prev
= tracehead
; tracehead
= &trace
;
1392 trace
.file
= LOCATE_typing
;
1394 variable
[1] = param0
;
1395 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1396 variable
[3] = variable
[4];
1397 variable
[4] = TAG_Bool(( variable
[3] /*varctx*/==NIT_NULL
) || VAL_ISA( variable
[3] /*varctx*/, COLOR_SubVariableContext
, ID_SubVariableContext
)) /*cast SubVariableContext*/;
1398 if (!UNTAG_Bool(variable
[4])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_typing___AForExpr___after_typing
, LOCATE_typing
, 458); nit_exit(1);}
1399 variable
[4] = CALL_typing___SubVariableContext___prev( variable
[3] /*varctx*/)( variable
[3] /*varctx*/) /*SubVariableContext::prev*/;
1400 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::variable_ctx=*/;
1401 return_label40
: while(false);
1402 tracehead
= trace
.prev
;
1405 void typing___AForVardeclExpr___after_typing(val_t self
, val_t param0
) {
1406 struct trace_t trace
= {NULL
, NULL
, 468, LOCATE_typing___AForVardeclExpr___after_typing
};
1407 static val_t once_value_42
; static int once_bool_42
; /* Once value for variable[7]*/
1408 static val_t once_value_43
; static int once_bool_43
; /* Once value for variable[8]*/
1409 static val_t once_value_44
; static int once_bool_44
; /* Once value for variable[8]*/
1410 static val_t once_value_45
; static int once_bool_45
; /* Once value for variable[8]*/
1412 void **closurevariable
= NULL
;
1413 trace
.prev
= tracehead
; tracehead
= &trace
;
1414 trace
.file
= LOCATE_typing
;
1416 variable
[1] = param0
;
1417 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1418 variable
[3] = CALL_typing___VariableContext___sub(variable
[3])(variable
[3]) /*VariableContext::sub*/;
1419 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*TypingVisitor::variable_ctx=*/;
1420 variable
[4] = variable
[0];
1421 variable
[4] = CALL_parser_nodes___AForVardeclExpr___n_id(variable
[4])(variable
[4]) /*AForVardeclExpr::n_id*/;
1422 variable
[4] = CALL_syntax_base___Token___to_symbol(variable
[4])(variable
[4]) /*Token::to_symbol*/;
1423 variable
[5] = variable
[0];
1424 variable
[6] = NEW_AutoVariable_syntax_base___AutoVariable___init(variable
[4], variable
[5]); /*new AutoVariable*/
1425 variable
[4] = variable
[6];
1426 variable
[3] = variable
[4];
1427 variable
[4] = variable
[0];
1428 CALL_syntax_base___AForVardeclExpr___variable__eq(variable
[4])(variable
[4], variable
[3] /*va*/) /*AForVardeclExpr::variable=*/;
1429 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1430 CALL_typing___VariableContext___add(variable
[4])(variable
[4], variable
[3] /*va*/) /*VariableContext::add*/;
1431 variable
[5] = variable
[0];
1432 variable
[5] = CALL_parser_nodes___AForVardeclExpr___n_expr(variable
[5])(variable
[5]) /*AForVardeclExpr::n_expr*/;
1433 variable
[5] = CALL_syntax_base___PExpr___stype(variable
[5])(variable
[5]) /*PExpr::stype*/;
1434 variable
[4] = variable
[5];
1435 variable
[5] = variable
[0];
1436 variable
[5] = CALL_parser_nodes___AForVardeclExpr___n_expr(variable
[5])(variable
[5]) /*AForVardeclExpr::n_expr*/;
1437 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___type_collection( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_collection*/;
1438 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[6]) /*AbsSyntaxVisitor::check_conform_expr*/;
1439 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[5])))) { /*if*/
1440 goto return_label41
;
1442 variable
[5] = variable
[0];
1443 variable
[6] = CALL_static_type___MMType___local_class( variable
[4] /*expr_type*/)( variable
[4] /*expr_type*/) /*MMType::local_class*/;
1444 if (once_bool_42
) variable
[7] = once_value_42
;
1446 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("iterator"), TAG_Int(8)); /*new String*/
1447 variable
[7] = CALL_symbol___String___to_symbol(variable
[7])(variable
[7]) /*String::to_symbol*/;
1448 once_value_42
= variable
[7];
1449 once_bool_42
= true;
1451 variable
[6] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[6])(variable
[6], variable
[7]) /*MMLocalClass::select_method*/;
1452 ATTR_typing___AForVardeclExpr____meth_iterator(variable
[5]) /*AForVardeclExpr::_meth_iterator*/ = variable
[6];
1453 variable
[5] = variable
[0];
1454 variable
[5] = ATTR_typing___AForVardeclExpr____meth_iterator(variable
[5]) /*AForVardeclExpr::_meth_iterator*/;
1455 variable
[5] = TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))));
1456 if (UNTAG_Bool(variable
[5])) { /*if*/
1457 variable
[5] = variable
[0];
1458 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: Collection MUST have an iterate method"), TAG_Int(45)); /*new String*/
1459 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[6]) /*AbsSyntaxVisitor::error*/;
1460 goto return_label41
;
1462 variable
[6] = variable
[0];
1463 variable
[6] = ATTR_typing___AForVardeclExpr____meth_iterator(variable
[6]) /*AForVardeclExpr::_meth_iterator*/;
1464 variable
[6] = CALL_static_type___MMLocalProperty___signature_for(variable
[6])(variable
[6], variable
[4] /*expr_type*/) /*MMLocalProperty::signature_for*/;
1465 variable
[6] = CALL_static_type___MMSignature___return_type(variable
[6])(variable
[6]) /*MMSignature::return_type*/;
1466 variable
[5] = variable
[6];
1467 variable
[6] = variable
[0];
1468 variable
[7] = CALL_static_type___MMType___local_class( variable
[5] /*iter_type*/)( variable
[5] /*iter_type*/) /*MMType::local_class*/;
1469 if (once_bool_43
) variable
[8] = once_value_43
;
1471 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("is_ok"), TAG_Int(5)); /*new String*/
1472 variable
[8] = CALL_symbol___String___to_symbol(variable
[8])(variable
[8]) /*String::to_symbol*/;
1473 once_value_43
= variable
[8];
1474 once_bool_43
= true;
1476 variable
[7] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[7])(variable
[7], variable
[8]) /*MMLocalClass::select_method*/;
1477 ATTR_typing___AForVardeclExpr____meth_is_ok(variable
[6]) /*AForVardeclExpr::_meth_is_ok*/ = variable
[7];
1478 variable
[6] = variable
[0];
1479 variable
[6] = ATTR_typing___AForVardeclExpr____meth_is_ok(variable
[6]) /*AForVardeclExpr::_meth_is_ok*/;
1480 variable
[6] = TAG_Bool((variable
[6] == NIT_NULL
/*null*/) || ((variable
[6] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[6])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[6], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[6])(variable
[6], NIT_NULL
/*null*/) /*Object::==*/)))));
1481 if (UNTAG_Bool(variable
[6])) { /*if*/
1482 variable
[6] = variable
[0];
1483 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1484 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
1485 variable
[9] = variable
[8];
1486 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[9]) /*AbstractArray::add*/;
1487 variable
[10] = variable
[5] /*iter_type*/;
1488 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
1489 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[10]) /*AbstractArray::add*/;
1490 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have an is_ok method"), TAG_Int(26)); /*new String*/
1491 variable
[12] = variable
[11];
1492 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[12]) /*AbstractArray::add*/;
1493 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
1494 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[7]) /*AbsSyntaxVisitor::error*/;
1495 goto return_label41
;
1497 variable
[6] = variable
[0];
1498 variable
[7] = CALL_static_type___MMType___local_class( variable
[5] /*iter_type*/)( variable
[5] /*iter_type*/) /*MMType::local_class*/;
1499 if (once_bool_44
) variable
[8] = once_value_44
;
1501 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("item"), TAG_Int(4)); /*new String*/
1502 variable
[8] = CALL_symbol___String___to_symbol(variable
[8])(variable
[8]) /*String::to_symbol*/;
1503 once_value_44
= variable
[8];
1504 once_bool_44
= true;
1506 variable
[7] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[7])(variable
[7], variable
[8]) /*MMLocalClass::select_method*/;
1507 ATTR_typing___AForVardeclExpr____meth_item(variable
[6]) /*AForVardeclExpr::_meth_item*/ = variable
[7];
1508 variable
[6] = variable
[0];
1509 variable
[6] = ATTR_typing___AForVardeclExpr____meth_item(variable
[6]) /*AForVardeclExpr::_meth_item*/;
1510 variable
[6] = TAG_Bool((variable
[6] == NIT_NULL
/*null*/) || ((variable
[6] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[6])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[6], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[6])(variable
[6], NIT_NULL
/*null*/) /*Object::==*/)))));
1511 if (UNTAG_Bool(variable
[6])) { /*if*/
1512 variable
[6] = variable
[0];
1513 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1514 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
1515 variable
[9] = variable
[8];
1516 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[9]) /*AbstractArray::add*/;
1517 variable
[10] = variable
[5] /*iter_type*/;
1518 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
1519 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[10]) /*AbstractArray::add*/;
1520 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have an item method"), TAG_Int(25)); /*new String*/
1521 variable
[12] = variable
[11];
1522 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[12]) /*AbstractArray::add*/;
1523 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
1524 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[7]) /*AbsSyntaxVisitor::error*/;
1525 goto return_label41
;
1527 variable
[6] = variable
[0];
1528 variable
[7] = CALL_static_type___MMType___local_class( variable
[5] /*iter_type*/)( variable
[5] /*iter_type*/) /*MMType::local_class*/;
1529 if (once_bool_45
) variable
[8] = once_value_45
;
1531 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("next"), TAG_Int(4)); /*new String*/
1532 variable
[8] = CALL_symbol___String___to_symbol(variable
[8])(variable
[8]) /*String::to_symbol*/;
1533 once_value_45
= variable
[8];
1534 once_bool_45
= true;
1536 variable
[7] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[7])(variable
[7], variable
[8]) /*MMLocalClass::select_method*/;
1537 ATTR_typing___AForVardeclExpr____meth_next(variable
[6]) /*AForVardeclExpr::_meth_next*/ = variable
[7];
1538 variable
[6] = variable
[0];
1539 variable
[6] = ATTR_typing___AForVardeclExpr____meth_next(variable
[6]) /*AForVardeclExpr::_meth_next*/;
1540 variable
[6] = TAG_Bool((variable
[6] == NIT_NULL
/*null*/) || ((variable
[6] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[6])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[6], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[6])(variable
[6], NIT_NULL
/*null*/) /*Object::==*/)))));
1541 if (UNTAG_Bool(variable
[6])) { /*if*/
1542 variable
[6] = variable
[0];
1543 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1544 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
1545 variable
[9] = variable
[8];
1546 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[9]) /*AbstractArray::add*/;
1547 variable
[10] = variable
[5] /*iter_type*/;
1548 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
1549 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[10]) /*AbstractArray::add*/;
1550 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have a next method"), TAG_Int(24)); /*new String*/
1551 variable
[12] = variable
[11];
1552 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[12]) /*AbstractArray::add*/;
1553 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
1554 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[7]) /*AbsSyntaxVisitor::error*/;
1555 goto return_label41
;
1557 variable
[7] = variable
[0];
1558 variable
[7] = ATTR_typing___AForVardeclExpr____meth_item(variable
[7]) /*AForVardeclExpr::_meth_item*/;
1559 variable
[7] = CALL_static_type___MMLocalProperty___signature_for(variable
[7])(variable
[7], variable
[5] /*iter_type*/) /*MMLocalProperty::signature_for*/;
1560 variable
[7] = CALL_static_type___MMSignature___return_type(variable
[7])(variable
[7]) /*MMSignature::return_type*/;
1561 variable
[6] = variable
[7];
1562 variable
[7] = variable
[0];
1563 variable
[7] = CALL_parser_nodes___AForVardeclExpr___n_expr(variable
[7])(variable
[7]) /*AForVardeclExpr::n_expr*/;
1564 variable
[7] = CALL_typing___PExpr___is_self(variable
[7])(variable
[7]) /*PExpr::is_self*/;
1565 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[7])))) { /*if*/
1566 variable
[7] = CALL_static_type___MMType___not_for_self( variable
[6] /*t*/)( variable
[6] /*t*/) /*MMType::not_for_self*/;
1567 variable
[6] = variable
[7] /*t=*/;
1569 CALL_syntax_base___Variable___stype__eq( variable
[3] /*va*/)( variable
[3] /*va*/, variable
[6] /*t*/) /*Variable::stype=*/;
1570 return_label41
: while(false);
1571 tracehead
= trace
.prev
;
1574 val_t
typing___AForVardeclExpr___meth_iterator(val_t self
) {
1575 struct trace_t trace
= {NULL
, NULL
, 464, LOCATE_typing___AForVardeclExpr___meth_iterator
};
1576 val_t
*variable
= NULL
;
1577 void **closurevariable
= NULL
;
1578 trace
.prev
= tracehead
; tracehead
= &trace
;
1579 trace
.file
= LOCATE_typing
;
1580 tracehead
= trace
.prev
;
1581 return ATTR_typing___AForVardeclExpr____meth_iterator( self
) /*AForVardeclExpr::_meth_iterator*/;
1583 val_t
typing___AForVardeclExpr___meth_is_ok(val_t self
) {
1584 struct trace_t trace
= {NULL
, NULL
, 465, LOCATE_typing___AForVardeclExpr___meth_is_ok
};
1585 val_t
*variable
= NULL
;
1586 void **closurevariable
= NULL
;
1587 trace
.prev
= tracehead
; tracehead
= &trace
;
1588 trace
.file
= LOCATE_typing
;
1589 tracehead
= trace
.prev
;
1590 return ATTR_typing___AForVardeclExpr____meth_is_ok( self
) /*AForVardeclExpr::_meth_is_ok*/;
1592 val_t
typing___AForVardeclExpr___meth_item(val_t self
) {
1593 struct trace_t trace
= {NULL
, NULL
, 466, LOCATE_typing___AForVardeclExpr___meth_item
};
1594 val_t
*variable
= NULL
;
1595 void **closurevariable
= NULL
;
1596 trace
.prev
= tracehead
; tracehead
= &trace
;
1597 trace
.file
= LOCATE_typing
;
1598 tracehead
= trace
.prev
;
1599 return ATTR_typing___AForVardeclExpr____meth_item( self
) /*AForVardeclExpr::_meth_item*/;
1601 val_t
typing___AForVardeclExpr___meth_next(val_t self
) {
1602 struct trace_t trace
= {NULL
, NULL
, 467, LOCATE_typing___AForVardeclExpr___meth_next
};
1603 val_t
*variable
= NULL
;
1604 void **closurevariable
= NULL
;
1605 trace
.prev
= tracehead
; tracehead
= &trace
;
1606 trace
.file
= LOCATE_typing
;
1607 tracehead
= trace
.prev
;
1608 return ATTR_typing___AForVardeclExpr____meth_next( self
) /*AForVardeclExpr::_meth_next*/;
1610 void typing___AAssertExpr___after_typing(val_t self
, val_t param0
) {
1611 struct trace_t trace
= {NULL
, NULL
, 507, LOCATE_typing___AAssertExpr___after_typing
};
1613 void **closurevariable
= NULL
;
1614 trace
.prev
= tracehead
; tracehead
= &trace
;
1615 trace
.file
= LOCATE_typing
;
1617 variable
[1] = param0
;
1618 variable
[3] = variable
[0];
1619 variable
[3] = CALL_parser_nodes___AAssertExpr___n_expr(variable
[3])(variable
[3]) /*AAssertExpr::n_expr*/;
1620 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1621 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
1622 variable
[3] = variable
[0];
1623 variable
[3] = CALL_parser_nodes___AAssertExpr___n_expr(variable
[3])(variable
[3]) /*AAssertExpr::n_expr*/;
1624 variable
[3] = CALL_typing___PExpr___if_true_variable_ctx(variable
[3])(variable
[3]) /*PExpr::if_true_variable_ctx*/;
1625 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
1626 if (UNTAG_Bool(variable
[3])) { /*if*/
1627 variable
[3] = variable
[0];
1628 variable
[3] = CALL_parser_nodes___AAssertExpr___n_expr(variable
[3])(variable
[3]) /*AAssertExpr::n_expr*/;
1629 variable
[3] = CALL_typing___PExpr___if_true_variable_ctx(variable
[3])(variable
[3]) /*PExpr::if_true_variable_ctx*/;
1630 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*TypingVisitor::variable_ctx=*/;
1632 return_label46
: while(false);
1633 tracehead
= trace
.prev
;
1636 void typing___AVarExpr___after_typing(val_t self
, val_t param0
) {
1637 struct trace_t trace
= {NULL
, NULL
, 517, LOCATE_typing___AVarExpr___after_typing
};
1639 void **closurevariable
= NULL
;
1640 trace
.prev
= tracehead
; tracehead
= &trace
;
1641 trace
.file
= LOCATE_typing
;
1643 variable
[1] = param0
;
1644 variable
[3] = variable
[0];
1645 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1646 variable
[5] = variable
[0];
1647 variable
[5] = CALL_syntax_base___AVarFormExpr___variable(variable
[5])(variable
[5]) /*AVarFormExpr::variable*/;
1648 variable
[4] = CALL_typing___VariableContext___stype(variable
[4])(variable
[4], variable
[5]) /*VariableContext::stype*/;
1649 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
1650 return_label47
: while(false);
1651 tracehead
= trace
.prev
;
1654 val_t
typing___AVarExpr___its_variable(val_t self
) {
1655 struct trace_t trace
= {NULL
, NULL
, 515, LOCATE_typing___AVarExpr___its_variable
};
1657 void **closurevariable
= NULL
;
1658 trace
.prev
= tracehead
; tracehead
= &trace
;
1659 trace
.file
= LOCATE_typing
;
1661 variable
[2] = variable
[0];
1662 variable
[2] = CALL_syntax_base___AVarFormExpr___variable(variable
[2])(variable
[2]) /*AVarFormExpr::variable*/;
1663 variable
[1] = variable
[2];
1664 goto return_label48
;
1665 return_label48
: while(false);
1666 tracehead
= trace
.prev
;
1669 void typing___AVarAssignExpr___after_typing(val_t self
, val_t param0
) {
1670 struct trace_t trace
= {NULL
, NULL
, 524, LOCATE_typing___AVarAssignExpr___after_typing
};
1672 void **closurevariable
= NULL
;
1673 trace
.prev
= tracehead
; tracehead
= &trace
;
1674 trace
.file
= LOCATE_typing
;
1676 variable
[1] = param0
;
1677 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1678 variable
[5] = variable
[0];
1679 variable
[5] = CALL_syntax_base___AVarFormExpr___variable(variable
[5])(variable
[5]) /*AVarFormExpr::variable*/;
1680 variable
[4] = CALL_typing___VariableContext___stype(variable
[4])(variable
[4], variable
[5]) /*VariableContext::stype*/;
1681 variable
[3] = variable
[4];
1682 variable
[4] = variable
[0];
1683 variable
[4] = CALL_parser_nodes___AAssignFormExpr___n_value(variable
[4])(variable
[4]) /*AAssignFormExpr::n_value*/;
1684 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[3] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
1685 return_label49
: while(false);
1686 tracehead
= trace
.prev
;
1689 void typing___AReassignFormExpr___do_lvalue_typing(val_t self
, val_t param0
, val_t param1
) {
1690 struct trace_t trace
= {NULL
, NULL
, 532, LOCATE_typing___AReassignFormExpr___do_lvalue_typing
};
1692 void **closurevariable
= NULL
;
1693 trace
.prev
= tracehead
; tracehead
= &trace
;
1694 trace
.file
= LOCATE_typing
;
1696 variable
[1] = param0
;
1697 variable
[2] = param1
;
1698 variable
[4] = TAG_Bool(( variable
[2] /*type_lvalue*/ == NIT_NULL
/*null*/) || (( variable
[2] /*type_lvalue*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[2] /*type_lvalue*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[2] /*type_lvalue*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[2] /*type_lvalue*/)( variable
[2] /*type_lvalue*/, NIT_NULL
/*null*/) /*Object::==*/)))));
1699 if (UNTAG_Bool(variable
[4])) { /*if*/
1700 goto return_label50
;
1702 variable
[5] = variable
[0];
1703 variable
[5] = CALL_parser_nodes___AReassignFormExpr___n_assign_op(variable
[5])(variable
[5]) /*AReassignFormExpr::n_assign_op*/;
1704 variable
[5] = CALL_typing___PAssignOp___method_name(variable
[5])(variable
[5]) /*PAssignOp::method_name*/;
1705 variable
[4] = variable
[5];
1706 variable
[6] = CALL_static_type___MMType___local_class( variable
[2] /*type_lvalue*/)( variable
[2] /*type_lvalue*/) /*MMType::local_class*/;
1707 variable
[6] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[6])(variable
[6], variable
[4] /*name*/) /*MMLocalClass::select_method*/;
1708 variable
[5] = variable
[6];
1709 variable
[6] = TAG_Bool(( variable
[5] /*prop*/ == NIT_NULL
/*null*/) || (( variable
[5] /*prop*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[5] /*prop*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[5] /*prop*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*prop*/)( variable
[5] /*prop*/, NIT_NULL
/*null*/) /*Object::==*/)))));
1710 if (UNTAG_Bool(variable
[6])) { /*if*/
1711 variable
[6] = variable
[0];
1712 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
1713 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: Method '"), TAG_Int(15)); /*new String*/
1714 variable
[9] = variable
[8];
1715 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[9]) /*AbstractArray::add*/;
1716 variable
[10] = variable
[4] /*name*/;
1717 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
1718 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[10]) /*AbstractArray::add*/;
1719 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString("' doesn't exists in "), TAG_Int(20)); /*new String*/
1720 variable
[12] = variable
[11];
1721 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[12]) /*AbstractArray::add*/;
1722 variable
[13] = variable
[2] /*type_lvalue*/;
1723 variable
[13] = CALL_string___Object___to_s(variable
[13])(variable
[13]) /*Object::to_s*/;
1724 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[13]) /*AbstractArray::add*/;
1725 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
1726 variable
[15] = variable
[14];
1727 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[15]) /*AbstractArray::add*/;
1728 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
1729 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[7]) /*AbsSyntaxVisitor::error*/;
1730 goto return_label50
;
1732 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[5] /*prop*/)( variable
[5] /*prop*/) /*MMLocalProperty::global*/;
1733 variable
[7] = variable
[0];
1734 variable
[8] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
1735 CALL_syntax_base___MMGlobalProperty___check_visibility(variable
[6])(variable
[6], variable
[1] /*v*/, variable
[7], variable
[8], TAG_Bool(false)) /*MMGlobalProperty::check_visibility*/;
1736 variable
[7] = CALL_static_type___MMLocalProperty___signature_for( variable
[5] /*prop*/)( variable
[5] /*prop*/, variable
[2] /*type_lvalue*/) /*MMLocalProperty::signature_for*/;
1737 variable
[6] = variable
[7];
1738 variable
[7] = variable
[0];
1739 ATTR_typing___AReassignFormExpr____assign_method(variable
[7]) /*AReassignFormExpr::_assign_method*/ = variable
[5] /*prop*/;
1740 variable
[7] = variable
[0];
1741 variable
[7] = CALL_parser_nodes___AReassignFormExpr___n_value(variable
[7])(variable
[7]) /*AReassignFormExpr::n_value*/;
1742 variable
[8] = CALL_static_type___MMSignature_____bra( variable
[6] /*psig*/)( variable
[6] /*psig*/, TAG_Int(0)) /*MMSignature::[]*/;
1743 variable
[8] = CALL_static_type___MMType___not_for_self(variable
[8])(variable
[8]) /*MMType::not_for_self*/;
1744 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[7], variable
[8]) /*AbsSyntaxVisitor::check_conform_expr*/;
1745 variable
[7] = variable
[0];
1746 variable
[8] = CALL_static_type___MMSignature___return_type( variable
[6] /*psig*/)( variable
[6] /*psig*/) /*MMSignature::return_type*/;
1747 variable
[8] = CALL_static_type___MMType___not_for_self(variable
[8])(variable
[8]) /*MMType::not_for_self*/;
1748 variable
[9] = variable
[0];
1749 variable
[9] = CALL_parser_nodes___AReassignFormExpr___n_value(variable
[9])(variable
[9]) /*AReassignFormExpr::n_value*/;
1750 variable
[9] = CALL_syntax_base___PExpr___stype(variable
[9])(variable
[9]) /*PExpr::stype*/;
1751 CALL_syntax_base___AbsSyntaxVisitor___check_conform( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[7], variable
[8], variable
[9]) /*AbsSyntaxVisitor::check_conform*/;
1752 return_label50
: while(false);
1753 tracehead
= trace
.prev
;
1756 val_t
typing___AReassignFormExpr___assign_method(val_t self
) {
1757 struct trace_t trace
= {NULL
, NULL
, 551, LOCATE_typing___AReassignFormExpr___assign_method
};
1758 val_t
*variable
= NULL
;
1759 void **closurevariable
= NULL
;
1760 trace
.prev
= tracehead
; tracehead
= &trace
;
1761 trace
.file
= LOCATE_typing
;
1762 tracehead
= trace
.prev
;
1763 return ATTR_typing___AReassignFormExpr____assign_method( self
) /*AReassignFormExpr::_assign_method*/;
1765 void typing___AVarReassignExpr___after_typing(val_t self
, val_t param0
) {
1766 struct trace_t trace
= {NULL
, NULL
, 556, LOCATE_typing___AVarReassignExpr___after_typing
};
1768 void **closurevariable
= NULL
;
1769 trace
.prev
= tracehead
; tracehead
= &trace
;
1770 trace
.file
= LOCATE_typing
;
1772 variable
[1] = param0
;
1773 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1774 variable
[5] = variable
[0];
1775 variable
[5] = CALL_syntax_base___AVarFormExpr___variable(variable
[5])(variable
[5]) /*AVarFormExpr::variable*/;
1776 variable
[4] = CALL_typing___VariableContext___stype(variable
[4])(variable
[4], variable
[5]) /*VariableContext::stype*/;
1777 variable
[3] = variable
[4];
1778 variable
[4] = variable
[0];
1779 CALL_typing___AReassignFormExpr___do_lvalue_typing(variable
[4])(variable
[4], variable
[1] /*v*/, variable
[3] /*t*/) /*AReassignFormExpr::do_lvalue_typing*/;
1780 return_label51
: while(false);
1781 tracehead
= trace
.prev
;
1784 val_t
typing___PAssignOp___method_name(val_t self
) {
1785 struct trace_t trace
= {NULL
, NULL
, 564, LOCATE_typing___PAssignOp___method_name
};
1786 val_t
*variable
= NULL
;
1787 void **closurevariable
= NULL
;
1788 trace
.prev
= tracehead
; tracehead
= &trace
;
1789 trace
.file
= LOCATE_typing
;
1790 fprintf(stderr
, "Deferred method called");
1791 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 564);
1793 tracehead
= trace
.prev
;
1796 val_t
typing___APlusAssignOp___method_name(val_t self
) {
1797 struct trace_t trace
= {NULL
, NULL
, 567, LOCATE_typing___APlusAssignOp___method_name
};
1798 static val_t once_value_53
; static int once_bool_53
; /* Once value for variable[2]*/
1800 void **closurevariable
= NULL
;
1801 trace
.prev
= tracehead
; tracehead
= &trace
;
1802 trace
.file
= LOCATE_typing
;
1804 if (once_bool_53
) variable
[2] = once_value_53
;
1806 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
1807 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
1808 once_value_53
= variable
[2];
1809 once_bool_53
= true;
1811 variable
[1] = variable
[2];
1812 goto return_label52
;
1813 return_label52
: while(false);
1814 tracehead
= trace
.prev
;
1817 val_t
typing___AMinusAssignOp___method_name(val_t self
) {
1818 struct trace_t trace
= {NULL
, NULL
, 570, LOCATE_typing___AMinusAssignOp___method_name
};
1819 static val_t once_value_55
; static int once_bool_55
; /* Once value for variable[2]*/
1821 void **closurevariable
= NULL
;
1822 trace
.prev
= tracehead
; tracehead
= &trace
;
1823 trace
.file
= LOCATE_typing
;
1825 if (once_bool_55
) variable
[2] = once_value_55
;
1827 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
1828 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
1829 once_value_55
= variable
[2];
1830 once_bool_55
= true;
1832 variable
[1] = variable
[2];
1833 goto return_label54
;
1834 return_label54
: while(false);
1835 tracehead
= trace
.prev
;
1838 void typing___ASelfExpr___after_typing(val_t self
, val_t param0
) {
1839 struct trace_t trace
= {NULL
, NULL
, 576, LOCATE_typing___ASelfExpr___after_typing
};
1841 void **closurevariable
= NULL
;
1842 trace
.prev
= tracehead
; tracehead
= &trace
;
1843 trace
.file
= LOCATE_typing
;
1845 variable
[1] = param0
;
1846 variable
[3] = variable
[0];
1847 variable
[4] = CALL_typing___TypingVisitor___self_var( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::self_var*/;
1848 CALL_syntax_base___ASelfExpr___variable__eq(variable
[3])(variable
[3], variable
[4]) /*ASelfExpr::variable=*/;
1849 variable
[3] = variable
[0];
1850 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1851 variable
[5] = variable
[0];
1852 variable
[5] = CALL_syntax_base___ASelfExpr___variable(variable
[5])(variable
[5]) /*ASelfExpr::variable*/;
1853 variable
[4] = CALL_typing___VariableContext___stype(variable
[4])(variable
[4], variable
[5]) /*VariableContext::stype*/;
1854 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
1855 return_label56
: while(false);
1856 tracehead
= trace
.prev
;
1859 val_t
typing___ASelfExpr___is_self(val_t self
) {
1860 struct trace_t trace
= {NULL
, NULL
, 582, LOCATE_typing___ASelfExpr___is_self
};
1862 void **closurevariable
= NULL
;
1863 trace
.prev
= tracehead
; tracehead
= &trace
;
1864 trace
.file
= LOCATE_typing
;
1866 variable
[1] = TAG_Bool(true);
1867 goto return_label57
;
1868 return_label57
: while(false);
1869 tracehead
= trace
.prev
;
1872 val_t
typing___ASelfExpr___its_variable(val_t self
) {
1873 struct trace_t trace
= {NULL
, NULL
, 574, LOCATE_typing___ASelfExpr___its_variable
};
1875 void **closurevariable
= NULL
;
1876 trace
.prev
= tracehead
; tracehead
= &trace
;
1877 trace
.file
= LOCATE_typing
;
1879 variable
[2] = variable
[0];
1880 variable
[2] = CALL_syntax_base___ASelfExpr___variable(variable
[2])(variable
[2]) /*ASelfExpr::variable*/;
1881 variable
[1] = variable
[2];
1882 goto return_label58
;
1883 return_label58
: while(false);
1884 tracehead
= trace
.prev
;
1887 val_t
typing___AImplicitSelfExpr___is_implicit_self(val_t self
) {
1888 struct trace_t trace
= {NULL
, NULL
, 586, LOCATE_typing___AImplicitSelfExpr___is_implicit_self
};
1890 void **closurevariable
= NULL
;
1891 trace
.prev
= tracehead
; tracehead
= &trace
;
1892 trace
.file
= LOCATE_typing
;
1894 variable
[1] = TAG_Bool(true);
1895 goto return_label59
;
1896 return_label59
: while(false);
1897 tracehead
= trace
.prev
;
1900 void typing___AIfexprExpr___accept_typing(val_t self
, val_t param0
) {
1901 struct trace_t trace
= {NULL
, NULL
, 590, LOCATE_typing___AIfexprExpr___accept_typing
};
1903 void **closurevariable
= NULL
;
1904 trace
.prev
= tracehead
; tracehead
= &trace
;
1905 trace
.file
= LOCATE_typing
;
1907 variable
[1] = param0
;
1908 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1909 variable
[3] = variable
[4];
1910 variable
[4] = variable
[0];
1911 variable
[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable
[4])(variable
[4]) /*AIfexprExpr::n_expr*/;
1912 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
1913 variable
[4] = variable
[0];
1914 variable
[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable
[4])(variable
[4]) /*AIfexprExpr::n_expr*/;
1915 variable
[4] = CALL_typing___PExpr___if_true_variable_ctx(variable
[4])(variable
[4]) /*PExpr::if_true_variable_ctx*/;
1916 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1917 if (UNTAG_Bool(variable
[4])) { /*if*/
1918 variable
[4] = variable
[0];
1919 variable
[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable
[4])(variable
[4]) /*AIfexprExpr::n_expr*/;
1920 variable
[4] = CALL_typing___PExpr___if_true_variable_ctx(variable
[4])(variable
[4]) /*PExpr::if_true_variable_ctx*/;
1921 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::variable_ctx=*/;
1923 variable
[4] = variable
[0];
1924 variable
[4] = CALL_parser_nodes___AIfexprExpr___n_then(variable
[4])(variable
[4]) /*AIfexprExpr::n_then*/;
1925 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
1926 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
1927 variable
[4] = variable
[0];
1928 variable
[4] = CALL_parser_nodes___AIfexprExpr___n_else(variable
[4])(variable
[4]) /*AIfexprExpr::n_else*/;
1929 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
1930 variable
[4] = variable
[0];
1931 variable
[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable
[4])(variable
[4]) /*AIfexprExpr::n_expr*/;
1932 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1933 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
1934 variable
[4] = variable
[0];
1935 variable
[4] = CALL_parser_nodes___AIfexprExpr___n_then(variable
[4])(variable
[4]) /*AIfexprExpr::n_then*/;
1936 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*AbsSyntaxVisitor::check_expr*/;
1937 variable
[4] = TAG_Bool(!UNTAG_Bool(variable
[4]));
1938 if (!UNTAG_Bool(variable
[4])) { /* or */
1939 variable
[4] = variable
[0];
1940 variable
[4] = CALL_parser_nodes___AIfexprExpr___n_else(variable
[4])(variable
[4]) /*AIfexprExpr::n_else*/;
1941 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*AbsSyntaxVisitor::check_expr*/;
1942 variable
[4] = TAG_Bool(!UNTAG_Bool(variable
[4]));
1944 if (UNTAG_Bool(variable
[4])) { /*if*/
1945 goto return_label60
;
1947 variable
[5] = variable
[0];
1948 variable
[5] = CALL_parser_nodes___AIfexprExpr___n_then(variable
[5])(variable
[5]) /*AIfexprExpr::n_then*/;
1949 variable
[5] = CALL_syntax_base___PExpr___stype(variable
[5])(variable
[5]) /*PExpr::stype*/;
1950 variable
[4] = variable
[5];
1951 variable
[6] = variable
[0];
1952 variable
[6] = CALL_parser_nodes___AIfexprExpr___n_else(variable
[6])(variable
[6]) /*AIfexprExpr::n_else*/;
1953 variable
[6] = CALL_syntax_base___PExpr___stype(variable
[6])(variable
[6]) /*PExpr::stype*/;
1954 variable
[5] = variable
[6];
1955 variable
[6] = CALL_static_type___MMType_____l( variable
[4] /*t*/)( variable
[4] /*t*/, variable
[5] /*te*/) /*MMType::<*/;
1956 if (UNTAG_Bool(variable
[6])) { /*if*/
1957 variable
[4] = variable
[5] /*te*/ /*t=*/;
1959 variable
[6] = CALL_static_type___MMType_____l( variable
[5] /*te*/)( variable
[5] /*te*/, variable
[4] /*t*/) /*MMType::<*/;
1960 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[6])))) { /*if*/
1961 variable
[6] = variable
[0];
1962 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
1963 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)); /*new String*/
1964 variable
[9] = variable
[8];
1965 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[9]) /*AbstractArray::add*/;
1966 variable
[10] = variable
[5] /*te*/;
1967 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
1968 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[10]) /*AbstractArray::add*/;
1969 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(" is not a subtype of "), TAG_Int(21)); /*new String*/
1970 variable
[12] = variable
[11];
1971 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[12]) /*AbstractArray::add*/;
1972 variable
[13] = variable
[4] /*t*/;
1973 variable
[13] = CALL_string___Object___to_s(variable
[13])(variable
[13]) /*Object::to_s*/;
1974 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[13]) /*AbstractArray::add*/;
1975 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
1976 variable
[15] = variable
[14];
1977 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[15]) /*AbstractArray::add*/;
1978 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
1979 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[7]) /*AbsSyntaxVisitor::error*/;
1980 goto return_label60
;
1983 variable
[6] = variable
[0];
1984 ATTR_typing___PExpr____stype(variable
[6]) /*PExpr::_stype*/ = variable
[4] /*t*/;
1985 return_label60
: while(false);
1986 tracehead
= trace
.prev
;
1989 void typing___ABoolExpr___after_typing(val_t self
, val_t param0
) {
1990 struct trace_t trace
= {NULL
, NULL
, 618, LOCATE_typing___ABoolExpr___after_typing
};
1992 void **closurevariable
= NULL
;
1993 trace
.prev
= tracehead
; tracehead
= &trace
;
1994 trace
.file
= LOCATE_typing
;
1996 variable
[1] = param0
;
1997 variable
[3] = variable
[0];
1998 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1999 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
2000 return_label61
: while(false);
2001 tracehead
= trace
.prev
;
2004 void typing___AOrExpr___after_typing(val_t self
, val_t param0
) {
2005 struct trace_t trace
= {NULL
, NULL
, 625, LOCATE_typing___AOrExpr___after_typing
};
2007 void **closurevariable
= NULL
;
2008 trace
.prev
= tracehead
; tracehead
= &trace
;
2009 trace
.file
= LOCATE_typing
;
2011 variable
[1] = param0
;
2012 variable
[3] = variable
[0];
2013 variable
[3] = CALL_parser_nodes___AOrExpr___n_expr(variable
[3])(variable
[3]) /*AOrExpr::n_expr*/;
2014 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
2015 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
2016 variable
[3] = variable
[0];
2017 variable
[3] = CALL_parser_nodes___AOrExpr___n_expr2(variable
[3])(variable
[3]) /*AOrExpr::n_expr2*/;
2018 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
2019 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
2020 variable
[3] = variable
[0];
2021 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
2022 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
2023 return_label62
: while(false);
2024 tracehead
= trace
.prev
;
2027 void typing___AAndExpr___accept_typing(val_t self
, val_t param0
) {
2028 struct trace_t trace
= {NULL
, NULL
, 634, LOCATE_typing___AAndExpr___accept_typing
};
2030 void **closurevariable
= NULL
;
2031 trace
.prev
= tracehead
; tracehead
= &trace
;
2032 trace
.file
= LOCATE_typing
;
2034 variable
[1] = param0
;
2035 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2036 variable
[3] = variable
[4];
2037 variable
[4] = variable
[0];
2038 variable
[4] = CALL_parser_nodes___AAndExpr___n_expr(variable
[4])(variable
[4]) /*AAndExpr::n_expr*/;
2039 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
2040 variable
[4] = variable
[0];
2041 variable
[4] = CALL_parser_nodes___AAndExpr___n_expr(variable
[4])(variable
[4]) /*AAndExpr::n_expr*/;
2042 variable
[4] = CALL_typing___PExpr___if_true_variable_ctx(variable
[4])(variable
[4]) /*PExpr::if_true_variable_ctx*/;
2043 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
2044 if (UNTAG_Bool(variable
[4])) { /*if*/
2045 variable
[4] = variable
[0];
2046 variable
[4] = CALL_parser_nodes___AAndExpr___n_expr(variable
[4])(variable
[4]) /*AAndExpr::n_expr*/;
2047 variable
[4] = CALL_typing___PExpr___if_true_variable_ctx(variable
[4])(variable
[4]) /*PExpr::if_true_variable_ctx*/;
2048 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::variable_ctx=*/;
2050 variable
[4] = variable
[0];
2051 variable
[4] = CALL_parser_nodes___AAndExpr___n_expr2(variable
[4])(variable
[4]) /*AAndExpr::n_expr2*/;
2052 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
2053 variable
[4] = variable
[0];
2054 variable
[4] = CALL_parser_nodes___AAndExpr___n_expr2(variable
[4])(variable
[4]) /*AAndExpr::n_expr2*/;
2055 variable
[4] = CALL_typing___PExpr___if_true_variable_ctx(variable
[4])(variable
[4]) /*PExpr::if_true_variable_ctx*/;
2056 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
2057 if (UNTAG_Bool(variable
[4])) { /*if*/
2058 variable
[4] = variable
[0];
2059 variable
[5] = variable
[0];
2060 variable
[5] = CALL_parser_nodes___AAndExpr___n_expr2(variable
[5])(variable
[5]) /*AAndExpr::n_expr2*/;
2061 variable
[5] = CALL_typing___PExpr___if_true_variable_ctx(variable
[5])(variable
[5]) /*PExpr::if_true_variable_ctx*/;
2062 ATTR_typing___PExpr____if_true_variable_ctx(variable
[4]) /*PExpr::_if_true_variable_ctx*/ = variable
[5];
2064 variable
[4] = variable
[0];
2065 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2066 ATTR_typing___PExpr____if_true_variable_ctx(variable
[4]) /*PExpr::_if_true_variable_ctx*/ = variable
[5];
2068 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
2069 variable
[4] = variable
[0];
2070 variable
[4] = CALL_parser_nodes___AAndExpr___n_expr(variable
[4])(variable
[4]) /*AAndExpr::n_expr*/;
2071 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
2072 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
2073 variable
[4] = variable
[0];
2074 variable
[4] = CALL_parser_nodes___AAndExpr___n_expr2(variable
[4])(variable
[4]) /*AAndExpr::n_expr2*/;
2075 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
2076 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
2077 variable
[4] = variable
[0];
2078 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
2079 ATTR_typing___PExpr____stype(variable
[4]) /*PExpr::_stype*/ = variable
[5];
2080 return_label63
: while(false);
2081 tracehead
= trace
.prev
;
2084 void typing___ANotExpr___after_typing(val_t self
, val_t param0
) {
2085 struct trace_t trace
= {NULL
, NULL
, 657, LOCATE_typing___ANotExpr___after_typing
};
2087 void **closurevariable
= NULL
;
2088 trace
.prev
= tracehead
; tracehead
= &trace
;
2089 trace
.file
= LOCATE_typing
;
2091 variable
[1] = param0
;
2092 variable
[3] = variable
[0];
2093 variable
[3] = CALL_parser_nodes___ANotExpr___n_expr(variable
[3])(variable
[3]) /*ANotExpr::n_expr*/;
2094 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
2095 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
2096 variable
[3] = variable
[0];
2097 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
2098 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
2099 return_label64
: while(false);
2100 tracehead
= trace
.prev
;
2103 void typing___AIntExpr___after_typing(val_t self
, val_t param0
) {
2104 struct trace_t trace
= {NULL
, NULL
, 665, LOCATE_typing___AIntExpr___after_typing
};
2106 void **closurevariable
= NULL
;
2107 trace
.prev
= tracehead
; tracehead
= &trace
;
2108 trace
.file
= LOCATE_typing
;
2110 variable
[1] = param0
;
2111 variable
[3] = variable
[0];
2112 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_int( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_int*/;
2113 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
2114 return_label65
: while(false);
2115 tracehead
= trace
.prev
;
2118 void typing___AFloatExpr___after_typing(val_t self
, val_t param0
) {
2119 struct trace_t trace
= {NULL
, NULL
, 673, LOCATE_typing___AFloatExpr___after_typing
};
2121 void **closurevariable
= NULL
;
2122 trace
.prev
= tracehead
; tracehead
= &trace
;
2123 trace
.file
= LOCATE_typing
;
2125 variable
[1] = param0
;
2126 variable
[3] = variable
[0];
2127 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_float( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_float*/;
2128 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
2129 return_label66
: while(false);
2130 tracehead
= trace
.prev
;
2133 void typing___ACharExpr___after_typing(val_t self
, val_t param0
) {
2134 struct trace_t trace
= {NULL
, NULL
, 680, LOCATE_typing___ACharExpr___after_typing
};
2136 void **closurevariable
= NULL
;
2137 trace
.prev
= tracehead
; tracehead
= &trace
;
2138 trace
.file
= LOCATE_typing
;
2140 variable
[1] = param0
;
2141 variable
[3] = variable
[0];
2142 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_char( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_char*/;
2143 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
2144 return_label67
: while(false);
2145 tracehead
= trace
.prev
;
2148 void typing___AStringFormExpr___after_typing(val_t self
, val_t param0
) {
2149 struct trace_t trace
= {NULL
, NULL
, 688, LOCATE_typing___AStringFormExpr___after_typing
};
2150 static val_t once_value_69
; static int once_bool_69
; /* Once value for variable[5]*/
2152 void **closurevariable
= NULL
;
2153 trace
.prev
= tracehead
; tracehead
= &trace
;
2154 trace
.file
= LOCATE_typing
;
2156 variable
[1] = param0
;
2157 variable
[3] = variable
[0];
2158 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_string( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_string*/;
2159 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
2160 variable
[3] = variable
[0];
2161 variable
[4] = variable
[0];
2162 variable
[4] = ATTR_typing___PExpr____stype(variable
[4]) /*PExpr::_stype*/;
2163 variable
[4] = CALL_static_type___MMType___local_class(variable
[4])(variable
[4]) /*MMType::local_class*/;
2164 if (once_bool_69
) variable
[5] = once_value_69
;
2166 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("with_native"), TAG_Int(11)); /*new String*/
2167 variable
[5] = CALL_symbol___String___to_symbol(variable
[5])(variable
[5]) /*String::to_symbol*/;
2168 once_value_69
= variable
[5];
2169 once_bool_69
= true;
2171 variable
[4] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[4])(variable
[4], variable
[5]) /*MMLocalClass::select_method*/;
2172 ATTR_typing___AStringFormExpr____meth_with_native(variable
[3]) /*AStringFormExpr::_meth_with_native*/ = variable
[4];
2173 variable
[3] = variable
[0];
2174 variable
[3] = ATTR_typing___AStringFormExpr____meth_with_native(variable
[3]) /*AStringFormExpr::_meth_with_native*/;
2175 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
2176 if (UNTAG_Bool(variable
[3])) { /*if*/
2177 variable
[3] = variable
[0];
2178 variable
[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
2179 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2180 variable
[6] = variable
[5];
2181 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[6]) /*AbstractArray::add*/;
2182 variable
[7] = variable
[0];
2183 variable
[7] = ATTR_typing___PExpr____stype(variable
[7]) /*PExpr::_stype*/;
2184 variable
[8] = variable
[7];
2185 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
2186 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[8]) /*AbstractArray::add*/;
2187 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have a with_native method."), TAG_Int(32)); /*new String*/
2188 variable
[10] = variable
[9];
2189 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[10]) /*AbstractArray::add*/;
2190 variable
[4] = CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/;
2191 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::error*/;
2193 return_label68
: while(false);
2194 tracehead
= trace
.prev
;
2197 val_t
typing___AStringFormExpr___meth_with_native(val_t self
) {
2198 struct trace_t trace
= {NULL
, NULL
, 687, LOCATE_typing___AStringFormExpr___meth_with_native
};
2199 val_t
*variable
= NULL
;
2200 void **closurevariable
= NULL
;
2201 trace
.prev
= tracehead
; tracehead
= &trace
;
2202 trace
.file
= LOCATE_typing
;
2203 tracehead
= trace
.prev
;
2204 return ATTR_typing___AStringFormExpr____meth_with_native( self
) /*AStringFormExpr::_meth_with_native*/;
2206 void typing___ASuperstringExpr___after_typing(val_t self
, val_t param0
) {
2207 struct trace_t trace
= {NULL
, NULL
, 701, LOCATE_typing___ASuperstringExpr___after_typing
};
2208 static val_t once_value_71
; static int once_bool_71
; /* Once value for variable[5]*/
2209 static val_t once_value_72
; static int once_bool_72
; /* Once value for variable[5]*/
2210 static val_t once_value_73
; static int once_bool_73
; /* Once value for variable[5]*/
2212 void **closurevariable
= NULL
;
2213 trace
.prev
= tracehead
; tracehead
= &trace
;
2214 trace
.file
= LOCATE_typing
;
2216 variable
[1] = param0
;
2217 variable
[3] = variable
[0];
2218 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_string( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_string*/;
2219 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
2220 variable
[3] = variable
[0];
2221 variable
[4] = variable
[0];
2222 variable
[4] = ATTR_typing___PExpr____stype(variable
[4]) /*PExpr::_stype*/;
2223 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_array( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*AbsSyntaxVisitor::type_array*/;
2224 ATTR_typing___ASuperstringExpr____atype(variable
[3]) /*ASuperstringExpr::_atype*/ = variable
[4];
2225 variable
[3] = variable
[0];
2226 variable
[4] = variable
[0];
2227 variable
[4] = ATTR_typing___ASuperstringExpr____atype(variable
[4]) /*ASuperstringExpr::_atype*/;
2228 variable
[4] = CALL_static_type___MMType___local_class(variable
[4])(variable
[4]) /*MMType::local_class*/;
2229 if (once_bool_71
) variable
[5] = once_value_71
;
2231 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("with_capacity"), TAG_Int(13)); /*new String*/
2232 variable
[5] = CALL_symbol___String___to_symbol(variable
[5])(variable
[5]) /*String::to_symbol*/;
2233 once_value_71
= variable
[5];
2234 once_bool_71
= true;
2236 variable
[4] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[4])(variable
[4], variable
[5]) /*MMLocalClass::select_method*/;
2237 ATTR_typing___ASuperstringExpr____meth_with_capacity(variable
[3]) /*ASuperstringExpr::_meth_with_capacity*/ = variable
[4];
2238 variable
[3] = variable
[0];
2239 variable
[3] = ATTR_typing___ASuperstringExpr____meth_with_capacity(variable
[3]) /*ASuperstringExpr::_meth_with_capacity*/;
2240 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
2241 if (UNTAG_Bool(variable
[3])) { /*if*/
2242 variable
[3] = variable
[0];
2243 variable
[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
2244 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2245 variable
[6] = variable
[5];
2246 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[6]) /*AbstractArray::add*/;
2247 variable
[7] = variable
[0];
2248 variable
[7] = ATTR_typing___ASuperstringExpr____atype(variable
[7]) /*ASuperstringExpr::_atype*/;
2249 variable
[8] = variable
[7];
2250 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
2251 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[8]) /*AbstractArray::add*/;
2252 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have a with_capacity method."), TAG_Int(34)); /*new String*/
2253 variable
[10] = variable
[9];
2254 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[10]) /*AbstractArray::add*/;
2255 variable
[4] = CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/;
2256 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::error*/;
2258 variable
[3] = variable
[0];
2259 variable
[4] = variable
[0];
2260 variable
[4] = ATTR_typing___ASuperstringExpr____atype(variable
[4]) /*ASuperstringExpr::_atype*/;
2261 variable
[4] = CALL_static_type___MMType___local_class(variable
[4])(variable
[4]) /*MMType::local_class*/;
2262 if (once_bool_72
) variable
[5] = once_value_72
;
2264 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("add"), TAG_Int(3)); /*new String*/
2265 variable
[5] = CALL_symbol___String___to_symbol(variable
[5])(variable
[5]) /*String::to_symbol*/;
2266 once_value_72
= variable
[5];
2267 once_bool_72
= true;
2269 variable
[4] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[4])(variable
[4], variable
[5]) /*MMLocalClass::select_method*/;
2270 ATTR_typing___ASuperstringExpr____meth_add(variable
[3]) /*ASuperstringExpr::_meth_add*/ = variable
[4];
2271 variable
[3] = variable
[0];
2272 variable
[3] = ATTR_typing___ASuperstringExpr____meth_add(variable
[3]) /*ASuperstringExpr::_meth_add*/;
2273 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
2274 if (UNTAG_Bool(variable
[3])) { /*if*/
2275 variable
[3] = variable
[0];
2276 variable
[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
2277 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2278 variable
[6] = variable
[5];
2279 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[6]) /*AbstractArray::add*/;
2280 variable
[7] = variable
[0];
2281 variable
[7] = ATTR_typing___ASuperstringExpr____atype(variable
[7]) /*ASuperstringExpr::_atype*/;
2282 variable
[8] = variable
[7];
2283 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
2284 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[8]) /*AbstractArray::add*/;
2285 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have an add method."), TAG_Int(25)); /*new String*/
2286 variable
[10] = variable
[9];
2287 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[10]) /*AbstractArray::add*/;
2288 variable
[4] = CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/;
2289 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::error*/;
2291 variable
[3] = variable
[0];
2292 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_object( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_object*/;
2293 variable
[4] = CALL_static_type___MMType___local_class(variable
[4])(variable
[4]) /*MMType::local_class*/;
2294 if (once_bool_73
) variable
[5] = once_value_73
;
2296 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("to_s"), TAG_Int(4)); /*new String*/
2297 variable
[5] = CALL_symbol___String___to_symbol(variable
[5])(variable
[5]) /*String::to_symbol*/;
2298 once_value_73
= variable
[5];
2299 once_bool_73
= true;
2301 variable
[4] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[4])(variable
[4], variable
[5]) /*MMLocalClass::select_method*/;
2302 ATTR_typing___ASuperstringExpr____meth_to_s(variable
[3]) /*ASuperstringExpr::_meth_to_s*/ = variable
[4];
2303 variable
[3] = variable
[0];
2304 variable
[3] = ATTR_typing___ASuperstringExpr____meth_to_s(variable
[3]) /*ASuperstringExpr::_meth_to_s*/;
2305 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
2306 if (UNTAG_Bool(variable
[3])) { /*if*/
2307 variable
[3] = variable
[0];
2308 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("Object MUST have a to_s method."), TAG_Int(31)); /*new String*/
2309 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::error*/;
2311 return_label70
: while(false);
2312 tracehead
= trace
.prev
;
2315 val_t
typing___ASuperstringExpr___meth_with_capacity(val_t self
) {
2316 struct trace_t trace
= {NULL
, NULL
, 697, LOCATE_typing___ASuperstringExpr___meth_with_capacity
};
2317 val_t
*variable
= NULL
;
2318 void **closurevariable
= NULL
;
2319 trace
.prev
= tracehead
; tracehead
= &trace
;
2320 trace
.file
= LOCATE_typing
;
2321 tracehead
= trace
.prev
;
2322 return ATTR_typing___ASuperstringExpr____meth_with_capacity( self
) /*ASuperstringExpr::_meth_with_capacity*/;
2324 val_t
typing___ASuperstringExpr___meth_add(val_t self
) {
2325 struct trace_t trace
= {NULL
, NULL
, 698, LOCATE_typing___ASuperstringExpr___meth_add
};
2326 val_t
*variable
= NULL
;
2327 void **closurevariable
= NULL
;
2328 trace
.prev
= tracehead
; tracehead
= &trace
;
2329 trace
.file
= LOCATE_typing
;
2330 tracehead
= trace
.prev
;
2331 return ATTR_typing___ASuperstringExpr____meth_add( self
) /*ASuperstringExpr::_meth_add*/;
2333 val_t
typing___ASuperstringExpr___meth_to_s(val_t self
) {
2334 struct trace_t trace
= {NULL
, NULL
, 699, LOCATE_typing___ASuperstringExpr___meth_to_s
};
2335 val_t
*variable
= NULL
;
2336 void **closurevariable
= NULL
;
2337 trace
.prev
= tracehead
; tracehead
= &trace
;
2338 trace
.file
= LOCATE_typing
;
2339 tracehead
= trace
.prev
;
2340 return ATTR_typing___ASuperstringExpr____meth_to_s( self
) /*ASuperstringExpr::_meth_to_s*/;
2342 val_t
typing___ASuperstringExpr___atype(val_t self
) {
2343 struct trace_t trace
= {NULL
, NULL
, 700, LOCATE_typing___ASuperstringExpr___atype
};
2344 val_t
*variable
= NULL
;
2345 void **closurevariable
= NULL
;
2346 trace
.prev
= tracehead
; tracehead
= &trace
;
2347 trace
.file
= LOCATE_typing
;
2348 tracehead
= trace
.prev
;
2349 return ATTR_typing___ASuperstringExpr____atype( self
) /*ASuperstringExpr::_atype*/;
2351 void typing___ANullExpr___after_typing(val_t self
, val_t param0
) {
2352 struct trace_t trace
= {NULL
, NULL
, 715, LOCATE_typing___ANullExpr___after_typing
};
2354 void **closurevariable
= NULL
;
2355 trace
.prev
= tracehead
; tracehead
= &trace
;
2356 trace
.file
= LOCATE_typing
;
2358 variable
[1] = param0
;
2359 variable
[3] = variable
[0];
2360 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_none( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_none*/;
2361 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
2362 return_label74
: while(false);
2363 tracehead
= trace
.prev
;
2366 void typing___AArrayExpr___after_typing(val_t self
, val_t param0
) {
2367 struct trace_t trace
= {NULL
, NULL
, 725, LOCATE_typing___AArrayExpr___after_typing
};
2369 void **closurevariable
= NULL
;
2370 trace
.prev
= tracehead
; tracehead
= &trace
;
2371 trace
.file
= LOCATE_typing
;
2373 variable
[1] = param0
;
2374 variable
[3] = NIT_NULL
/*null*/;
2375 variable
[4] = variable
[0];
2376 variable
[4] = CALL_parser_nodes___AArrayExpr___n_exprs(variable
[4])(variable
[4]) /*AArrayExpr::n_exprs*/;
2377 variable
[4] = CALL_abstract_collection___Collection___iterator(variable
[4])(variable
[4]) /*List::iterator*/;
2378 while (true) { /*for*/
2379 variable
[5] = CALL_abstract_collection___Iterator___is_ok(variable
[4])(variable
[4]) /*ListIterator::is_ok*/;
2380 if (!UNTAG_Bool(variable
[5])) break; /*for*/
2381 variable
[5] = CALL_abstract_collection___Iterator___item(variable
[4])(variable
[4]) /*ListIterator::item*/;
2382 variable
[6] = variable
[5];
2383 variable
[8] = CALL_syntax_base___PExpr___stype( variable
[6] /*n*/)( variable
[6] /*n*/) /*PExpr::stype*/;
2384 variable
[7] = variable
[8];
2385 variable
[8] = TAG_Bool(( variable
[3] /*stype*/ == NIT_NULL
/*null*/) || (( variable
[3] /*stype*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*stype*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*stype*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*stype*/)( variable
[3] /*stype*/, NIT_NULL
/*null*/) /*Object::==*/)))));
2386 variable
[9] = variable
[8];
2387 if (!UNTAG_Bool(variable
[9])) { /* or */
2388 variable
[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[7] /*ntype*/ == NIT_NULL
/*null*/) || (( variable
[7] /*ntype*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[7] /*ntype*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[7] /*ntype*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[7] /*ntype*/)( variable
[7] /*ntype*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
2389 variable
[10] = variable
[9];
2390 if (UNTAG_Bool(variable
[10])) { /* and */
2391 variable
[10] = CALL_static_type___MMType_____l( variable
[3] /*stype*/)( variable
[3] /*stype*/, variable
[7] /*ntype*/) /*MMType::<*/;
2393 variable
[9] = variable
[10];
2395 variable
[8] = variable
[9];
2396 if (UNTAG_Bool(variable
[8])) { /*if*/
2397 variable
[3] = variable
[7] /*ntype*/ /*stype=*/;
2399 continue_76
: while(0);
2400 CALL_abstract_collection___Iterator___next(variable
[4])(variable
[4]) /*ListIterator::next*/;
2403 variable
[4] = variable
[0];
2404 variable
[4] = CALL_parser_nodes___AArrayExpr___n_exprs(variable
[4])(variable
[4]) /*AArrayExpr::n_exprs*/;
2405 variable
[4] = CALL_abstract_collection___Collection___iterator(variable
[4])(variable
[4]) /*List::iterator*/;
2406 while (true) { /*for*/
2407 variable
[5] = CALL_abstract_collection___Iterator___is_ok(variable
[4])(variable
[4]) /*ListIterator::is_ok*/;
2408 if (!UNTAG_Bool(variable
[5])) break; /*for*/
2409 variable
[5] = CALL_abstract_collection___Iterator___item(variable
[4])(variable
[4]) /*ListIterator::item*/;
2410 variable
[6] = variable
[5];
2411 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6] /*n*/, variable
[3] /*stype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
2412 continue_77
: while(0);
2413 CALL_abstract_collection___Iterator___next(variable
[4])(variable
[4]) /*ListIterator::next*/;
2416 variable
[4] = variable
[0];
2417 CALL_typing___AArrayExpr___do_typing(variable
[4])(variable
[4], variable
[1] /*v*/, variable
[3] /*stype*/) /*AArrayExpr::do_typing*/;
2418 return_label75
: while(false);
2419 tracehead
= trace
.prev
;
2422 val_t
typing___AArrayExpr___meth_with_capacity(val_t self
) {
2423 struct trace_t trace
= {NULL
, NULL
, 722, LOCATE_typing___AArrayExpr___meth_with_capacity
};
2424 val_t
*variable
= NULL
;
2425 void **closurevariable
= NULL
;
2426 trace
.prev
= tracehead
; tracehead
= &trace
;
2427 trace
.file
= LOCATE_typing
;
2428 tracehead
= trace
.prev
;
2429 return ATTR_typing___AArrayExpr____meth_with_capacity( self
) /*AArrayExpr::_meth_with_capacity*/;
2431 val_t
typing___AArrayExpr___meth_add(val_t self
) {
2432 struct trace_t trace
= {NULL
, NULL
, 723, LOCATE_typing___AArrayExpr___meth_add
};
2433 val_t
*variable
= NULL
;
2434 void **closurevariable
= NULL
;
2435 trace
.prev
= tracehead
; tracehead
= &trace
;
2436 trace
.file
= LOCATE_typing
;
2437 tracehead
= trace
.prev
;
2438 return ATTR_typing___AArrayExpr____meth_add( self
) /*AArrayExpr::_meth_add*/;
2440 void typing___AArrayExpr___do_typing(val_t self
, val_t param0
, val_t param1
) {
2441 struct trace_t trace
= {NULL
, NULL
, 740, LOCATE_typing___AArrayExpr___do_typing
};
2442 static val_t once_value_79
; static int once_bool_79
; /* Once value for variable[6]*/
2443 static val_t once_value_80
; static int once_bool_80
; /* Once value for variable[6]*/
2445 void **closurevariable
= NULL
;
2446 trace
.prev
= tracehead
; tracehead
= &trace
;
2447 trace
.file
= LOCATE_typing
;
2449 variable
[1] = param0
;
2450 variable
[2] = param1
;
2451 variable
[4] = variable
[0];
2452 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_array( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[2] /*element_type*/) /*AbsSyntaxVisitor::type_array*/;
2453 ATTR_typing___PExpr____stype(variable
[4]) /*PExpr::_stype*/ = variable
[5];
2454 variable
[4] = variable
[0];
2455 variable
[5] = variable
[0];
2456 variable
[5] = ATTR_typing___PExpr____stype(variable
[5]) /*PExpr::_stype*/;
2457 variable
[5] = CALL_static_type___MMType___local_class(variable
[5])(variable
[5]) /*MMType::local_class*/;
2458 if (once_bool_79
) variable
[6] = once_value_79
;
2460 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("with_capacity"), TAG_Int(13)); /*new String*/
2461 variable
[6] = CALL_symbol___String___to_symbol(variable
[6])(variable
[6]) /*String::to_symbol*/;
2462 once_value_79
= variable
[6];
2463 once_bool_79
= true;
2465 variable
[5] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[5])(variable
[5], variable
[6]) /*MMLocalClass::select_method*/;
2466 ATTR_typing___AArrayExpr____meth_with_capacity(variable
[4]) /*AArrayExpr::_meth_with_capacity*/ = variable
[5];
2467 variable
[4] = variable
[0];
2468 variable
[4] = ATTR_typing___AArrayExpr____meth_with_capacity(variable
[4]) /*AArrayExpr::_meth_with_capacity*/;
2469 variable
[4] = TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))));
2470 if (UNTAG_Bool(variable
[4])) { /*if*/
2471 variable
[4] = variable
[0];
2472 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
2473 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2474 variable
[7] = variable
[6];
2475 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[7]) /*AbstractArray::add*/;
2476 variable
[8] = variable
[0];
2477 variable
[8] = ATTR_typing___PExpr____stype(variable
[8]) /*PExpr::_stype*/;
2478 variable
[9] = variable
[8];
2479 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
2480 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[9]) /*AbstractArray::add*/;
2481 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have a with_capacity method."), TAG_Int(34)); /*new String*/
2482 variable
[11] = variable
[10];
2483 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[11]) /*AbstractArray::add*/;
2484 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
2485 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
2487 variable
[4] = variable
[0];
2488 variable
[5] = variable
[0];
2489 variable
[5] = ATTR_typing___PExpr____stype(variable
[5]) /*PExpr::_stype*/;
2490 variable
[5] = CALL_static_type___MMType___local_class(variable
[5])(variable
[5]) /*MMType::local_class*/;
2491 if (once_bool_80
) variable
[6] = once_value_80
;
2493 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("add"), TAG_Int(3)); /*new String*/
2494 variable
[6] = CALL_symbol___String___to_symbol(variable
[6])(variable
[6]) /*String::to_symbol*/;
2495 once_value_80
= variable
[6];
2496 once_bool_80
= true;
2498 variable
[5] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[5])(variable
[5], variable
[6]) /*MMLocalClass::select_method*/;
2499 ATTR_typing___AArrayExpr____meth_add(variable
[4]) /*AArrayExpr::_meth_add*/ = variable
[5];
2500 variable
[4] = variable
[0];
2501 variable
[4] = ATTR_typing___AArrayExpr____meth_add(variable
[4]) /*AArrayExpr::_meth_add*/;
2502 variable
[4] = TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))));
2503 if (UNTAG_Bool(variable
[4])) { /*if*/
2504 variable
[4] = variable
[0];
2505 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
2506 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2507 variable
[7] = variable
[6];
2508 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[7]) /*AbstractArray::add*/;
2509 variable
[8] = variable
[0];
2510 variable
[8] = ATTR_typing___PExpr____stype(variable
[8]) /*PExpr::_stype*/;
2511 variable
[9] = variable
[8];
2512 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
2513 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[9]) /*AbstractArray::add*/;
2514 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have an add method."), TAG_Int(25)); /*new String*/
2515 variable
[11] = variable
[10];
2516 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[11]) /*AbstractArray::add*/;
2517 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
2518 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
2520 return_label78
: while(false);
2521 tracehead
= trace
.prev
;
2524 void typing___ARangeExpr___after_typing(val_t self
, val_t param0
) {
2525 struct trace_t trace
= {NULL
, NULL
, 753, LOCATE_typing___ARangeExpr___after_typing
};
2527 void **closurevariable
= NULL
;
2528 trace
.prev
= tracehead
; tracehead
= &trace
;
2529 trace
.file
= LOCATE_typing
;
2531 variable
[1] = param0
;
2532 variable
[4] = variable
[0];
2533 variable
[4] = CALL_parser_nodes___ARangeExpr___n_expr(variable
[4])(variable
[4]) /*ARangeExpr::n_expr*/;
2534 variable
[4] = CALL_syntax_base___PExpr___stype(variable
[4])(variable
[4]) /*PExpr::stype*/;
2535 variable
[3] = variable
[4];
2536 variable
[5] = variable
[0];
2537 variable
[5] = CALL_parser_nodes___ARangeExpr___n_expr2(variable
[5])(variable
[5]) /*ARangeExpr::n_expr2*/;
2538 variable
[5] = CALL_syntax_base___PExpr___stype(variable
[5])(variable
[5]) /*PExpr::stype*/;
2539 variable
[4] = variable
[5];
2540 variable
[5] = TAG_Bool(( variable
[3] /*ntype*/ == NIT_NULL
/*null*/) || (( variable
[3] /*ntype*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*ntype*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*ntype*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*ntype*/)( variable
[3] /*ntype*/, NIT_NULL
/*null*/) /*Object::==*/)))));
2541 variable
[6] = variable
[5];
2542 if (!UNTAG_Bool(variable
[6])) { /* or */
2543 variable
[6] = TAG_Bool(( variable
[3] /*ntype*/ == NIT_NULL
/*null*/) || (( variable
[3] /*ntype*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*ntype*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*ntype*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*ntype*/)( variable
[3] /*ntype*/, NIT_NULL
/*null*/) /*Object::==*/)))));
2545 variable
[5] = variable
[6];
2546 if (UNTAG_Bool(variable
[5])) { /*if*/
2547 goto return_label81
;
2549 variable
[5] = CALL_static_type___MMType_____l( variable
[3] /*ntype*/)( variable
[3] /*ntype*/, variable
[4] /*ntype2*/) /*MMType::<*/;
2550 if (UNTAG_Bool(variable
[5])) { /*if*/
2551 variable
[3] = variable
[4] /*ntype2*/ /*ntype=*/;
2553 variable
[5] = CALL_static_type___MMType_____l( variable
[4] /*ntype2*/)( variable
[4] /*ntype2*/, variable
[3] /*ntype*/) /*MMType::<*/;
2554 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[5])))) { /*if*/
2555 variable
[5] = variable
[0];
2556 variable
[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
2557 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)); /*new String*/
2558 variable
[8] = variable
[7];
2559 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[8]) /*AbstractArray::add*/;
2560 variable
[9] = variable
[3] /*ntype*/;
2561 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
2562 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[9]) /*AbstractArray::add*/;
2563 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(" incompatible with "), TAG_Int(19)); /*new String*/
2564 variable
[11] = variable
[10];
2565 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[11]) /*AbstractArray::add*/;
2566 variable
[12] = variable
[4] /*ntype2*/;
2567 variable
[12] = CALL_string___Object___to_s(variable
[12])(variable
[12]) /*Object::to_s*/;
2568 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[12]) /*AbstractArray::add*/;
2569 variable
[13] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
2570 variable
[14] = variable
[13];
2571 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[14]) /*AbstractArray::add*/;
2572 variable
[6] = CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/;
2573 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[6]) /*AbsSyntaxVisitor::error*/;
2574 goto return_label81
;
2577 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___type_discrete( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_discrete*/;
2578 variable
[5] = variable
[6];
2579 variable
[6] = variable
[0];
2580 variable
[6] = CALL_parser_nodes___ARangeExpr___n_expr(variable
[6])(variable
[6]) /*ARangeExpr::n_expr*/;
2581 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[5] /*dtype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
2582 variable
[6] = variable
[0];
2583 variable
[6] = CALL_parser_nodes___ARangeExpr___n_expr2(variable
[6])(variable
[6]) /*ARangeExpr::n_expr2*/;
2584 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[5] /*dtype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
2585 variable
[6] = variable
[0];
2586 variable
[7] = CALL_syntax_base___AbsSyntaxVisitor___type_range( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*ntype*/) /*AbsSyntaxVisitor::type_range*/;
2587 ATTR_typing___PExpr____stype(variable
[6]) /*PExpr::_stype*/ = variable
[7];
2588 return_label81
: while(false);
2589 tracehead
= trace
.prev
;
2592 val_t
typing___ARangeExpr___meth_init(val_t self
) {
2593 struct trace_t trace
= {NULL
, NULL
, 752, LOCATE_typing___ARangeExpr___meth_init
};
2594 val_t
*variable
= NULL
;
2595 void **closurevariable
= NULL
;
2596 trace
.prev
= tracehead
; tracehead
= &trace
;
2597 trace
.file
= LOCATE_typing
;
2598 tracehead
= trace
.prev
;
2599 return ATTR_typing___ARangeExpr____meth_init( self
) /*ARangeExpr::_meth_init*/;
2601 void typing___ACrangeExpr___after_typing(val_t self
, val_t param0
) {
2602 struct trace_t trace
= {NULL
, NULL
, 774, LOCATE_typing___ACrangeExpr___after_typing
};
2603 static val_t once_value_83
; static int once_bool_83
; /* Once value for variable[5]*/
2605 void **closurevariable
= NULL
;
2606 trace
.prev
= tracehead
; tracehead
= &trace
;
2607 trace
.file
= LOCATE_typing
;
2609 variable
[1] = param0
;
2610 CALL_SUPER_typing___ACrangeExpr___after_typing(variable
[0])(variable
[0], variable
[1]) /*super ACrangeExpr::after_typing*/;
2611 variable
[3] = variable
[0];
2612 variable
[4] = variable
[0];
2613 variable
[4] = CALL_syntax_base___PExpr___stype(variable
[4])(variable
[4]) /*PExpr::stype*/;
2614 variable
[4] = CALL_static_type___MMType___local_class(variable
[4])(variable
[4]) /*MMType::local_class*/;
2615 if (once_bool_83
) variable
[5] = once_value_83
;
2617 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
2618 variable
[5] = CALL_symbol___String___to_symbol(variable
[5])(variable
[5]) /*String::to_symbol*/;
2619 once_value_83
= variable
[5];
2620 once_bool_83
= true;
2622 variable
[4] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[4])(variable
[4], variable
[5]) /*MMLocalClass::select_method*/;
2623 ATTR_typing___ARangeExpr____meth_init(variable
[3]) /*ARangeExpr::_meth_init*/ = variable
[4];
2624 return_label82
: while(false);
2625 tracehead
= trace
.prev
;
2628 void typing___AOrangeExpr___after_typing(val_t self
, val_t param0
) {
2629 struct trace_t trace
= {NULL
, NULL
, 781, LOCATE_typing___AOrangeExpr___after_typing
};
2630 static val_t once_value_85
; static int once_bool_85
; /* Once value for variable[5]*/
2632 void **closurevariable
= NULL
;
2633 trace
.prev
= tracehead
; tracehead
= &trace
;
2634 trace
.file
= LOCATE_typing
;
2636 variable
[1] = param0
;
2637 CALL_SUPER_typing___AOrangeExpr___after_typing(variable
[0])(variable
[0], variable
[1]) /*super AOrangeExpr::after_typing*/;
2638 variable
[3] = variable
[0];
2639 variable
[4] = variable
[0];
2640 variable
[4] = CALL_syntax_base___PExpr___stype(variable
[4])(variable
[4]) /*PExpr::stype*/;
2641 variable
[4] = CALL_static_type___MMType___local_class(variable
[4])(variable
[4]) /*MMType::local_class*/;
2642 if (once_bool_85
) variable
[5] = once_value_85
;
2644 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("without_last"), TAG_Int(12)); /*new String*/
2645 variable
[5] = CALL_symbol___String___to_symbol(variable
[5])(variable
[5]) /*String::to_symbol*/;
2646 once_value_85
= variable
[5];
2647 once_bool_85
= true;
2649 variable
[4] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[4])(variable
[4], variable
[5]) /*MMLocalClass::select_method*/;
2650 ATTR_typing___ARangeExpr____meth_init(variable
[3]) /*ARangeExpr::_meth_init*/ = variable
[4];
2651 return_label84
: while(false);
2652 tracehead
= trace
.prev
;
2655 void typing___ASuperExpr___after_typing(val_t self
, val_t param0
) {
2656 struct trace_t trace
= {NULL
, NULL
, 793, LOCATE_typing___ASuperExpr___after_typing
};
2658 void **closurevariable
= NULL
;
2659 trace
.prev
= tracehead
; tracehead
= &trace
;
2660 trace
.file
= LOCATE_typing
;
2662 variable
[1] = param0
;
2663 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2664 variable
[4] = CALL_abstractmetamodel___MMLocalProperty___prhe(variable
[4])(variable
[4]) /*MMLocalProperty::prhe*/;
2665 variable
[4] = CALL_partial_order___PartialOrderElement___direct_greaters(variable
[4])(variable
[4]) /*PartialOrderElement::direct_greaters*/;
2666 variable
[3] = variable
[4];
2667 variable
[4] = CALL_abstract_collection___Collection___is_empty( variable
[3] /*precs*/)( variable
[3] /*precs*/) /*AbstractArray::is_empty*/;
2668 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[4])))) { /*if*/
2669 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2670 CALL_abstractmetamodel___MMLocalProperty___need_super__eq(variable
[4])(variable
[4], TAG_Bool(true)) /*MMLocalProperty::need_super=*/;
2672 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2673 variable
[4] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[4])(variable
[4]) /*MMLocalProperty::global*/;
2674 variable
[4] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[4])(variable
[4]) /*MMGlobalProperty::is_init*/;
2675 if (UNTAG_Bool(variable
[4])) { /*if*/
2676 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
2677 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2678 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___name(variable
[6])(variable
[6]) /*MMLocalProperty::name*/;
2679 variable
[5] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(variable
[5])(variable
[5], variable
[6]) /*MMLocalClass::super_methods_named*/;
2680 variable
[4] = variable
[5];
2681 variable
[5] = CALL_abstract_collection___Collection___iterator( variable
[4] /*base_precs*/)( variable
[4] /*base_precs*/) /*AbstractArray::iterator*/;
2682 while (true) { /*for*/
2683 variable
[6] = CALL_abstract_collection___Iterator___is_ok(variable
[5])(variable
[5]) /*ArrayIterator::is_ok*/;
2684 if (!UNTAG_Bool(variable
[6])) break; /*for*/
2685 variable
[6] = CALL_abstract_collection___Iterator___item(variable
[5])(variable
[5]) /*ArrayIterator::item*/;
2686 variable
[7] = variable
[6];
2687 variable
[8] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[7] /*p*/)( variable
[7] /*p*/) /*MMLocalProperty::global*/;
2688 variable
[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[8])(variable
[8]) /*MMGlobalProperty::is_init*/;
2689 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[8])))) { /*if*/
2690 variable
[8] = variable
[0];
2691 variable
[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
2692 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
2693 variable
[11] = variable
[10];
2694 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[11]) /*AbstractArray::add*/;
2695 variable
[12] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable
[7] /*p*/)( variable
[7] /*p*/) /*MMLocalProperty::local_class*/;
2696 variable
[13] = variable
[12];
2697 variable
[13] = CALL_string___Object___to_s(variable
[13])(variable
[13]) /*Object::to_s*/;
2698 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[13]) /*AbstractArray::add*/;
2699 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
2700 variable
[15] = variable
[14];
2701 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[15]) /*AbstractArray::add*/;
2702 variable
[16] = variable
[7] /*p*/;
2703 variable
[16] = CALL_string___Object___to_s(variable
[16])(variable
[16]) /*Object::to_s*/;
2704 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[16]) /*AbstractArray::add*/;
2705 variable
[17] = NEW_String_string___String___with_native(BOX_NativeString(" is not a constructor."), TAG_Int(22)); /*new String*/
2706 variable
[18] = variable
[17];
2707 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[18]) /*AbstractArray::add*/;
2708 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
2709 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[8], variable
[9]) /*AbsSyntaxVisitor::error*/;
2711 variable
[8] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
2712 variable
[9] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[7] /*p*/)( variable
[7] /*p*/) /*MMLocalProperty::global*/;
2713 variable
[8] = CALL_abstractmetamodel___MMLocalClass_____bra(variable
[8])(variable
[8], variable
[9]) /*MMLocalClass::[]*/;
2714 CALL_abstract_collection___SimpleCollection___add( variable
[3] /*precs*/)( variable
[3] /*precs*/, variable
[8]) /*AbstractArray::add*/;
2716 continue_87
: while(0);
2717 CALL_abstract_collection___Iterator___next(variable
[5])(variable
[5]) /*ArrayIterator::next*/;
2720 variable
[5] = CALL_abstract_collection___Collection___is_empty( variable
[3] /*precs*/)( variable
[3] /*precs*/) /*AbstractArray::is_empty*/;
2721 if (UNTAG_Bool(variable
[5])) { /*if*/
2722 variable
[5] = variable
[0];
2723 variable
[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
2724 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: No contructor named "), TAG_Int(27)); /*new String*/
2725 variable
[8] = variable
[7];
2726 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[8]) /*AbstractArray::add*/;
2727 variable
[9] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2728 variable
[9] = CALL_abstractmetamodel___MMLocalProperty___name(variable
[9])(variable
[9]) /*MMLocalProperty::name*/;
2729 variable
[10] = variable
[9];
2730 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
2731 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[10]) /*AbstractArray::add*/;
2732 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(" in superclasses."), TAG_Int(17)); /*new String*/
2733 variable
[12] = variable
[11];
2734 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[12]) /*AbstractArray::add*/;
2735 variable
[6] = CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/;
2736 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[6]) /*AbsSyntaxVisitor::error*/;
2737 goto return_label86
;
2739 variable
[5] = CALL_abstract_collection___Collection___length( variable
[3] /*precs*/)( variable
[3] /*precs*/) /*AbstractArray::length*/;
2740 variable
[5] = TAG_Bool(UNTAG_Int(variable
[5])>UNTAG_Int( TAG_Int(1)));
2741 if (UNTAG_Bool(variable
[5])) { /*if*/
2742 variable
[5] = variable
[0];
2743 variable
[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
2744 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: Conflicting contructors named "), TAG_Int(37)); /*new String*/
2745 variable
[8] = variable
[7];
2746 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[8]) /*AbstractArray::add*/;
2747 variable
[9] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2748 variable
[9] = CALL_abstractmetamodel___MMLocalProperty___name(variable
[9])(variable
[9]) /*MMLocalProperty::name*/;
2749 variable
[10] = variable
[9];
2750 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
2751 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[10]) /*AbstractArray::add*/;
2752 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(" in superclasses: "), TAG_Int(18)); /*new String*/
2753 variable
[12] = variable
[11];
2754 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[12]) /*AbstractArray::add*/;
2755 variable
[13] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
2756 variable
[13] = CALL_string___Collection___join( variable
[3] /*precs*/)( variable
[3] /*precs*/, variable
[13]) /*Collection::join*/;
2757 variable
[14] = variable
[13];
2758 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[14]) /*AbstractArray::add*/;
2759 variable
[15] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
2760 variable
[16] = variable
[15];
2761 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[16]) /*AbstractArray::add*/;
2762 variable
[6] = CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/;
2763 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[6]) /*AbsSyntaxVisitor::error*/;
2764 goto return_label86
;
2767 variable
[6] = CALL_abstract_collection___Collection___first( variable
[4] /*base_precs*/)( variable
[4] /*base_precs*/) /*IndexedCollection::first*/;
2768 variable
[5] = variable
[6];
2769 variable
[6] = TAG_Bool(( variable
[5] /*p*/==NIT_NULL
) || VAL_ISA( variable
[5] /*p*/, COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
2770 if (!UNTAG_Bool(variable
[6])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing
, LOCATE_typing
, 815); nit_exit(1);}
2771 variable
[6] = variable
[0];
2772 ATTR_typing___ASuperExpr____init_in_superclass(variable
[6]) /*ASuperExpr::_init_in_superclass*/ = variable
[5] /*p*/;
2773 variable
[6] = variable
[0];
2774 CALL_typing___ASuperInitCall___register_super_init_call(variable
[6])(variable
[6], variable
[1] /*v*/, variable
[5] /*p*/) /*ASuperInitCall::register_super_init_call*/;
2775 variable
[6] = variable
[0];
2776 variable
[6] = CALL_parser_nodes___ASuperExpr___n_args(variable
[6])(variable
[6]) /*ASuperExpr::n_args*/;
2777 variable
[6] = CALL_abstract_collection___Collection___length(variable
[6])(variable
[6]) /*List::length*/;
2778 variable
[6] = TAG_Bool(UNTAG_Int(variable
[6])>UNTAG_Int( TAG_Int(0)));
2779 if (UNTAG_Bool(variable
[6])) { /*if*/
2780 variable
[7] = variable
[0];
2781 variable
[8] = CALL_typing___TypingVisitor___self_var( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::self_var*/;
2782 variable
[8] = CALL_syntax_base___Variable___stype(variable
[8])(variable
[8]) /*Variable::stype*/;
2783 variable
[7] = CALL_typing___AAbsSendExpr___get_signature(variable
[7])(variable
[7], variable
[1] /*v*/, variable
[8], variable
[5] /*p*/, TAG_Bool(true)) /*AAbsSendExpr::get_signature*/;
2784 variable
[6] = variable
[7];
2785 variable
[7] = variable
[0];
2786 variable
[8] = variable
[0];
2787 variable
[9] = CALL_abstractmetamodel___MMLocalProperty___name( variable
[5] /*p*/)( variable
[5] /*p*/) /*MMLocalProperty::name*/;
2788 variable
[10] = variable
[0];
2789 variable
[10] = CALL_parser_nodes___ASuperExpr___n_args(variable
[10])(variable
[10]) /*ASuperExpr::n_args*/;
2790 variable
[10] = CALL_array___Collection___to_a(variable
[10])(variable
[10]) /*Collection::to_a*/;
2791 variable
[8] = CALL_typing___AAbsSendExpr___process_signature(variable
[8])(variable
[8], variable
[1] /*v*/, variable
[6] /*signature*/, variable
[9], variable
[10]) /*AAbsSendExpr::process_signature*/;
2792 ATTR_typing___AAbsSendExpr____arguments(variable
[7]) /*AAbsSendExpr::_arguments*/ = variable
[8];
2795 variable
[4] = variable
[0];
2796 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
2797 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: No super method to call for "), TAG_Int(35)); /*new String*/
2798 variable
[7] = variable
[6];
2799 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[7]) /*AbstractArray::add*/;
2800 variable
[8] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2801 variable
[9] = variable
[8];
2802 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
2803 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[9]) /*AbstractArray::add*/;
2804 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
2805 variable
[11] = variable
[10];
2806 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[11]) /*AbstractArray::add*/;
2807 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
2808 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
2809 goto return_label86
;
2812 variable
[4] = CALL_abstract_collection___Collection___first( variable
[3] /*precs*/)( variable
[3] /*precs*/) /*IndexedCollection::first*/;
2813 variable
[5] = CALL_typing___TypingVisitor___self_var( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::self_var*/;
2814 variable
[5] = CALL_syntax_base___Variable___stype(variable
[5])(variable
[5]) /*Variable::stype*/;
2815 variable
[4] = CALL_static_type___MMLocalProperty___signature_for(variable
[4])(variable
[4], variable
[5]) /*MMLocalProperty::signature_for*/;
2816 variable
[4] = CALL_static_type___MMSignature___return_type(variable
[4])(variable
[4]) /*MMSignature::return_type*/;
2817 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
2818 if (UNTAG_Bool(variable
[4])) { /*if*/
2819 variable
[5] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
2820 variable
[4] = variable
[5];
2821 variable
[5] = NIT_NULL
/*null*/;
2822 variable
[6] = CALL_abstract_collection___Collection___iterator( variable
[3] /*precs*/)( variable
[3] /*precs*/) /*AbstractArray::iterator*/;
2823 while (true) { /*for*/
2824 variable
[7] = CALL_abstract_collection___Iterator___is_ok(variable
[6])(variable
[6]) /*ArrayIterator::is_ok*/;
2825 if (!UNTAG_Bool(variable
[7])) break; /*for*/
2826 variable
[7] = CALL_abstract_collection___Iterator___item(variable
[6])(variable
[6]) /*ArrayIterator::item*/;
2827 variable
[8] = variable
[7];
2828 variable
[9] = TAG_Bool(( variable
[8] /*prop*/==NIT_NULL
) || VAL_ISA( variable
[8] /*prop*/, COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
2829 if (!UNTAG_Bool(variable
[9])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing
, LOCATE_typing
, 831); nit_exit(1);}
2830 variable
[10] = CALL_typing___TypingVisitor___self_var( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::self_var*/;
2831 variable
[10] = CALL_syntax_base___Variable___stype(variable
[10])(variable
[10]) /*Variable::stype*/;
2832 variable
[10] = CALL_static_type___MMLocalProperty___signature_for( variable
[8] /*prop*/)( variable
[8] /*prop*/, variable
[10]) /*MMLocalProperty::signature_for*/;
2833 variable
[10] = CALL_static_type___MMSignature___return_type(variable
[10])(variable
[10]) /*MMSignature::return_type*/;
2834 variable
[11] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
2835 variable
[10] = CALL_static_type___MMType___for_module(variable
[10])(variable
[10], variable
[11]) /*MMType::for_module*/;
2836 variable
[11] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2837 variable
[11] = CALL_static_type___MMLocalProperty___signature(variable
[11])(variable
[11]) /*MMLocalProperty::signature*/;
2838 variable
[11] = CALL_static_type___MMSignature___recv(variable
[11])(variable
[11]) /*MMSignature::recv*/;
2839 variable
[10] = CALL_static_type___MMType___adapt_to(variable
[10])(variable
[10], variable
[11]) /*MMType::adapt_to*/;
2840 variable
[9] = variable
[10];
2841 CALL_abstract_collection___SimpleCollection___add( variable
[4] /*stypes*/)( variable
[4] /*stypes*/, variable
[9] /*t*/) /*AbstractArray::add*/;
2842 variable
[10] = TAG_Bool(( variable
[5] /*stype*/ == NIT_NULL
/*null*/) || (( variable
[5] /*stype*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[5] /*stype*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[5] /*stype*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*stype*/)( variable
[5] /*stype*/, NIT_NULL
/*null*/) /*Object::==*/)))));
2843 variable
[11] = variable
[10];
2844 if (!UNTAG_Bool(variable
[11])) { /* or */
2845 variable
[11] = CALL_static_type___MMType_____l( variable
[5] /*stype*/)( variable
[5] /*stype*/, variable
[9] /*t*/) /*MMType::<*/;
2847 variable
[10] = variable
[11];
2848 if (UNTAG_Bool(variable
[10])) { /*if*/
2849 variable
[5] = variable
[9] /*t*/ /*stype=*/;
2851 continue_88
: while(0);
2852 CALL_abstract_collection___Iterator___next(variable
[6])(variable
[6]) /*ArrayIterator::next*/;
2855 variable
[6] = CALL_abstract_collection___Collection___iterator( variable
[4] /*stypes*/)( variable
[4] /*stypes*/) /*AbstractArray::iterator*/;
2856 while (true) { /*for*/
2857 variable
[7] = CALL_abstract_collection___Iterator___is_ok(variable
[6])(variable
[6]) /*ArrayIterator::is_ok*/;
2858 if (!UNTAG_Bool(variable
[7])) break; /*for*/
2859 variable
[7] = CALL_abstract_collection___Iterator___item(variable
[6])(variable
[6]) /*ArrayIterator::item*/;
2860 variable
[8] = variable
[7];
2861 variable
[9] = variable
[0];
2862 CALL_syntax_base___AbsSyntaxVisitor___check_conform( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[9], variable
[8] /*t*/, variable
[5] /*stype*/) /*AbsSyntaxVisitor::check_conform*/;
2863 continue_89
: while(0);
2864 CALL_abstract_collection___Iterator___next(variable
[6])(variable
[6]) /*ArrayIterator::next*/;
2867 variable
[6] = variable
[0];
2868 ATTR_typing___PExpr____stype(variable
[6]) /*PExpr::_stype*/ = variable
[5] /*stype*/;
2870 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2871 variable
[4] = variable
[5];
2872 variable
[5] = TAG_Bool(( variable
[4] /*p*/==NIT_NULL
) || VAL_ISA( variable
[4] /*p*/, COLOR_MMSrcMethod
, ID_MMSrcMethod
)) /*cast MMSrcMethod*/;
2873 if (!UNTAG_Bool(variable
[5])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing
, LOCATE_typing
, 844); nit_exit(1);}
2874 variable
[5] = variable
[0];
2875 ATTR_typing___AAbsSendExpr____prop(variable
[5]) /*AAbsSendExpr::_prop*/ = variable
[4] /*p*/;
2876 return_label86
: while(false);
2877 tracehead
= trace
.prev
;
2880 val_t
typing___ASuperExpr___init_in_superclass(val_t self
) {
2881 struct trace_t trace
= {NULL
, NULL
, 791, LOCATE_typing___ASuperExpr___init_in_superclass
};
2882 val_t
*variable
= NULL
;
2883 void **closurevariable
= NULL
;
2884 trace
.prev
= tracehead
; tracehead
= &trace
;
2885 trace
.file
= LOCATE_typing
;
2886 tracehead
= trace
.prev
;
2887 return ATTR_typing___ASuperExpr____init_in_superclass( self
) /*ASuperExpr::_init_in_superclass*/;
2889 val_t
typing___AAttrFormExpr___prop(val_t self
) {
2890 struct trace_t trace
= {NULL
, NULL
, 850, LOCATE_typing___AAttrFormExpr___prop
};
2891 val_t
*variable
= NULL
;
2892 void **closurevariable
= NULL
;
2893 trace
.prev
= tracehead
; tracehead
= &trace
;
2894 trace
.file
= LOCATE_typing
;
2895 tracehead
= trace
.prev
;
2896 return ATTR_typing___AAttrFormExpr____prop( self
) /*AAttrFormExpr::_prop*/;
2898 val_t
typing___AAttrFormExpr___attr_type(val_t self
) {
2899 struct trace_t trace
= {NULL
, NULL
, 853, LOCATE_typing___AAttrFormExpr___attr_type
};
2900 val_t
*variable
= NULL
;
2901 void **closurevariable
= NULL
;
2902 trace
.prev
= tracehead
; tracehead
= &trace
;
2903 trace
.file
= LOCATE_typing
;
2904 tracehead
= trace
.prev
;
2905 return ATTR_typing___AAttrFormExpr____attr_type( self
) /*AAttrFormExpr::_attr_type*/;
2907 void typing___AAttrFormExpr___do_typing(val_t self
, val_t param0
) {
2908 struct trace_t trace
= {NULL
, NULL
, 856, LOCATE_typing___AAttrFormExpr___do_typing
};
2910 void **closurevariable
= NULL
;
2911 trace
.prev
= tracehead
; tracehead
= &trace
;
2912 trace
.file
= LOCATE_typing
;
2914 variable
[1] = param0
;
2915 variable
[3] = variable
[0];
2916 variable
[3] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable
[3])(variable
[3]) /*AAttrFormExpr::n_expr*/;
2917 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*AbsSyntaxVisitor::check_expr*/;
2918 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
2919 goto return_label90
;
2921 variable
[4] = variable
[0];
2922 variable
[4] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable
[4])(variable
[4]) /*AAttrFormExpr::n_expr*/;
2923 variable
[4] = CALL_syntax_base___PExpr___stype(variable
[4])(variable
[4]) /*PExpr::stype*/;
2924 variable
[3] = variable
[4];
2925 variable
[5] = variable
[0];
2926 variable
[5] = CALL_parser_nodes___AAttrFormExpr___n_id(variable
[5])(variable
[5]) /*AAttrFormExpr::n_id*/;
2927 variable
[5] = CALL_syntax_base___Token___to_symbol(variable
[5])(variable
[5]) /*Token::to_symbol*/;
2928 variable
[4] = variable
[5];
2929 variable
[6] = CALL_static_type___MMType___local_class( variable
[3] /*type_recv*/)( variable
[3] /*type_recv*/) /*MMType::local_class*/;
2930 variable
[6] = CALL_abstractmetamodel___MMLocalClass___select_attribute(variable
[6])(variable
[6], variable
[4] /*name*/) /*MMLocalClass::select_attribute*/;
2931 variable
[5] = variable
[6];
2932 variable
[6] = TAG_Bool(( variable
[5] /*prop*/ == NIT_NULL
/*null*/) || (( variable
[5] /*prop*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[5] /*prop*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[5] /*prop*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*prop*/)( variable
[5] /*prop*/, NIT_NULL
/*null*/) /*Object::==*/)))));
2933 if (UNTAG_Bool(variable
[6])) { /*if*/
2934 variable
[6] = variable
[0];
2935 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
2936 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attribute "), TAG_Int(17)); /*new String*/
2937 variable
[9] = variable
[8];
2938 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[9]) /*AbstractArray::add*/;
2939 variable
[10] = variable
[4] /*name*/;
2940 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
2941 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[10]) /*AbstractArray::add*/;
2942 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(" doesn't exists in "), TAG_Int(19)); /*new String*/
2943 variable
[12] = variable
[11];
2944 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[12]) /*AbstractArray::add*/;
2945 variable
[13] = variable
[3] /*type_recv*/;
2946 variable
[13] = CALL_string___Object___to_s(variable
[13])(variable
[13]) /*Object::to_s*/;
2947 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[13]) /*AbstractArray::add*/;
2948 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
2949 variable
[15] = variable
[14];
2950 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[15]) /*AbstractArray::add*/;
2951 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
2952 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[7]) /*AbsSyntaxVisitor::error*/;
2953 goto return_label90
;
2955 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
2956 variable
[7] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[5] /*prop*/)( variable
[5] /*prop*/) /*MMLocalProperty::global*/;
2957 variable
[7] = CALL_abstractmetamodel___MMGlobalProperty___local_class(variable
[7])(variable
[7]) /*MMGlobalProperty::local_class*/;
2958 variable
[7] = CALL_abstractmetamodel___MMLocalClass___module(variable
[7])(variable
[7]) /*MMLocalClass::module*/;
2959 variable
[6] = CALL_abstractmetamodel___MMModule___visibility_for(variable
[6])(variable
[6], variable
[7]) /*MMModule::visibility_for*/;
2960 variable
[6] = TAG_Bool(UNTAG_Int(variable
[6])<UNTAG_Int( TAG_Int(3)));
2961 if (UNTAG_Bool(variable
[6])) { /*if*/
2962 variable
[6] = variable
[0];
2963 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
2964 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attribute "), TAG_Int(17)); /*new String*/
2965 variable
[9] = variable
[8];
2966 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[9]) /*AbstractArray::add*/;
2967 variable
[10] = variable
[4] /*name*/;
2968 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
2969 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[10]) /*AbstractArray::add*/;
2970 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(" from "), TAG_Int(6)); /*new String*/
2971 variable
[12] = variable
[11];
2972 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[12]) /*AbstractArray::add*/;
2973 variable
[13] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[5] /*prop*/)( variable
[5] /*prop*/) /*MMLocalProperty::global*/;
2974 variable
[13] = CALL_abstractmetamodel___MMGlobalProperty___local_class(variable
[13])(variable
[13]) /*MMGlobalProperty::local_class*/;
2975 variable
[13] = CALL_abstractmetamodel___MMLocalClass___module(variable
[13])(variable
[13]) /*MMLocalClass::module*/;
2976 variable
[14] = variable
[13];
2977 variable
[14] = CALL_string___Object___to_s(variable
[14])(variable
[14]) /*Object::to_s*/;
2978 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[14]) /*AbstractArray::add*/;
2979 variable
[15] = NEW_String_string___String___with_native(BOX_NativeString(" is invisible in "), TAG_Int(17)); /*new String*/
2980 variable
[16] = variable
[15];
2981 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[16]) /*AbstractArray::add*/;
2982 variable
[17] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
2983 variable
[18] = variable
[17];
2984 variable
[18] = CALL_string___Object___to_s(variable
[18])(variable
[18]) /*Object::to_s*/;
2985 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[18]) /*AbstractArray::add*/;
2986 variable
[19] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2987 variable
[20] = variable
[19];
2988 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[20]) /*AbstractArray::add*/;
2989 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
2990 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[7]) /*AbsSyntaxVisitor::error*/;
2993 variable
[6] = variable
[0];
2994 ATTR_typing___AAttrFormExpr____prop(variable
[6]) /*AAttrFormExpr::_prop*/ = variable
[5] /*prop*/;
2995 variable
[7] = CALL_static_type___MMLocalProperty___signature_for( variable
[5] /*prop*/)( variable
[5] /*prop*/, variable
[3] /*type_recv*/) /*MMLocalProperty::signature_for*/;
2996 variable
[7] = CALL_static_type___MMSignature___return_type(variable
[7])(variable
[7]) /*MMSignature::return_type*/;
2997 variable
[6] = variable
[7];
2998 variable
[7] = variable
[0];
2999 variable
[7] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable
[7])(variable
[7]) /*AAttrFormExpr::n_expr*/;
3000 variable
[7] = CALL_typing___PExpr___is_self(variable
[7])(variable
[7]) /*PExpr::is_self*/;
3001 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[7])))) { /*if*/
3002 variable
[7] = CALL_static_type___MMType___not_for_self( variable
[6] /*at*/)( variable
[6] /*at*/) /*MMType::not_for_self*/;
3003 variable
[6] = variable
[7] /*at=*/;
3005 variable
[7] = variable
[0];
3006 ATTR_typing___AAttrFormExpr____attr_type(variable
[7]) /*AAttrFormExpr::_attr_type*/ = variable
[6] /*at*/;
3007 return_label90
: while(false);
3008 tracehead
= trace
.prev
;
3011 void typing___AAttrExpr___after_typing(val_t self
, val_t param0
) {
3012 struct trace_t trace
= {NULL
, NULL
, 877, LOCATE_typing___AAttrExpr___after_typing
};
3014 void **closurevariable
= NULL
;
3015 trace
.prev
= tracehead
; tracehead
= &trace
;
3016 trace
.file
= LOCATE_typing
;
3018 variable
[1] = param0
;
3019 variable
[3] = variable
[0];
3020 CALL_typing___AAttrFormExpr___do_typing(variable
[3])(variable
[3], variable
[1] /*v*/) /*AAttrFormExpr::do_typing*/;
3021 variable
[3] = variable
[0];
3022 variable
[3] = CALL_typing___AAttrFormExpr___prop(variable
[3])(variable
[3]) /*AAttrFormExpr::prop*/;
3023 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
3024 if (UNTAG_Bool(variable
[3])) { /*if*/
3025 goto return_label91
;
3027 variable
[3] = variable
[0];
3028 variable
[4] = variable
[0];
3029 variable
[4] = CALL_typing___AAttrFormExpr___attr_type(variable
[4])(variable
[4]) /*AAttrFormExpr::attr_type*/;
3030 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
3031 return_label91
: while(false);
3032 tracehead
= trace
.prev
;
3035 void typing___AAttrAssignExpr___after_typing(val_t self
, val_t param0
) {
3036 struct trace_t trace
= {NULL
, NULL
, 888, LOCATE_typing___AAttrAssignExpr___after_typing
};
3038 void **closurevariable
= NULL
;
3039 trace
.prev
= tracehead
; tracehead
= &trace
;
3040 trace
.file
= LOCATE_typing
;
3042 variable
[1] = param0
;
3043 variable
[3] = variable
[0];
3044 CALL_typing___AAttrFormExpr___do_typing(variable
[3])(variable
[3], variable
[1] /*v*/) /*AAttrFormExpr::do_typing*/;
3045 variable
[3] = variable
[0];
3046 variable
[3] = CALL_typing___AAttrFormExpr___prop(variable
[3])(variable
[3]) /*AAttrFormExpr::prop*/;
3047 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
3048 if (UNTAG_Bool(variable
[3])) { /*if*/
3049 goto return_label92
;
3051 variable
[3] = variable
[0];
3052 variable
[3] = CALL_parser_nodes___AAssignFormExpr___n_value(variable
[3])(variable
[3]) /*AAssignFormExpr::n_value*/;
3053 variable
[4] = variable
[0];
3054 variable
[4] = CALL_typing___AAttrFormExpr___attr_type(variable
[4])(variable
[4]) /*AAttrFormExpr::attr_type*/;
3055 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
3056 return_label92
: while(false);
3057 tracehead
= trace
.prev
;
3060 void typing___AAttrReassignExpr___after_typing(val_t self
, val_t param0
) {
3061 struct trace_t trace
= {NULL
, NULL
, 899, LOCATE_typing___AAttrReassignExpr___after_typing
};
3063 void **closurevariable
= NULL
;
3064 trace
.prev
= tracehead
; tracehead
= &trace
;
3065 trace
.file
= LOCATE_typing
;
3067 variable
[1] = param0
;
3068 variable
[3] = variable
[0];
3069 CALL_typing___AAttrFormExpr___do_typing(variable
[3])(variable
[3], variable
[1] /*v*/) /*AAttrFormExpr::do_typing*/;
3070 variable
[3] = variable
[0];
3071 variable
[3] = CALL_typing___AAttrFormExpr___prop(variable
[3])(variable
[3]) /*AAttrFormExpr::prop*/;
3072 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
3073 if (UNTAG_Bool(variable
[3])) { /*if*/
3074 goto return_label93
;
3076 variable
[3] = variable
[0];
3077 variable
[4] = variable
[0];
3078 variable
[4] = CALL_typing___AAttrFormExpr___attr_type(variable
[4])(variable
[4]) /*AAttrFormExpr::attr_type*/;
3079 CALL_typing___AReassignFormExpr___do_lvalue_typing(variable
[3])(variable
[3], variable
[1] /*v*/, variable
[4]) /*AReassignFormExpr::do_lvalue_typing*/;
3080 return_label93
: while(false);
3081 tracehead
= trace
.prev
;
3084 val_t
typing___AAbsSendExpr___prop_signature(val_t self
) {
3085 struct trace_t trace
= {NULL
, NULL
, 911, LOCATE_typing___AAbsSendExpr___prop_signature
};
3086 val_t
*variable
= NULL
;
3087 void **closurevariable
= NULL
;
3088 trace
.prev
= tracehead
; tracehead
= &trace
;
3089 trace
.file
= LOCATE_typing
;
3090 tracehead
= trace
.prev
;
3091 return ATTR_typing___AAbsSendExpr____prop_signature( self
) /*AAbsSendExpr::_prop_signature*/;
3093 void typing___AAbsSendExpr___do_typing(val_t self
, val_t param0
, val_t param1
, val_t param2
, val_t param3
, val_t param4
, val_t param5
, val_t param6
) {
3094 struct trace_t trace
= {NULL
, NULL
, 914, LOCATE_typing___AAbsSendExpr___do_typing
};
3096 void **closurevariable
= NULL
;
3097 trace
.prev
= tracehead
; tracehead
= &trace
;
3098 trace
.file
= LOCATE_typing
;
3100 variable
[1] = param0
;
3101 variable
[2] = param1
;
3102 variable
[3] = param2
;
3103 variable
[4] = param3
;
3104 variable
[5] = param4
;
3105 variable
[6] = param5
;
3106 variable
[7] = param6
;
3107 variable
[10] = variable
[0];
3108 variable
[10] = CALL_typing___AAbsSendExpr___get_property(variable
[10])(variable
[10], variable
[1] /*v*/, variable
[2] /*type_recv*/, variable
[3] /*is_implicit_self*/, variable
[5] /*name*/) /*AAbsSendExpr::get_property*/;
3109 variable
[9] = variable
[10];
3110 variable
[10] = TAG_Bool(( variable
[9] /*prop*/ == NIT_NULL
/*null*/) || (( variable
[9] /*prop*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[9] /*prop*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[9] /*prop*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[9] /*prop*/)( variable
[9] /*prop*/, NIT_NULL
/*null*/) /*Object::==*/)))));
3111 if (UNTAG_Bool(variable
[10])) { /*if*/
3112 goto return_label94
;
3114 variable
[11] = variable
[0];
3115 variable
[11] = CALL_typing___AAbsSendExpr___get_signature(variable
[11])(variable
[11], variable
[1] /*v*/, variable
[2] /*type_recv*/, variable
[9] /*prop*/, variable
[4] /*recv_is_self*/) /*AAbsSendExpr::get_signature*/;
3116 variable
[10] = variable
[11];
3117 variable
[11] = TAG_Bool(( variable
[10] /*sig*/ == NIT_NULL
/*null*/) || (( variable
[10] /*sig*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[10] /*sig*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[10] /*sig*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[10] /*sig*/)( variable
[10] /*sig*/, NIT_NULL
/*null*/) /*Object::==*/)))));
3118 if (UNTAG_Bool(variable
[11])) { /*if*/
3119 goto return_label94
;
3121 variable
[12] = variable
[0];
3122 variable
[13] = CALL_abstractmetamodel___MMLocalProperty___name( variable
[9] /*prop*/)( variable
[9] /*prop*/) /*MMLocalProperty::name*/;
3123 variable
[12] = CALL_typing___AAbsSendExpr___process_signature(variable
[12])(variable
[12], variable
[1] /*v*/, variable
[10] /*sig*/, variable
[13], variable
[6] /*raw_args*/) /*AAbsSendExpr::process_signature*/;
3124 variable
[11] = variable
[12];
3125 variable
[12] = TAG_Bool(( variable
[11] /*args*/ == NIT_NULL
/*null*/) || (( variable
[11] /*args*/ != NIT_NULL
) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[11] /*args*/)( variable
[11] /*args*/, NIT_NULL
/*null*/) /*AbstractArray::==*/)));
3126 if (UNTAG_Bool(variable
[12])) { /*if*/
3127 goto return_label94
;
3129 variable
[13] = variable
[0];
3130 variable
[14] = CALL_abstractmetamodel___MMLocalProperty___name( variable
[9] /*prop*/)( variable
[9] /*prop*/) /*MMLocalProperty::name*/;
3131 variable
[13] = CALL_typing___AAbsSendExpr___process_closures(variable
[13])(variable
[13], variable
[1] /*v*/, variable
[10] /*sig*/, variable
[14], variable
[7] /*closure_defs*/) /*AAbsSendExpr::process_closures*/;
3132 variable
[12] = variable
[13];
3133 variable
[13] = variable
[0];
3134 ATTR_typing___AAbsSendExpr____prop(variable
[13]) /*AAbsSendExpr::_prop*/ = variable
[9] /*prop*/;
3135 variable
[13] = variable
[0];
3136 ATTR_typing___AAbsSendExpr____prop_signature(variable
[13]) /*AAbsSendExpr::_prop_signature*/ = variable
[10] /*sig*/;
3137 variable
[13] = variable
[0];
3138 ATTR_typing___AAbsSendExpr____arguments(variable
[13]) /*AAbsSendExpr::_arguments*/ = variable
[11] /*args*/;
3139 variable
[13] = variable
[0];
3140 ATTR_typing___AAbsSendExpr____return_type(variable
[13]) /*AAbsSendExpr::_return_type*/ = variable
[12] /*rtype*/;
3141 return_label94
: while(false);
3142 tracehead
= trace
.prev
;
3145 val_t
typing___AAbsSendExpr___get_property(val_t self
, val_t param0
, val_t param1
, val_t param2
, val_t param3
) {
3146 struct trace_t trace
= {NULL
, NULL
, 930, LOCATE_typing___AAbsSendExpr___get_property
};
3148 void **closurevariable
= NULL
;
3149 trace
.prev
= tracehead
; tracehead
= &trace
;
3150 trace
.file
= LOCATE_typing
;
3152 variable
[1] = param0
;
3153 variable
[2] = param1
;
3154 variable
[3] = param2
;
3155 variable
[4] = param3
;
3156 variable
[6] = TAG_Bool(( variable
[2] /*type_recv*/ == NIT_NULL
/*null*/) || (( variable
[2] /*type_recv*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[2] /*type_recv*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[2] /*type_recv*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[2] /*type_recv*/)( variable
[2] /*type_recv*/, NIT_NULL
/*null*/) /*Object::==*/)))));
3157 if (UNTAG_Bool(variable
[6])) { /*if*/
3158 variable
[5] = NIT_NULL
/*null*/;
3159 goto return_label95
;
3161 variable
[7] = CALL_static_type___MMType___local_class( variable
[2] /*type_recv*/)( variable
[2] /*type_recv*/) /*MMType::local_class*/;
3162 variable
[7] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[7])(variable
[7], variable
[4] /*name*/) /*MMLocalClass::select_method*/;
3163 variable
[6] = variable
[7];
3164 variable
[7] = TAG_Bool(( variable
[6] /*prop*/ == NIT_NULL
/*null*/) || (( variable
[6] /*prop*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[6] /*prop*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[6] /*prop*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[6] /*prop*/)( variable
[6] /*prop*/, NIT_NULL
/*null*/) /*Object::==*/)))));
3165 variable
[8] = variable
[7];
3166 if (UNTAG_Bool(variable
[8])) { /* and */
3167 variable
[8] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
3168 variable
[8] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[8])(variable
[8]) /*MMLocalProperty::global*/;
3169 variable
[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[8])(variable
[8]) /*MMGlobalProperty::is_init*/;
3171 variable
[7] = variable
[8];
3172 if (UNTAG_Bool(variable
[7])) { /*if*/
3173 variable
[8] = CALL_static_type___MMType___local_class( variable
[2] /*type_recv*/)( variable
[2] /*type_recv*/) /*MMType::local_class*/;
3174 variable
[8] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(variable
[8])(variable
[8], variable
[4] /*name*/) /*MMLocalClass::super_methods_named*/;
3175 variable
[7] = variable
[8];
3176 variable
[8] = CALL_abstract_collection___Collection___length( variable
[7] /*props*/)( variable
[7] /*props*/) /*AbstractArray::length*/;
3177 variable
[8] = TAG_Bool(UNTAG_Int(variable
[8])>UNTAG_Int( TAG_Int(1)));
3178 if (UNTAG_Bool(variable
[8])) { /*if*/
3179 variable
[8] = variable
[0];
3180 variable
[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
3181 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Ambigous method name '"), TAG_Int(29)); /*new String*/
3182 variable
[11] = variable
[10];
3183 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[11]) /*AbstractArray::add*/;
3184 variable
[12] = variable
[4] /*name*/;
3185 variable
[12] = CALL_string___Object___to_s(variable
[12])(variable
[12]) /*Object::to_s*/;
3186 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[12]) /*AbstractArray::add*/;
3187 variable
[13] = NEW_String_string___String___with_native(BOX_NativeString("' for "), TAG_Int(6)); /*new String*/
3188 variable
[14] = variable
[13];
3189 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[14]) /*AbstractArray::add*/;
3190 variable
[15] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
3191 variable
[15] = CALL_string___Collection___join( variable
[7] /*props*/)( variable
[7] /*props*/, variable
[15]) /*Collection::join*/;
3192 variable
[16] = variable
[15];
3193 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[16]) /*AbstractArray::add*/;
3194 variable
[17] = NEW_String_string___String___with_native(BOX_NativeString(". Use explicit designation."), TAG_Int(27)); /*new String*/
3195 variable
[18] = variable
[17];
3196 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[18]) /*AbstractArray::add*/;
3197 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
3198 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[8], variable
[9]) /*AbsSyntaxVisitor::error*/;
3199 variable
[5] = NIT_NULL
/*null*/;
3200 goto return_label95
;
3202 variable
[8] = CALL_abstract_collection___Collection___length( variable
[7] /*props*/)( variable
[7] /*props*/) /*AbstractArray::length*/;
3203 variable
[8] = TAG_Bool((variable
[8])==( TAG_Int(1)));
3204 if (UNTAG_Bool(variable
[8])) { /*if*/
3205 variable
[9] = CALL_static_type___MMType___local_class( variable
[2] /*type_recv*/)( variable
[2] /*type_recv*/) /*MMType::local_class*/;
3206 variable
[10] = CALL_abstract_collection___Collection___first( variable
[7] /*props*/)( variable
[7] /*props*/) /*IndexedCollection::first*/;
3207 variable
[10] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[10])(variable
[10]) /*MMLocalProperty::global*/;
3208 variable
[9] = CALL_abstractmetamodel___MMLocalClass_____bra(variable
[9])(variable
[9], variable
[10]) /*MMLocalClass::[]*/;
3209 variable
[8] = variable
[9];
3210 variable
[9] = TAG_Bool(( variable
[8] /*p*/==NIT_NULL
) || VAL_ISA( variable
[8] /*p*/, COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
3211 if (!UNTAG_Bool(variable
[9])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_typing___AAbsSendExpr___get_property
, LOCATE_typing
, 941); nit_exit(1);}
3212 variable
[6] = variable
[8] /*p*/ /*prop=*/;
3216 variable
[7] = TAG_Bool(( variable
[6] /*prop*/ == NIT_NULL
/*null*/) || (( variable
[6] /*prop*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[6] /*prop*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[6] /*prop*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[6] /*prop*/)( variable
[6] /*prop*/, NIT_NULL
/*null*/) /*Object::==*/)))));
3217 if (UNTAG_Bool(variable
[7])) { /*if*/
3218 if (UNTAG_Bool( variable
[3] /*is_implicit_self*/)) { /*if*/
3219 variable
[7] = variable
[0];
3220 variable
[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
3221 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Method or variable '"), TAG_Int(27)); /*new String*/
3222 variable
[10] = variable
[9];
3223 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[10]) /*AbstractArray::add*/;
3224 variable
[11] = variable
[4] /*name*/;
3225 variable
[11] = CALL_string___Object___to_s(variable
[11])(variable
[11]) /*Object::to_s*/;
3226 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[11]) /*AbstractArray::add*/;
3227 variable
[12] = NEW_String_string___String___with_native(BOX_NativeString("' unknown in "), TAG_Int(13)); /*new String*/
3228 variable
[13] = variable
[12];
3229 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[13]) /*AbstractArray::add*/;
3230 variable
[14] = variable
[2] /*type_recv*/;
3231 variable
[14] = CALL_string___Object___to_s(variable
[14])(variable
[14]) /*Object::to_s*/;
3232 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[14]) /*AbstractArray::add*/;
3233 variable
[15] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
3234 variable
[16] = variable
[15];
3235 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[16]) /*AbstractArray::add*/;
3236 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
3237 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[7], variable
[8]) /*AbsSyntaxVisitor::error*/;
3239 variable
[7] = variable
[0];
3240 variable
[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
3241 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Method '"), TAG_Int(15)); /*new String*/
3242 variable
[10] = variable
[9];
3243 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[10]) /*AbstractArray::add*/;
3244 variable
[11] = variable
[4] /*name*/;
3245 variable
[11] = CALL_string___Object___to_s(variable
[11])(variable
[11]) /*Object::to_s*/;
3246 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[11]) /*AbstractArray::add*/;
3247 variable
[12] = NEW_String_string___String___with_native(BOX_NativeString("' doesn't exists in "), TAG_Int(20)); /*new String*/
3248 variable
[13] = variable
[12];
3249 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[13]) /*AbstractArray::add*/;
3250 variable
[14] = variable
[2] /*type_recv*/;
3251 variable
[14] = CALL_string___Object___to_s(variable
[14])(variable
[14]) /*Object::to_s*/;
3252 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[14]) /*AbstractArray::add*/;
3253 variable
[15] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
3254 variable
[16] = variable
[15];
3255 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[16]) /*AbstractArray::add*/;
3256 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
3257 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[7], variable
[8]) /*AbsSyntaxVisitor::error*/;
3259 variable
[5] = NIT_NULL
/*null*/;
3260 goto return_label95
;
3262 variable
[5] = variable
[6] /*prop*/;
3263 goto return_label95
;
3264 return_label95
: while(false);
3265 tracehead
= trace
.prev
;
3268 val_t
typing___AAbsSendExpr___get_signature(val_t self
, val_t param0
, val_t param1
, val_t param2
, val_t param3
) {
3269 struct trace_t trace
= {NULL
, NULL
, 957, LOCATE_typing___AAbsSendExpr___get_signature
};
3271 void **closurevariable
= NULL
;
3272 trace
.prev
= tracehead
; tracehead
= &trace
;
3273 trace
.file
= LOCATE_typing
;
3275 variable
[1] = param0
;
3276 variable
[2] = param1
;
3277 variable
[3] = param2
;
3278 variable
[4] = param3
;
3279 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[3] /*prop*/)( variable
[3] /*prop*/) /*MMLocalProperty::global*/;
3280 variable
[7] = variable
[0];
3281 variable
[8] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
3282 CALL_syntax_base___MMGlobalProperty___check_visibility(variable
[6])(variable
[6], variable
[1] /*v*/, variable
[7], variable
[8], variable
[4] /*recv_is_self*/) /*MMGlobalProperty::check_visibility*/;
3283 variable
[7] = CALL_static_type___MMLocalProperty___signature_for( variable
[3] /*prop*/)( variable
[3] /*prop*/, variable
[2] /*type_recv*/) /*MMLocalProperty::signature_for*/;
3284 variable
[6] = variable
[7];
3285 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable
[4] /*recv_is_self*/)))) { /*if*/
3286 variable
[7] = CALL_static_type___MMSignature___not_for_self( variable
[6] /*psig*/)( variable
[6] /*psig*/) /*MMSignature::not_for_self*/;
3287 variable
[6] = variable
[7] /*psig=*/;
3289 variable
[5] = variable
[6] /*psig*/;
3290 goto return_label96
;
3291 return_label96
: while(false);
3292 tracehead
= trace
.prev
;
3295 val_t
typing___AAbsSendExpr___process_signature(val_t self
, val_t param0
, val_t param1
, val_t param2
, val_t param3
) {
3296 struct trace_t trace
= {NULL
, NULL
, 966, LOCATE_typing___AAbsSendExpr___process_signature
};
3298 void **closurevariable
= NULL
;
3299 trace
.prev
= tracehead
; tracehead
= &trace
;
3300 trace
.file
= LOCATE_typing
;
3302 variable
[1] = param0
;
3303 variable
[2] = param1
;
3304 variable
[3] = param2
;
3305 variable
[4] = param3
;
3306 variable
[7] = CALL_vararg___MMSignature___vararg_rank( variable
[2] /*psig*/)( variable
[2] /*psig*/) /*MMSignature::vararg_rank*/;
3307 variable
[6] = variable
[7];
3308 variable
[8] = CALL_static_type___MMSignature___arity( variable
[2] /*psig*/)( variable
[2] /*psig*/) /*MMSignature::arity*/;
3309 variable
[7] = variable
[8];
3310 /*variable[8] is variable raw_arity*/
3311 variable
[9] = TAG_Bool(( variable
[4] /*raw_args*/ == NIT_NULL
/*null*/) || (( variable
[4] /*raw_args*/ != NIT_NULL
) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*raw_args*/)( variable
[4] /*raw_args*/, NIT_NULL
/*null*/) /*AbstractArray::==*/)));
3312 if (UNTAG_Bool(variable
[9])) { /*if*/
3313 variable
[8] = TAG_Int(0) /*raw_arity=*/;
3315 variable
[9] = CALL_abstract_collection___Collection___length( variable
[4] /*raw_args*/)( variable
[4] /*raw_args*/) /*AbstractArray::length*/;
3316 variable
[8] = variable
[9] /*raw_arity=*/;
3318 variable
[9] = TAG_Bool(UNTAG_Int( variable
[7] /*par_arity*/)>UNTAG_Int( variable
[8] /*raw_arity*/));
3319 variable
[10] = variable
[9];
3320 if (!UNTAG_Bool(variable
[10])) { /* or */
3321 variable
[10] = TAG_Bool(( variable
[7] /*par_arity*/)!=( variable
[8] /*raw_arity*/));
3322 variable
[11] = variable
[10];
3323 if (UNTAG_Bool(variable
[11])) { /* and */
3324 variable
[11] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
3325 variable
[11] = TAG_Bool(( variable
[6] /*par_vararg*/)==(variable
[11]));
3327 variable
[10] = variable
[11];
3329 variable
[9] = variable
[10];
3330 if (UNTAG_Bool(variable
[9])) { /*if*/
3331 variable
[9] = variable
[0];
3332 variable
[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
3333 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: '"), TAG_Int(8)); /*new String*/
3334 variable
[12] = variable
[11];
3335 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[12]) /*AbstractArray::add*/;
3336 variable
[13] = variable
[3] /*name*/;
3337 variable
[13] = CALL_string___Object___to_s(variable
[13])(variable
[13]) /*Object::to_s*/;
3338 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[13]) /*AbstractArray::add*/;
3339 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString("' arity missmatch."), TAG_Int(18)); /*new String*/
3340 variable
[15] = variable
[14];
3341 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[15]) /*AbstractArray::add*/;
3342 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
3343 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[9], variable
[10]) /*AbsSyntaxVisitor::error*/;
3344 variable
[5] = NIT_NULL
/*null*/;
3345 goto return_label97
;
3347 variable
[9] = TAG_Int(0);
3348 variable
[11] = NEW_Array_array___Array___init(); /*new Array[PExpr]*/
3349 variable
[10] = variable
[11];
3350 variable
[11] = NEW_Range_range___Range___without_last( TAG_Int(0), variable
[7] /*par_arity*/); /*new Range[Int]*/
3351 variable
[11] = CALL_abstract_collection___Collection___iterator(variable
[11])(variable
[11]) /*Range::iterator*/;
3352 while (true) { /*for*/
3353 variable
[12] = CALL_abstract_collection___Iterator___is_ok(variable
[11])(variable
[11]) /*Iterator::is_ok*/;
3354 if (!UNTAG_Bool(variable
[12])) break; /*for*/
3355 variable
[12] = CALL_abstract_collection___Iterator___item(variable
[11])(variable
[11]) /*Iterator::item*/;
3356 variable
[13] = variable
[12];
3357 /*variable[14] is variable a*/
3358 variable
[16] = CALL_static_type___MMSignature_____bra( variable
[2] /*psig*/)( variable
[2] /*psig*/, variable
[13] /*par_idx*/) /*MMSignature::[]*/;
3359 variable
[15] = variable
[16];
3360 variable
[16] = TAG_Bool(( variable
[13] /*par_idx*/)==( variable
[6] /*par_vararg*/));
3361 if (UNTAG_Bool(variable
[16])) { /*if*/
3362 variable
[17] = NEW_Array_array___Array___init(); /*new Array[PExpr]*/
3363 variable
[16] = variable
[17];
3364 variable
[17] = TAG_Int(UNTAG_Int( variable
[8] /*raw_arity*/)-UNTAG_Int( variable
[7] /*par_arity*/));
3365 variable
[18] = NEW_Range_range___Range___init( TAG_Int(0), variable
[17]); /*new Range[Int]*/
3366 variable
[17] = variable
[18];
3367 variable
[17] = CALL_abstract_collection___Collection___iterator(variable
[17])(variable
[17]) /*Range::iterator*/;
3368 while (true) { /*for*/
3369 variable
[18] = CALL_abstract_collection___Iterator___is_ok(variable
[17])(variable
[17]) /*Iterator::is_ok*/;
3370 if (!UNTAG_Bool(variable
[18])) break; /*for*/
3371 variable
[18] = CALL_abstract_collection___Iterator___item(variable
[17])(variable
[17]) /*Iterator::item*/;
3372 variable
[19] = variable
[18];
3373 variable
[20] = variable
[4] /*raw_args*/;
3374 variable
[21] = variable
[9] /*arg_idx*/;
3375 variable
[23] = TAG_Bool(UNTAG_Int( variable
[21] /*index*/)>=UNTAG_Int( TAG_Int(0)));
3376 variable
[24] = variable
[23];
3377 if (UNTAG_Bool(variable
[24])) { /* and */
3378 variable
[24] = variable
[20];
3379 variable
[24] = ATTR_array___AbstractArray____length(variable
[24]) /*AbstractArray::_length*/;
3380 variable
[24] = TAG_Bool(UNTAG_Int( variable
[21] /*index*/)<UNTAG_Int(variable
[24]));
3382 variable
[23] = variable
[24];
3383 if (!UNTAG_Bool(variable
[23])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_typing
, 229); nit_exit(1);}
3384 variable
[23] = variable
[20];
3385 variable
[23] = ATTR_array___Array____items(variable
[23]) /*Array::_items*/;
3386 variable
[23] = UNBOX_NativeArray(variable
[23])[UNTAG_Int( variable
[21] /*index*/)];
3387 variable
[22] = variable
[23];
3388 goto return_label100
;
3389 return_label100
: while(false);
3390 variable
[20] = variable
[22];
3391 variable
[14] = variable
[20] /*a=*/;
3392 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[14] /*a*/, variable
[15] /*par_type*/) /*AbsSyntaxVisitor::check_conform_expr*/;
3393 CALL_abstract_collection___SimpleCollection___add( variable
[16] /*star*/)( variable
[16] /*star*/, variable
[14] /*a*/) /*AbstractArray::add*/;
3394 variable
[20] = TAG_Int(UNTAG_Int( variable
[9] /*arg_idx*/)+UNTAG_Int( TAG_Int(1)));
3395 variable
[9] = variable
[20] /*arg_idx=*/;
3396 continue_99
: while(0);
3397 CALL_abstract_collection___Iterator___next(variable
[17])(variable
[17]) /*Iterator::next*/;
3400 variable
[18] = NEW_AArrayExpr_parser_prod___AArrayExpr___init_aarrayexpr( variable
[16] /*star*/); /*new AArrayExpr*/
3401 variable
[17] = variable
[18];
3402 CALL_typing___AArrayExpr___do_typing( variable
[17] /*aa*/)( variable
[17] /*aa*/, variable
[1] /*v*/, variable
[15] /*par_type*/) /*AArrayExpr::do_typing*/;
3403 variable
[14] = variable
[17] /*aa*/ /*a=*/;
3405 variable
[16] = variable
[4] /*raw_args*/;
3406 variable
[17] = variable
[9] /*arg_idx*/;
3407 variable
[19] = TAG_Bool(UNTAG_Int( variable
[17] /*index*/)>=UNTAG_Int( TAG_Int(0)));
3408 variable
[20] = variable
[19];
3409 if (UNTAG_Bool(variable
[20])) { /* and */
3410 variable
[20] = variable
[16];
3411 variable
[20] = ATTR_array___AbstractArray____length(variable
[20]) /*AbstractArray::_length*/;
3412 variable
[20] = TAG_Bool(UNTAG_Int( variable
[17] /*index*/)<UNTAG_Int(variable
[20]));
3414 variable
[19] = variable
[20];
3415 if (!UNTAG_Bool(variable
[19])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_typing
, 229); nit_exit(1);}
3416 variable
[19] = variable
[16];
3417 variable
[19] = ATTR_array___Array____items(variable
[19]) /*Array::_items*/;
3418 variable
[19] = UNBOX_NativeArray(variable
[19])[UNTAG_Int( variable
[17] /*index*/)];
3419 variable
[18] = variable
[19];
3420 goto return_label101
;
3421 return_label101
: while(false);
3422 variable
[16] = variable
[18];
3423 variable
[14] = variable
[16] /*a=*/;
3424 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[14] /*a*/, variable
[15] /*par_type*/) /*AbsSyntaxVisitor::check_conform_expr*/;
3425 variable
[16] = TAG_Int(UNTAG_Int( variable
[9] /*arg_idx*/)+UNTAG_Int( TAG_Int(1)));
3426 variable
[9] = variable
[16] /*arg_idx=*/;
3428 CALL_abstract_collection___SimpleCollection___add( variable
[10] /*args*/)( variable
[10] /*args*/, variable
[14] /*a*/) /*AbstractArray::add*/;
3429 continue_98
: while(0);
3430 CALL_abstract_collection___Iterator___next(variable
[11])(variable
[11]) /*Iterator::next*/;
3433 variable
[5] = variable
[10] /*args*/;
3434 goto return_label97
;
3435 return_label97
: while(false);
3436 tracehead
= trace
.prev
;
3439 val_t
typing___AAbsSendExpr___process_closures(val_t self
, val_t param0
, val_t param1
, val_t param2
, val_t param3
) {
3440 struct trace_t trace
= {NULL
, NULL
, 1003, LOCATE_typing___AAbsSendExpr___process_closures
};
3442 void **closurevariable
= NULL
;
3443 trace
.prev
= tracehead
; tracehead
= &trace
;
3444 trace
.file
= LOCATE_typing
;
3446 variable
[1] = param0
;
3447 variable
[2] = param1
;
3448 variable
[3] = param2
;
3449 variable
[4] = param3
;
3450 variable
[7] = CALL_static_type___MMSignature___return_type( variable
[2] /*psig*/)( variable
[2] /*psig*/) /*MMSignature::return_type*/;
3451 variable
[6] = variable
[7];
3452 variable
[8] = CALL_static_type___MMSignature___closures( variable
[2] /*psig*/)( variable
[2] /*psig*/) /*MMSignature::closures*/;
3453 variable
[7] = variable
[8];
3454 variable
[8] = TAG_Int(0);
3455 variable
[9] = CALL_abstract_collection___Collection___iterator( variable
[7] /*cs*/)( variable
[7] /*cs*/) /*AbstractArray::iterator*/;
3456 while (true) { /*for*/
3457 variable
[10] = CALL_abstract_collection___Iterator___is_ok(variable
[9])(variable
[9]) /*ArrayIterator::is_ok*/;
3458 if (!UNTAG_Bool(variable
[10])) break; /*for*/
3459 variable
[10] = CALL_abstract_collection___Iterator___item(variable
[9])(variable
[9]) /*ArrayIterator::item*/;
3460 variable
[11] = variable
[10];
3461 variable
[12] = CALL_static_type___MMClosure___is_optional( variable
[11] /*c*/)( variable
[11] /*c*/) /*MMClosure::is_optional*/;
3462 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[12])))) { /*if*/
3463 variable
[8] = TAG_Int(UNTAG_Int(variable
[8])+UNTAG_Int( TAG_Int(1))) /*min_arity*/;
3465 continue_103
: while(0);
3466 CALL_abstract_collection___Iterator___next(variable
[9])(variable
[9]) /*ArrayIterator::next*/;
3468 break_103
: while(0);
3469 variable
[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*cd*/ == NIT_NULL
/*null*/) || (( variable
[4] /*cd*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*cd*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*cd*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*cd*/)( variable
[4] /*cd*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
3470 if (UNTAG_Bool(variable
[9])) { /*if*/
3471 variable
[9] = CALL_abstract_collection___Collection___length( variable
[7] /*cs*/)( variable
[7] /*cs*/) /*AbstractArray::length*/;
3472 variable
[9] = TAG_Bool((variable
[9])==( TAG_Int(0)));
3473 if (UNTAG_Bool(variable
[9])) { /*if*/
3474 variable
[9] = variable
[0];
3475 variable
[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
3476 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
3477 variable
[12] = variable
[11];
3478 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[12]) /*AbstractArray::add*/;
3479 variable
[13] = variable
[3] /*name*/;
3480 variable
[13] = CALL_string___Object___to_s(variable
[13])(variable
[13]) /*Object::to_s*/;
3481 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[13]) /*AbstractArray::add*/;
3482 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString(" does not require blocs."), TAG_Int(24)); /*new String*/
3483 variable
[15] = variable
[14];
3484 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[15]) /*AbstractArray::add*/;
3485 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
3486 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[9], variable
[10]) /*AbsSyntaxVisitor::error*/;
3488 variable
[9] = CALL_abstract_collection___Collection___length( variable
[4] /*cd*/)( variable
[4] /*cd*/) /*AbstractArray::length*/;
3489 variable
[10] = CALL_abstract_collection___Collection___length( variable
[7] /*cs*/)( variable
[7] /*cs*/) /*AbstractArray::length*/;
3490 variable
[9] = TAG_Bool(UNTAG_Int(variable
[9])>UNTAG_Int(variable
[10]));
3491 variable
[10] = variable
[9];
3492 if (!UNTAG_Bool(variable
[10])) { /* or */
3493 variable
[10] = CALL_abstract_collection___Collection___length( variable
[4] /*cd*/)( variable
[4] /*cd*/) /*AbstractArray::length*/;
3494 variable
[10] = TAG_Bool(UNTAG_Int(variable
[10])<UNTAG_Int( variable
[8] /*min_arity*/));
3496 variable
[9] = variable
[10];
3497 if (UNTAG_Bool(variable
[9])) { /*if*/
3498 variable
[9] = variable
[0];
3499 variable
[10] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
3500 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
3501 variable
[12] = variable
[11];
3502 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[12]) /*AbstractArray::add*/;
3503 variable
[13] = variable
[3] /*name*/;
3504 variable
[13] = CALL_string___Object___to_s(variable
[13])(variable
[13]) /*Object::to_s*/;
3505 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[13]) /*AbstractArray::add*/;
3506 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString(" requires "), TAG_Int(10)); /*new String*/
3507 variable
[15] = variable
[14];
3508 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[15]) /*AbstractArray::add*/;
3509 variable
[16] = CALL_abstract_collection___Collection___length( variable
[7] /*cs*/)( variable
[7] /*cs*/) /*AbstractArray::length*/;
3510 variable
[17] = variable
[16];
3511 variable
[17] = CALL_string___Object___to_s(variable
[17])(variable
[17]) /*Object::to_s*/;
3512 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[17]) /*AbstractArray::add*/;
3513 variable
[18] = NEW_String_string___String___with_native(BOX_NativeString(" blocs, "), TAG_Int(8)); /*new String*/
3514 variable
[19] = variable
[18];
3515 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[19]) /*AbstractArray::add*/;
3516 variable
[20] = CALL_abstract_collection___Collection___length( variable
[4] /*cd*/)( variable
[4] /*cd*/) /*AbstractArray::length*/;
3517 variable
[21] = variable
[20];
3518 variable
[21] = CALL_string___Object___to_s(variable
[21])(variable
[21]) /*Object::to_s*/;
3519 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[21]) /*AbstractArray::add*/;
3520 variable
[22] = NEW_String_string___String___with_native(BOX_NativeString(" found."), TAG_Int(7)); /*new String*/
3521 variable
[23] = variable
[22];
3522 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[23]) /*AbstractArray::add*/;
3523 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
3524 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[9], variable
[10]) /*AbsSyntaxVisitor::error*/;
3526 variable
[10] = CALL_typing___TypingVisitor___closure_break_stype( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::closure_break_stype*/;
3527 variable
[9] = variable
[10];
3528 variable
[11] = CALL_typing___TypingVisitor___break_list( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::break_list*/;
3529 variable
[10] = variable
[11];
3530 CALL_typing___TypingVisitor___closure_break_stype__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6] /*t*/) /*TypingVisitor::closure_break_stype=*/;
3531 variable
[11] = NEW_Array_array___Array___init(); /*new Array[ABreakExpr]*/
3532 CALL_typing___TypingVisitor___break_list__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[11]) /*TypingVisitor::break_list=*/;
3533 variable
[11] = CALL_abstract_collection___Collection___length( variable
[4] /*cd*/)( variable
[4] /*cd*/) /*AbstractArray::length*/;
3534 variable
[12] = NEW_Range_range___Range___without_last( TAG_Int(0), variable
[11]); /*new Range[Int]*/
3535 variable
[11] = variable
[12];
3536 variable
[11] = CALL_abstract_collection___Collection___iterator(variable
[11])(variable
[11]) /*Range::iterator*/;
3537 while (true) { /*for*/
3538 variable
[12] = CALL_abstract_collection___Iterator___is_ok(variable
[11])(variable
[11]) /*Iterator::is_ok*/;
3539 if (!UNTAG_Bool(variable
[12])) break; /*for*/
3540 variable
[12] = CALL_abstract_collection___Iterator___item(variable
[11])(variable
[11]) /*Iterator::item*/;
3541 variable
[13] = variable
[12];
3542 variable
[14] = variable
[4] /*cd*/;
3543 variable
[15] = variable
[13] /*i*/;
3544 variable
[17] = TAG_Bool(UNTAG_Int( variable
[15] /*index*/)>=UNTAG_Int( TAG_Int(0)));
3545 variable
[18] = variable
[17];
3546 if (UNTAG_Bool(variable
[18])) { /* and */
3547 variable
[18] = variable
[14];
3548 variable
[18] = ATTR_array___AbstractArray____length(variable
[18]) /*AbstractArray::_length*/;
3549 variable
[18] = TAG_Bool(UNTAG_Int( variable
[15] /*index*/)<UNTAG_Int(variable
[18]));
3551 variable
[17] = variable
[18];
3552 if (!UNTAG_Bool(variable
[17])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_typing
, 229); nit_exit(1);}
3553 variable
[17] = variable
[14];
3554 variable
[17] = ATTR_array___Array____items(variable
[17]) /*Array::_items*/;
3555 variable
[17] = UNBOX_NativeArray(variable
[17])[UNTAG_Int( variable
[15] /*index*/)];
3556 variable
[16] = variable
[17];
3557 goto return_label105
;
3558 return_label105
: while(false);
3559 variable
[14] = variable
[16];
3560 variable
[15] = variable
[7] /*cs*/;
3561 variable
[16] = variable
[13] /*i*/;
3562 variable
[18] = TAG_Bool(UNTAG_Int( variable
[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
3563 variable
[19] = variable
[18];
3564 if (UNTAG_Bool(variable
[19])) { /* and */
3565 variable
[19] = variable
[15];
3566 variable
[19] = ATTR_array___AbstractArray____length(variable
[19]) /*AbstractArray::_length*/;
3567 variable
[19] = TAG_Bool(UNTAG_Int( variable
[16] /*index*/)<UNTAG_Int(variable
[19]));
3569 variable
[18] = variable
[19];
3570 if (!UNTAG_Bool(variable
[18])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_typing
, 229); nit_exit(1);}
3571 variable
[18] = variable
[15];
3572 variable
[18] = ATTR_array___Array____items(variable
[18]) /*Array::_items*/;
3573 variable
[18] = UNBOX_NativeArray(variable
[18])[UNTAG_Int( variable
[16] /*index*/)];
3574 variable
[17] = variable
[18];
3575 goto return_label106
;
3576 return_label106
: while(false);
3577 variable
[15] = variable
[17];
3578 CALL_typing___PClosureDef___accept_typing2(variable
[14])(variable
[14], variable
[1] /*v*/, variable
[15]) /*PClosureDef::accept_typing2*/;
3579 continue_104
: while(0);
3580 CALL_abstract_collection___Iterator___next(variable
[11])(variable
[11]) /*Iterator::next*/;
3582 break_104
: while(0);
3583 variable
[11] = CALL_typing___TypingVisitor___break_list( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::break_list*/;
3584 variable
[11] = CALL_abstract_collection___Collection___iterator(variable
[11])(variable
[11]) /*AbstractArray::iterator*/;
3585 while (true) { /*for*/
3586 variable
[12] = CALL_abstract_collection___Iterator___is_ok(variable
[11])(variable
[11]) /*ArrayIterator::is_ok*/;
3587 if (!UNTAG_Bool(variable
[12])) break; /*for*/
3588 variable
[12] = CALL_abstract_collection___Iterator___item(variable
[11])(variable
[11]) /*ArrayIterator::item*/;
3589 variable
[13] = variable
[12];
3590 variable
[15] = CALL_syntax_base___PExpr___stype( variable
[13] /*n*/)( variable
[13] /*n*/) /*PExpr::stype*/;
3591 variable
[14] = variable
[15];
3592 variable
[15] = TAG_Bool(( variable
[6] /*t*/ == NIT_NULL
/*null*/) || (( variable
[6] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[6] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[6] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[6] /*t*/)( variable
[6] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))));
3593 variable
[16] = variable
[15];
3594 if (!UNTAG_Bool(variable
[16])) { /* or */
3595 variable
[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[6] /*t*/ == NIT_NULL
/*null*/) || (( variable
[6] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[6] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[6] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[6] /*t*/)( variable
[6] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
3596 variable
[17] = variable
[16];
3597 if (UNTAG_Bool(variable
[17])) { /* and */
3598 variable
[17] = CALL_static_type___MMType_____l( variable
[6] /*t*/)( variable
[6] /*t*/, variable
[14] /*ntype*/) /*MMType::<*/;
3600 variable
[16] = variable
[17];
3602 variable
[15] = variable
[16];
3603 if (UNTAG_Bool(variable
[15])) { /*if*/
3604 variable
[6] = variable
[14] /*ntype*/ /*t=*/;
3606 continue_107
: while(0);
3607 CALL_abstract_collection___Iterator___next(variable
[11])(variable
[11]) /*ArrayIterator::next*/;
3609 break_107
: while(0);
3610 variable
[11] = CALL_typing___TypingVisitor___break_list( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::break_list*/;
3611 variable
[11] = CALL_abstract_collection___Collection___iterator(variable
[11])(variable
[11]) /*AbstractArray::iterator*/;
3612 while (true) { /*for*/
3613 variable
[12] = CALL_abstract_collection___Iterator___is_ok(variable
[11])(variable
[11]) /*ArrayIterator::is_ok*/;
3614 if (!UNTAG_Bool(variable
[12])) break; /*for*/
3615 variable
[12] = CALL_abstract_collection___Iterator___item(variable
[11])(variable
[11]) /*ArrayIterator::item*/;
3616 variable
[13] = variable
[12];
3617 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[13] /*n*/, variable
[6] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
3618 continue_108
: while(0);
3619 CALL_abstract_collection___Iterator___next(variable
[11])(variable
[11]) /*ArrayIterator::next*/;
3621 break_108
: while(0);
3622 CALL_typing___TypingVisitor___closure_break_stype__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[9] /*old_bbst*/) /*TypingVisitor::closure_break_stype=*/;
3623 CALL_typing___TypingVisitor___break_list__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[10] /*old_bl*/) /*TypingVisitor::break_list=*/;
3627 variable
[9] = TAG_Bool(( variable
[8] /*min_arity*/)!=( TAG_Int(0)));
3628 if (UNTAG_Bool(variable
[9])) { /*if*/
3629 variable
[9] = variable
[0];
3630 variable
[10] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
3631 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
3632 variable
[12] = variable
[11];
3633 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[12]) /*AbstractArray::add*/;
3634 variable
[13] = variable
[3] /*name*/;
3635 variable
[13] = CALL_string___Object___to_s(variable
[13])(variable
[13]) /*Object::to_s*/;
3636 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[13]) /*AbstractArray::add*/;
3637 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString(" requires "), TAG_Int(10)); /*new String*/
3638 variable
[15] = variable
[14];
3639 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[15]) /*AbstractArray::add*/;
3640 variable
[16] = CALL_abstract_collection___Collection___length( variable
[7] /*cs*/)( variable
[7] /*cs*/) /*AbstractArray::length*/;
3641 variable
[17] = variable
[16];
3642 variable
[17] = CALL_string___Object___to_s(variable
[17])(variable
[17]) /*Object::to_s*/;
3643 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[17]) /*AbstractArray::add*/;
3644 variable
[18] = NEW_String_string___String___with_native(BOX_NativeString(" blocs."), TAG_Int(7)); /*new String*/
3645 variable
[19] = variable
[18];
3646 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[19]) /*AbstractArray::add*/;
3647 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
3648 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[9], variable
[10]) /*AbsSyntaxVisitor::error*/;
3651 variable
[5] = variable
[6] /*t*/;
3652 goto return_label102
;
3653 return_label102
: while(false);
3654 tracehead
= trace
.prev
;
3657 val_t
typing___AAbsSendExpr___prop(val_t self
) {
3658 struct trace_t trace
= {NULL
, NULL
, 1044, LOCATE_typing___AAbsSendExpr___prop
};
3659 val_t
*variable
= NULL
;
3660 void **closurevariable
= NULL
;
3661 trace
.prev
= tracehead
; tracehead
= &trace
;
3662 trace
.file
= LOCATE_typing
;
3663 tracehead
= trace
.prev
;
3664 return ATTR_typing___AAbsSendExpr____prop( self
) /*AAbsSendExpr::_prop*/;
3666 val_t
typing___AAbsSendExpr___arguments(val_t self
) {
3667 struct trace_t trace
= {NULL
, NULL
, 1047, LOCATE_typing___AAbsSendExpr___arguments
};
3668 val_t
*variable
= NULL
;
3669 void **closurevariable
= NULL
;
3670 trace
.prev
= tracehead
; tracehead
= &trace
;
3671 trace
.file
= LOCATE_typing
;
3672 tracehead
= trace
.prev
;
3673 return ATTR_typing___AAbsSendExpr____arguments( self
) /*AAbsSendExpr::_arguments*/;
3675 val_t
typing___AAbsSendExpr___return_type(val_t self
) {
3676 struct trace_t trace
= {NULL
, NULL
, 1050, LOCATE_typing___AAbsSendExpr___return_type
};
3677 val_t
*variable
= NULL
;
3678 void **closurevariable
= NULL
;
3679 trace
.prev
= tracehead
; tracehead
= &trace
;
3680 trace
.file
= LOCATE_typing
;
3681 tracehead
= trace
.prev
;
3682 return ATTR_typing___AAbsSendExpr____return_type( self
) /*AAbsSendExpr::_return_type*/;
3684 void typing___ASuperInitCall___register_super_init_call(val_t self
, val_t param0
, val_t param1
) {
3685 struct trace_t trace
= {NULL
, NULL
, 1058, LOCATE_typing___ASuperInitCall___register_super_init_call
};
3687 void **closurevariable
= NULL
;
3688 trace
.prev
= tracehead
; tracehead
= &trace
;
3689 trace
.file
= LOCATE_typing
;
3691 variable
[1] = param0
;
3692 variable
[2] = param1
;
3693 variable
[4] = variable
[0];
3694 variable
[4] = CALL_parser_prod___PNode___parent(variable
[4])(variable
[4]) /*PNode::parent*/;
3695 variable
[5] = CALL_typing___TypingVisitor___top_block( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::top_block*/;
3696 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == variable
[5]) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4],variable
[5])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], variable
[5]) /*Object::==*/)))))));
3697 variable
[5] = variable
[4];
3698 if (UNTAG_Bool(variable
[5])) { /* and */
3699 variable
[5] = variable
[0];
3700 variable
[6] = CALL_typing___TypingVisitor___top_block( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::top_block*/;
3701 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[5] == variable
[6]) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5],variable
[6])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], variable
[6]) /*Object::==*/)))))));
3703 variable
[4] = variable
[5];
3704 if (UNTAG_Bool(variable
[4])) { /*if*/
3705 variable
[4] = variable
[0];
3706 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
3707 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: Constructor invocation "), TAG_Int(30)); /*new String*/
3708 variable
[7] = variable
[6];
3709 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[7]) /*AbstractArray::add*/;
3710 variable
[8] = variable
[2] /*property*/;
3711 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
3712 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[8]) /*AbstractArray::add*/;
3713 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString(" must not be in nested block."), TAG_Int(29)); /*new String*/
3714 variable
[10] = variable
[9];
3715 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[10]) /*AbstractArray::add*/;
3716 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
3717 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
3719 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
3720 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[2] /*property*/)( variable
[2] /*property*/) /*MMLocalProperty::global*/;
3721 variable
[6] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[6])(variable
[6]) /*MMGlobalProperty::intro*/;
3722 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[6])(variable
[6]) /*MMLocalProperty::local_class*/;
3723 variable
[6] = CALL_abstractmetamodel___MMLocalClass___global(variable
[6])(variable
[6]) /*MMLocalClass::global*/;
3724 variable
[5] = CALL_abstractmetamodel___MMModule_____bra(variable
[5])(variable
[5], variable
[6]) /*MMModule::[]*/;
3725 variable
[4] = variable
[5];
3726 variable
[5] = NIT_NULL
/*null*/;
3727 variable
[6] = CALL_typing___TypingVisitor___explicit_super_init_calls( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
3728 variable
[6] = CALL_abstract_collection___Collection___is_empty(variable
[6])(variable
[6]) /*AbstractArray::is_empty*/;
3729 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[6])))) { /*if*/
3730 variable
[6] = CALL_typing___TypingVisitor___explicit_super_init_calls( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
3731 variable
[6] = CALL_abstract_collection___IndexedCollection___last(variable
[6])(variable
[6]) /*IndexedCollection::last*/;
3732 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[6])(variable
[6]) /*MMLocalProperty::global*/;
3733 variable
[6] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[6])(variable
[6]) /*MMGlobalProperty::intro*/;
3734 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[6])(variable
[6]) /*MMLocalProperty::local_class*/;
3735 variable
[5] = variable
[6] /*prev_class=*/;
3737 variable
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
3738 variable
[7] = CALL_abstractmetamodel___MMLocalClass___cshe(variable
[7])(variable
[7]) /*MMLocalClass::cshe*/;
3739 variable
[7] = CALL_partial_order___PartialOrderElement___reverse_linear_extension(variable
[7])(variable
[7]) /*PartialOrderElement::reverse_linear_extension*/;
3740 variable
[6] = variable
[7];
3741 variable
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
3742 variable
[7] = TAG_Bool(( variable
[4] /*cla*/ == variable
[7]) || (( variable
[4] /*cla*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*cla*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*cla*/,variable
[7])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*cla*/)( variable
[4] /*cla*/, variable
[7]) /*Object::==*/)))));
3743 if (UNTAG_Bool(variable
[7])) { /*if*/
3744 CALL_typing___TypingVisitor___explicit_other_init_call__eq( variable
[1] /*v*/)( variable
[1] /*v*/, TAG_Bool(true)) /*TypingVisitor::explicit_other_init_call=*/;
3746 variable
[7] = CALL_abstract_collection___Collection___has( variable
[6] /*order*/)( variable
[6] /*order*/, variable
[4] /*cla*/) /*AbstractArray::has*/;
3747 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[7])))) { /*if*/
3748 variable
[7] = variable
[0];
3749 variable
[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
3750 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Constructor of class "), TAG_Int(28)); /*new String*/
3751 variable
[10] = variable
[9];
3752 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[10]) /*AbstractArray::add*/;
3753 variable
[11] = variable
[4] /*cla*/;
3754 variable
[11] = CALL_string___Object___to_s(variable
[11])(variable
[11]) /*Object::to_s*/;
3755 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[11]) /*AbstractArray::add*/;
3756 variable
[12] = NEW_String_string___String___with_native(BOX_NativeString(" must be one in "), TAG_Int(16)); /*new String*/
3757 variable
[13] = variable
[12];
3758 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[13]) /*AbstractArray::add*/;
3759 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
3760 variable
[14] = CALL_string___Collection___join( variable
[6] /*order*/)( variable
[6] /*order*/, variable
[14]) /*Collection::join*/;
3761 variable
[15] = variable
[14];
3762 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[15]) /*AbstractArray::add*/;
3763 variable
[16] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
3764 variable
[17] = variable
[16];
3765 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[17]) /*AbstractArray::add*/;
3766 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
3767 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[7], variable
[8]) /*AbsSyntaxVisitor::error*/;
3769 variable
[7] = TAG_Bool(( variable
[4] /*cla*/ == variable
[5] /*prev_class*/) || (( variable
[4] /*cla*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*cla*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*cla*/, variable
[5] /*prev_class*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*cla*/)( variable
[4] /*cla*/, variable
[5] /*prev_class*/) /*Object::==*/)))));
3770 if (UNTAG_Bool(variable
[7])) { /*if*/
3771 variable
[7] = variable
[0];
3772 variable
[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
3773 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Only one super constructor invocation of class "), TAG_Int(54)); /*new String*/
3774 variable
[10] = variable
[9];
3775 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[10]) /*AbstractArray::add*/;
3776 variable
[11] = variable
[4] /*cla*/;
3777 variable
[11] = CALL_string___Object___to_s(variable
[11])(variable
[11]) /*Object::to_s*/;
3778 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[11]) /*AbstractArray::add*/;
3779 variable
[12] = NEW_String_string___String___with_native(BOX_NativeString(" is allowed."), TAG_Int(12)); /*new String*/
3780 variable
[13] = variable
[12];
3781 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[13]) /*AbstractArray::add*/;
3782 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
3783 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[7], variable
[8]) /*AbsSyntaxVisitor::error*/;
3785 variable
[8] = TAG_Bool(( variable
[5] /*prev_class*/ == NIT_NULL
/*null*/) || (( variable
[5] /*prev_class*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[5] /*prev_class*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[5] /*prev_class*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*prev_class*/)( variable
[5] /*prev_class*/, NIT_NULL
/*null*/) /*Object::==*/)))));
3786 variable
[7] = variable
[8];
3787 variable
[8] = CALL_abstract_collection___Collection___iterator( variable
[6] /*order*/)( variable
[6] /*order*/) /*AbstractArray::iterator*/;
3788 while (true) { /*for*/
3789 variable
[9] = CALL_abstract_collection___Iterator___is_ok(variable
[8])(variable
[8]) /*ArrayIterator::is_ok*/;
3790 if (!UNTAG_Bool(variable
[9])) break; /*for*/
3791 variable
[9] = CALL_abstract_collection___Iterator___item(variable
[8])(variable
[8]) /*ArrayIterator::item*/;
3792 variable
[10] = variable
[9];
3793 variable
[11] = TAG_Bool(( variable
[10] /*c*/ == variable
[5] /*prev_class*/) || (( variable
[10] /*c*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[10] /*c*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[10] /*c*/, variable
[5] /*prev_class*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[10] /*c*/)( variable
[10] /*c*/, variable
[5] /*prev_class*/) /*Object::==*/)))));
3794 if (UNTAG_Bool(variable
[11])) { /*if*/
3795 variable
[7] = TAG_Bool(true) /*last_is_found=*/;
3797 variable
[11] = TAG_Bool(( variable
[10] /*c*/ == variable
[4] /*cla*/) || (( variable
[10] /*c*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[10] /*c*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[10] /*c*/, variable
[4] /*cla*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[10] /*c*/)( variable
[10] /*c*/, variable
[4] /*cla*/) /*Object::==*/)))));
3798 if (UNTAG_Bool(variable
[11])) { /*if*/
3799 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable
[7] /*last_is_found*/)))) { /*if*/
3800 variable
[11] = variable
[0];
3801 variable
[12] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
3802 variable
[13] = NEW_String_string___String___with_native(BOX_NativeString("Error: Constructor of "), TAG_Int(22)); /*new String*/
3803 variable
[14] = variable
[13];
3804 CALL_abstract_collection___SimpleCollection___add(variable
[12])(variable
[12], variable
[14]) /*AbstractArray::add*/;
3805 variable
[15] = variable
[10] /*c*/;
3806 variable
[15] = CALL_string___Object___to_s(variable
[15])(variable
[15]) /*Object::to_s*/;
3807 CALL_abstract_collection___SimpleCollection___add(variable
[12])(variable
[12], variable
[15]) /*AbstractArray::add*/;
3808 variable
[16] = NEW_String_string___String___with_native(BOX_NativeString(" must be invoked before constructor of "), TAG_Int(39)); /*new String*/
3809 variable
[17] = variable
[16];
3810 CALL_abstract_collection___SimpleCollection___add(variable
[12])(variable
[12], variable
[17]) /*AbstractArray::add*/;
3811 variable
[18] = variable
[5] /*prev_class*/;
3812 variable
[18] = CALL_string___Object___to_s(variable
[18])(variable
[18]) /*Object::to_s*/;
3813 CALL_abstract_collection___SimpleCollection___add(variable
[12])(variable
[12], variable
[18]) /*AbstractArray::add*/;
3814 variable
[19] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
3815 variable
[20] = variable
[19];
3816 CALL_abstract_collection___SimpleCollection___add(variable
[12])(variable
[12], variable
[20]) /*AbstractArray::add*/;
3817 variable
[12] = CALL_string___Object___to_s(variable
[12])(variable
[12]) /*Object::to_s*/;
3818 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[11], variable
[12]) /*AbsSyntaxVisitor::error*/;
3820 variable
[11] = CALL_typing___TypingVisitor___explicit_super_init_calls( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
3821 CALL_abstract_collection___SimpleCollection___add(variable
[11])(variable
[11], variable
[2] /*property*/) /*AbstractArray::add*/;
3825 continue_110
: while(0);
3826 CALL_abstract_collection___Iterator___next(variable
[8])(variable
[8]) /*ArrayIterator::next*/;
3828 break_110
: while(0);
3832 return_label109
: while(false);
3833 tracehead
= trace
.prev
;
3836 void typing___ANewExpr___after_typing(val_t self
, val_t param0
) {
3837 struct trace_t trace
= {NULL
, NULL
, 1095, LOCATE_typing___ANewExpr___after_typing
};
3838 static val_t once_value_112
; static int once_bool_112
; /* Once value for variable[5]*/
3840 void **closurevariable
= NULL
;
3841 trace
.prev
= tracehead
; tracehead
= &trace
;
3842 trace
.file
= LOCATE_typing
;
3844 variable
[1] = param0
;
3845 variable
[4] = variable
[0];
3846 variable
[4] = CALL_parser_nodes___ANewExpr___n_type(variable
[4])(variable
[4]) /*ANewExpr::n_type*/;
3847 variable
[4] = CALL_typing___PType___stype(variable
[4])(variable
[4]) /*PType::stype*/;
3848 variable
[3] = variable
[4];
3849 variable
[4] = TAG_Bool(( variable
[3] /*t*/ == NIT_NULL
/*null*/) || (( variable
[3] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*t*/)( variable
[3] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))));
3850 if (UNTAG_Bool(variable
[4])) { /*if*/
3851 goto return_label111
;
3853 variable
[4] = CALL_static_type___MMType___local_class( variable
[3] /*t*/)( variable
[3] /*t*/) /*MMType::local_class*/;
3854 variable
[4] = CALL_abstractmetamodel___MMLocalClass___global(variable
[4])(variable
[4]) /*MMLocalClass::global*/;
3855 variable
[4] = CALL_abstractmetamodel___MMGlobalClass___is_abstract(variable
[4])(variable
[4]) /*MMGlobalClass::is_abstract*/;
3856 if (UNTAG_Bool(variable
[4])) { /*if*/
3857 variable
[4] = variable
[0];
3858 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
3859 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to instantiate abstract class "), TAG_Int(41)); /*new String*/
3860 variable
[7] = variable
[6];
3861 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[7]) /*AbstractArray::add*/;
3862 variable
[8] = CALL_static_type___MMType___local_class( variable
[3] /*t*/)( variable
[3] /*t*/) /*MMType::local_class*/;
3863 variable
[9] = variable
[8];
3864 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
3865 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[9]) /*AbstractArray::add*/;
3866 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
3867 variable
[11] = variable
[10];
3868 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[11]) /*AbstractArray::add*/;
3869 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
3870 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
3871 goto return_label111
;
3873 /*variable[4] is variable name*/
3874 variable
[5] = variable
[0];
3875 variable
[5] = CALL_parser_nodes___ANewExpr___n_id(variable
[5])(variable
[5]) /*ANewExpr::n_id*/;
3876 variable
[5] = TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))));
3877 if (UNTAG_Bool(variable
[5])) { /*if*/
3878 if (once_bool_112
) variable
[5] = once_value_112
;
3880 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
3881 variable
[5] = CALL_symbol___String___to_symbol(variable
[5])(variable
[5]) /*String::to_symbol*/;
3882 once_value_112
= variable
[5];
3883 once_bool_112
= true;
3885 variable
[4] = variable
[5] /*name=*/;
3887 variable
[5] = variable
[0];
3888 variable
[5] = CALL_parser_nodes___ANewExpr___n_id(variable
[5])(variable
[5]) /*ANewExpr::n_id*/;
3889 variable
[5] = CALL_syntax_base___Token___to_symbol(variable
[5])(variable
[5]) /*Token::to_symbol*/;
3890 variable
[4] = variable
[5] /*name=*/;
3892 variable
[5] = variable
[0];
3893 variable
[6] = variable
[0];
3894 variable
[6] = CALL_parser_nodes___ANewExpr___n_args(variable
[6])(variable
[6]) /*ANewExpr::n_args*/;
3895 variable
[6] = CALL_array___Collection___to_a(variable
[6])(variable
[6]) /*Collection::to_a*/;
3896 CALL_typing___AAbsSendExpr___do_typing(variable
[5])(variable
[5], variable
[1] /*v*/, variable
[3] /*t*/, TAG_Bool(false), TAG_Bool(false), variable
[4] /*name*/, variable
[6], NIT_NULL
/*null*/) /*AAbsSendExpr::do_typing*/;
3897 variable
[5] = variable
[0];
3898 variable
[5] = CALL_typing___AAbsSendExpr___prop(variable
[5])(variable
[5]) /*AAbsSendExpr::prop*/;
3899 variable
[5] = TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))));
3900 if (UNTAG_Bool(variable
[5])) { /*if*/
3901 goto return_label111
;
3903 variable
[5] = variable
[0];
3904 variable
[5] = CALL_typing___AAbsSendExpr___prop(variable
[5])(variable
[5]) /*AAbsSendExpr::prop*/;
3905 variable
[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[5])(variable
[5]) /*MMLocalProperty::global*/;
3906 variable
[5] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[5])(variable
[5]) /*MMGlobalProperty::is_init*/;
3907 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[5])))) { /*if*/
3908 variable
[5] = variable
[0];
3909 variable
[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
3910 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
3911 variable
[8] = variable
[7];
3912 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[8]) /*AbstractArray::add*/;
3913 variable
[9] = variable
[0];
3914 variable
[9] = CALL_typing___AAbsSendExpr___prop(variable
[9])(variable
[9]) /*AAbsSendExpr::prop*/;
3915 variable
[10] = variable
[9];
3916 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
3917 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[10]) /*AbstractArray::add*/;
3918 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(" is not a constructor."), TAG_Int(22)); /*new String*/
3919 variable
[12] = variable
[11];
3920 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[12]) /*AbstractArray::add*/;
3921 variable
[6] = CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/;
3922 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[6]) /*AbsSyntaxVisitor::error*/;
3924 variable
[5] = variable
[0];
3925 ATTR_typing___PExpr____stype(variable
[5]) /*PExpr::_stype*/ = variable
[3] /*t*/;
3926 return_label111
: while(false);
3927 tracehead
= trace
.prev
;
3930 void typing___ASendExpr___after_typing(val_t self
, val_t param0
) {
3931 struct trace_t trace
= {NULL
, NULL
, 1132, LOCATE_typing___ASendExpr___after_typing
};
3933 void **closurevariable
= NULL
;
3934 trace
.prev
= tracehead
; tracehead
= &trace
;
3935 trace
.file
= LOCATE_typing
;
3937 variable
[1] = param0
;
3938 variable
[3] = variable
[0];
3939 CALL_typing___ASendExpr___do_all_typing(variable
[3])(variable
[3], variable
[1] /*v*/) /*ASendExpr::do_all_typing*/;
3940 return_label113
: while(false);
3941 tracehead
= trace
.prev
;
3944 val_t
typing___ASendExpr___name(val_t self
) {
3945 struct trace_t trace
= {NULL
, NULL
, 1123, LOCATE_typing___ASendExpr___name
};
3946 val_t
*variable
= NULL
;
3947 void **closurevariable
= NULL
;
3948 trace
.prev
= tracehead
; tracehead
= &trace
;
3949 trace
.file
= LOCATE_typing
;
3950 fprintf(stderr
, "Deferred method called");
3951 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1123);
3953 tracehead
= trace
.prev
;
3956 val_t
typing___ASendExpr___raw_arguments(val_t self
) {
3957 struct trace_t trace
= {NULL
, NULL
, 1126, LOCATE_typing___ASendExpr___raw_arguments
};
3958 val_t
*variable
= NULL
;
3959 void **closurevariable
= NULL
;
3960 trace
.prev
= tracehead
; tracehead
= &trace
;
3961 trace
.file
= LOCATE_typing
;
3962 fprintf(stderr
, "Deferred method called");
3963 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1126);
3965 tracehead
= trace
.prev
;
3968 val_t
typing___ASendExpr___closure_defs(val_t self
) {
3969 struct trace_t trace
= {NULL
, NULL
, 1129, LOCATE_typing___ASendExpr___closure_defs
};
3971 void **closurevariable
= NULL
;
3972 trace
.prev
= tracehead
; tracehead
= &trace
;
3973 trace
.file
= LOCATE_typing
;
3975 variable
[1] = NIT_NULL
/*null*/;
3976 goto return_label114
;
3977 return_label114
: while(false);
3978 tracehead
= trace
.prev
;
3981 void typing___ASendExpr___do_all_typing(val_t self
, val_t param0
) {
3982 struct trace_t trace
= {NULL
, NULL
, 1137, LOCATE_typing___ASendExpr___do_all_typing
};
3984 void **closurevariable
= NULL
;
3985 trace
.prev
= tracehead
; tracehead
= &trace
;
3986 trace
.file
= LOCATE_typing
;
3988 variable
[1] = param0
;
3989 variable
[3] = variable
[0];
3990 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[3])(variable
[3]) /*ASendExpr::n_expr*/;
3991 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*AbsSyntaxVisitor::check_expr*/;
3992 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
3993 goto return_label115
;
3995 variable
[3] = variable
[0];
3996 variable
[4] = variable
[0];
3997 variable
[4] = CALL_parser_nodes___ASendExpr___n_expr(variable
[4])(variable
[4]) /*ASendExpr::n_expr*/;
3998 variable
[4] = CALL_syntax_base___PExpr___stype(variable
[4])(variable
[4]) /*PExpr::stype*/;
3999 variable
[5] = variable
[0];
4000 variable
[5] = CALL_parser_nodes___ASendExpr___n_expr(variable
[5])(variable
[5]) /*ASendExpr::n_expr*/;
4001 variable
[5] = CALL_typing___PExpr___is_implicit_self(variable
[5])(variable
[5]) /*PExpr::is_implicit_self*/;
4002 variable
[6] = variable
[0];
4003 variable
[6] = CALL_parser_nodes___ASendExpr___n_expr(variable
[6])(variable
[6]) /*ASendExpr::n_expr*/;
4004 variable
[6] = CALL_typing___PExpr___is_self(variable
[6])(variable
[6]) /*PExpr::is_self*/;
4005 variable
[7] = variable
[0];
4006 variable
[7] = CALL_typing___ASendExpr___name(variable
[7])(variable
[7]) /*ASendExpr::name*/;
4007 variable
[8] = variable
[0];
4008 variable
[8] = CALL_typing___ASendExpr___raw_arguments(variable
[8])(variable
[8]) /*ASendExpr::raw_arguments*/;
4009 variable
[9] = variable
[0];
4010 variable
[9] = CALL_typing___ASendExpr___closure_defs(variable
[9])(variable
[9]) /*ASendExpr::closure_defs*/;
4011 CALL_typing___AAbsSendExpr___do_typing(variable
[3])(variable
[3], variable
[1] /*v*/, variable
[4], variable
[5], variable
[6], variable
[7], variable
[8], variable
[9]) /*AAbsSendExpr::do_typing*/;
4012 variable
[3] = variable
[0];
4013 variable
[3] = CALL_typing___AAbsSendExpr___prop(variable
[3])(variable
[3]) /*AAbsSendExpr::prop*/;
4014 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
4015 if (UNTAG_Bool(variable
[3])) { /*if*/
4016 goto return_label115
;
4018 variable
[3] = variable
[0];
4019 variable
[3] = CALL_typing___AAbsSendExpr___prop(variable
[3])(variable
[3]) /*AAbsSendExpr::prop*/;
4020 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[3])(variable
[3]) /*MMLocalProperty::global*/;
4021 variable
[3] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[3])(variable
[3]) /*MMGlobalProperty::is_init*/;
4022 if (UNTAG_Bool(variable
[3])) { /*if*/
4023 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
4024 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[3])(variable
[3]) /*MMLocalProperty::global*/;
4025 variable
[3] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[3])(variable
[3]) /*MMGlobalProperty::is_init*/;
4026 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
4027 variable
[3] = variable
[0];
4028 variable
[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
4029 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
4030 variable
[6] = variable
[5];
4031 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[6]) /*AbstractArray::add*/;
4032 variable
[7] = variable
[0];
4033 variable
[7] = CALL_typing___AAbsSendExpr___prop(variable
[7])(variable
[7]) /*AAbsSendExpr::prop*/;
4034 variable
[8] = variable
[7];
4035 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
4036 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[8]) /*AbstractArray::add*/;
4037 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
4038 variable
[10] = variable
[9];
4039 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[10]) /*AbstractArray::add*/;
4040 variable
[4] = CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/;
4041 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::error*/;
4043 variable
[3] = variable
[0];
4044 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[3])(variable
[3]) /*ASendExpr::n_expr*/;
4045 variable
[3] = CALL_typing___PExpr___is_self(variable
[3])(variable
[3]) /*PExpr::is_self*/;
4046 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
4047 variable
[3] = variable
[0];
4048 variable
[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
4049 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
4050 variable
[6] = variable
[5];
4051 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[6]) /*AbstractArray::add*/;
4052 variable
[7] = variable
[0];
4053 variable
[7] = CALL_typing___AAbsSendExpr___prop(variable
[7])(variable
[7]) /*AAbsSendExpr::prop*/;
4054 variable
[8] = variable
[7];
4055 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
4056 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[8]) /*AbstractArray::add*/;
4057 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
4058 variable
[10] = variable
[9];
4059 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[10]) /*AbstractArray::add*/;
4060 variable
[4] = CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/;
4061 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::error*/;
4063 variable
[3] = variable
[0];
4064 variable
[4] = variable
[0];
4065 variable
[4] = CALL_typing___AAbsSendExpr___prop(variable
[4])(variable
[4]) /*AAbsSendExpr::prop*/;
4066 CALL_typing___ASuperInitCall___register_super_init_call(variable
[3])(variable
[3], variable
[1] /*v*/, variable
[4]) /*ASuperInitCall::register_super_init_call*/;
4070 variable
[3] = variable
[0];
4071 variable
[4] = variable
[0];
4072 variable
[4] = CALL_typing___AAbsSendExpr___return_type(variable
[4])(variable
[4]) /*AAbsSendExpr::return_type*/;
4073 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
4074 return_label115
: while(false);
4075 tracehead
= trace
.prev
;
4078 void typing___ASendReassignExpr___do_all_typing(val_t self
, val_t param0
) {
4079 struct trace_t trace
= {NULL
, NULL
, 1161, LOCATE_typing___ASendReassignExpr___do_all_typing
};
4081 void **closurevariable
= NULL
;
4082 trace
.prev
= tracehead
; tracehead
= &trace
;
4083 trace
.file
= LOCATE_typing
;
4085 variable
[1] = param0
;
4086 variable
[3] = variable
[0];
4087 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[3])(variable
[3]) /*ASendExpr::n_expr*/;
4088 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*AbsSyntaxVisitor::check_expr*/;
4089 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
4090 goto return_label116
;
4092 variable
[4] = variable
[0];
4093 variable
[4] = CALL_typing___ASendExpr___raw_arguments(variable
[4])(variable
[4]) /*ASendExpr::raw_arguments*/;
4094 variable
[3] = variable
[4];
4095 variable
[4] = variable
[0];
4096 variable
[5] = variable
[0];
4097 variable
[5] = CALL_parser_nodes___ASendExpr___n_expr(variable
[5])(variable
[5]) /*ASendExpr::n_expr*/;
4098 variable
[5] = CALL_syntax_base___PExpr___stype(variable
[5])(variable
[5]) /*PExpr::stype*/;
4099 variable
[6] = variable
[0];
4100 variable
[6] = CALL_parser_nodes___ASendExpr___n_expr(variable
[6])(variable
[6]) /*ASendExpr::n_expr*/;
4101 variable
[6] = CALL_typing___PExpr___is_implicit_self(variable
[6])(variable
[6]) /*PExpr::is_implicit_self*/;
4102 variable
[7] = variable
[0];
4103 variable
[7] = CALL_parser_nodes___ASendExpr___n_expr(variable
[7])(variable
[7]) /*ASendExpr::n_expr*/;
4104 variable
[7] = CALL_typing___PExpr___is_self(variable
[7])(variable
[7]) /*PExpr::is_self*/;
4105 variable
[8] = variable
[0];
4106 variable
[8] = CALL_typing___ASendExpr___name(variable
[8])(variable
[8]) /*ASendExpr::name*/;
4107 CALL_typing___AAbsSendExpr___do_typing(variable
[4])(variable
[4], variable
[1] /*v*/, variable
[5], variable
[6], variable
[7], variable
[8], variable
[3] /*raw_args*/, NIT_NULL
/*null*/) /*AAbsSendExpr::do_typing*/;
4108 variable
[4] = variable
[0];
4109 variable
[4] = CALL_typing___AAbsSendExpr___prop(variable
[4])(variable
[4]) /*AAbsSendExpr::prop*/;
4110 variable
[4] = TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))));
4111 if (UNTAG_Bool(variable
[4])) { /*if*/
4112 goto return_label116
;
4114 variable
[4] = variable
[0];
4115 variable
[4] = CALL_typing___AAbsSendExpr___prop(variable
[4])(variable
[4]) /*AAbsSendExpr::prop*/;
4116 variable
[4] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[4])(variable
[4]) /*MMLocalProperty::global*/;
4117 variable
[4] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[4])(variable
[4]) /*MMGlobalProperty::is_init*/;
4118 if (UNTAG_Bool(variable
[4])) { /*if*/
4119 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
4120 variable
[4] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[4])(variable
[4]) /*MMLocalProperty::global*/;
4121 variable
[4] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[4])(variable
[4]) /*MMGlobalProperty::is_init*/;
4122 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[4])))) { /*if*/
4123 variable
[4] = variable
[0];
4124 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
4125 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
4126 variable
[7] = variable
[6];
4127 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[7]) /*AbstractArray::add*/;
4128 variable
[8] = variable
[0];
4129 variable
[8] = CALL_typing___AAbsSendExpr___prop(variable
[8])(variable
[8]) /*AAbsSendExpr::prop*/;
4130 variable
[9] = variable
[8];
4131 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
4132 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[9]) /*AbstractArray::add*/;
4133 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
4134 variable
[11] = variable
[10];
4135 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[11]) /*AbstractArray::add*/;
4136 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
4137 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
4139 variable
[4] = variable
[0];
4140 variable
[4] = CALL_parser_nodes___ASendExpr___n_expr(variable
[4])(variable
[4]) /*ASendExpr::n_expr*/;
4141 variable
[4] = CALL_typing___PExpr___is_self(variable
[4])(variable
[4]) /*PExpr::is_self*/;
4142 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[4])))) { /*if*/
4143 variable
[4] = variable
[0];
4144 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
4145 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
4146 variable
[7] = variable
[6];
4147 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[7]) /*AbstractArray::add*/;
4148 variable
[8] = variable
[0];
4149 variable
[8] = CALL_typing___AAbsSendExpr___prop(variable
[8])(variable
[8]) /*AAbsSendExpr::prop*/;
4150 variable
[9] = variable
[8];
4151 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
4152 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[9]) /*AbstractArray::add*/;
4153 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
4154 variable
[11] = variable
[10];
4155 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[11]) /*AbstractArray::add*/;
4156 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
4157 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
4161 variable
[5] = variable
[0];
4162 variable
[5] = CALL_typing___AAbsSendExpr___prop(variable
[5])(variable
[5]) /*AAbsSendExpr::prop*/;
4163 variable
[6] = variable
[0];
4164 variable
[6] = CALL_parser_nodes___ASendExpr___n_expr(variable
[6])(variable
[6]) /*ASendExpr::n_expr*/;
4165 variable
[6] = CALL_syntax_base___PExpr___stype(variable
[6])(variable
[6]) /*PExpr::stype*/;
4166 variable
[5] = CALL_static_type___MMLocalProperty___signature_for(variable
[5])(variable
[5], variable
[6]) /*MMLocalProperty::signature_for*/;
4167 variable
[5] = CALL_static_type___MMSignature___return_type(variable
[5])(variable
[5]) /*MMSignature::return_type*/;
4168 variable
[4] = variable
[5];
4169 variable
[5] = variable
[0];
4170 variable
[5] = CALL_parser_nodes___ASendExpr___n_expr(variable
[5])(variable
[5]) /*ASendExpr::n_expr*/;
4171 variable
[5] = CALL_typing___PExpr___is_self(variable
[5])(variable
[5]) /*PExpr::is_self*/;
4172 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[5])))) { /*if*/
4173 variable
[5] = CALL_static_type___MMType___not_for_self( variable
[4] /*t*/)( variable
[4] /*t*/) /*MMType::not_for_self*/;
4174 variable
[4] = variable
[5] /*t=*/;
4176 variable
[5] = variable
[0];
4177 CALL_typing___AReassignFormExpr___do_lvalue_typing(variable
[5])(variable
[5], variable
[1] /*v*/, variable
[4] /*t*/) /*AReassignFormExpr::do_lvalue_typing*/;
4178 variable
[5] = variable
[0];
4179 variable
[6] = variable
[0];
4180 variable
[6] = CALL_typing___AAbsSendExpr___prop(variable
[6])(variable
[6]) /*AAbsSendExpr::prop*/;
4181 ATTR_typing___ASendReassignExpr____read_prop(variable
[5]) /*ASendReassignExpr::_read_prop*/ = variable
[6];
4182 variable
[6] = variable
[0];
4183 variable
[6] = CALL_typing___AAbsSendExpr___arguments(variable
[6])(variable
[6]) /*AAbsSendExpr::arguments*/;
4184 variable
[5] = variable
[6];
4185 variable
[6] = variable
[0];
4186 variable
[6] = CALL_parser_nodes___AReassignFormExpr___n_value(variable
[6])(variable
[6]) /*AReassignFormExpr::n_value*/;
4187 CALL_abstract_collection___SimpleCollection___add( variable
[3] /*raw_args*/)( variable
[3] /*raw_args*/, variable
[6]) /*AbstractArray::add*/;
4188 variable
[6] = variable
[0];
4189 variable
[7] = variable
[0];
4190 variable
[7] = CALL_parser_nodes___ASendExpr___n_expr(variable
[7])(variable
[7]) /*ASendExpr::n_expr*/;
4191 variable
[7] = CALL_syntax_base___PExpr___stype(variable
[7])(variable
[7]) /*PExpr::stype*/;
4192 variable
[8] = variable
[0];
4193 variable
[8] = CALL_parser_nodes___ASendExpr___n_expr(variable
[8])(variable
[8]) /*ASendExpr::n_expr*/;
4194 variable
[8] = CALL_typing___PExpr___is_implicit_self(variable
[8])(variable
[8]) /*PExpr::is_implicit_self*/;
4195 variable
[9] = variable
[0];
4196 variable
[9] = CALL_parser_nodes___ASendExpr___n_expr(variable
[9])(variable
[9]) /*ASendExpr::n_expr*/;
4197 variable
[9] = CALL_typing___PExpr___is_self(variable
[9])(variable
[9]) /*PExpr::is_self*/;
4198 variable
[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
4199 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
4200 variable
[12] = variable
[11];
4201 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[12]) /*AbstractArray::add*/;
4202 variable
[13] = variable
[0];
4203 variable
[13] = CALL_typing___ASendExpr___name(variable
[13])(variable
[13]) /*ASendExpr::name*/;
4204 variable
[14] = variable
[13];
4205 variable
[14] = CALL_string___Object___to_s(variable
[14])(variable
[14]) /*Object::to_s*/;
4206 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[14]) /*AbstractArray::add*/;
4207 variable
[15] = NEW_String_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
4208 variable
[16] = variable
[15];
4209 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[16]) /*AbstractArray::add*/;
4210 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
4211 variable
[10] = CALL_symbol___String___to_symbol(variable
[10])(variable
[10]) /*String::to_symbol*/;
4212 CALL_typing___AAbsSendExpr___do_typing(variable
[6])(variable
[6], variable
[1] /*v*/, variable
[7], variable
[8], variable
[9], variable
[10], variable
[3] /*raw_args*/, NIT_NULL
/*null*/) /*AAbsSendExpr::do_typing*/;
4213 variable
[6] = variable
[0];
4214 variable
[6] = CALL_typing___AAbsSendExpr___prop(variable
[6])(variable
[6]) /*AAbsSendExpr::prop*/;
4215 variable
[6] = TAG_Bool((variable
[6] == NIT_NULL
/*null*/) || ((variable
[6] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[6])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[6], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[6])(variable
[6], NIT_NULL
/*null*/) /*Object::==*/)))));
4216 if (UNTAG_Bool(variable
[6])) { /*if*/
4217 goto return_label116
;
4219 variable
[6] = variable
[0];
4220 variable
[6] = CALL_typing___AAbsSendExpr___prop(variable
[6])(variable
[6]) /*AAbsSendExpr::prop*/;
4221 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[6])(variable
[6]) /*MMLocalProperty::global*/;
4222 variable
[6] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[6])(variable
[6]) /*MMGlobalProperty::is_init*/;
4223 if (UNTAG_Bool(variable
[6])) { /*if*/
4224 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
4225 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[6])(variable
[6]) /*MMLocalProperty::global*/;
4226 variable
[6] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[6])(variable
[6]) /*MMGlobalProperty::is_init*/;
4227 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[6])))) { /*if*/
4228 variable
[6] = variable
[0];
4229 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
4230 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
4231 variable
[9] = variable
[8];
4232 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[9]) /*AbstractArray::add*/;
4233 variable
[10] = variable
[0];
4234 variable
[10] = CALL_typing___AAbsSendExpr___prop(variable
[10])(variable
[10]) /*AAbsSendExpr::prop*/;
4235 variable
[11] = variable
[10];
4236 variable
[11] = CALL_string___Object___to_s(variable
[11])(variable
[11]) /*Object::to_s*/;
4237 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[11]) /*AbstractArray::add*/;
4238 variable
[12] = NEW_String_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
4239 variable
[13] = variable
[12];
4240 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[13]) /*AbstractArray::add*/;
4241 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
4242 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[7]) /*AbsSyntaxVisitor::error*/;
4244 variable
[6] = variable
[0];
4245 variable
[6] = CALL_parser_nodes___ASendExpr___n_expr(variable
[6])(variable
[6]) /*ASendExpr::n_expr*/;
4246 variable
[6] = CALL_typing___PExpr___is_self(variable
[6])(variable
[6]) /*PExpr::is_self*/;
4247 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[6])))) { /*if*/
4248 variable
[6] = variable
[0];
4249 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
4250 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
4251 variable
[9] = variable
[8];
4252 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[9]) /*AbstractArray::add*/;
4253 variable
[10] = variable
[0];
4254 variable
[10] = CALL_typing___AAbsSendExpr___prop(variable
[10])(variable
[10]) /*AAbsSendExpr::prop*/;
4255 variable
[11] = variable
[10];
4256 variable
[11] = CALL_string___Object___to_s(variable
[11])(variable
[11]) /*Object::to_s*/;
4257 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[11]) /*AbstractArray::add*/;
4258 variable
[12] = NEW_String_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
4259 variable
[13] = variable
[12];
4260 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[13]) /*AbstractArray::add*/;
4261 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
4262 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[7]) /*AbsSyntaxVisitor::error*/;
4266 variable
[6] = variable
[0];
4267 ATTR_typing___AAbsSendExpr____arguments(variable
[6]) /*AAbsSendExpr::_arguments*/ = variable
[5] /*old_args*/;
4268 return_label116
: while(false);
4269 tracehead
= trace
.prev
;
4272 val_t
typing___ASendReassignExpr___read_prop(val_t self
) {
4273 struct trace_t trace
= {NULL
, NULL
, 1160, LOCATE_typing___ASendReassignExpr___read_prop
};
4274 val_t
*variable
= NULL
;
4275 void **closurevariable
= NULL
;
4276 trace
.prev
= tracehead
; tracehead
= &trace
;
4277 trace
.file
= LOCATE_typing
;
4278 tracehead
= trace
.prev
;
4279 return ATTR_typing___ASendReassignExpr____read_prop( self
) /*ASendReassignExpr::_read_prop*/;
4281 val_t
typing___ABinopExpr___raw_arguments(val_t self
) {
4282 struct trace_t trace
= {NULL
, NULL
, 1198, LOCATE_typing___ABinopExpr___raw_arguments
};
4284 void **closurevariable
= NULL
;
4285 trace
.prev
= tracehead
; tracehead
= &trace
;
4286 trace
.file
= LOCATE_typing
;
4288 variable
[2] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[PExpr]*/
4289 variable
[3] = variable
[0];
4290 variable
[3] = CALL_parser_nodes___ABinopExpr___n_expr2(variable
[3])(variable
[3]) /*ABinopExpr::n_expr2*/;
4291 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
4292 variable
[1] = variable
[2];
4293 goto return_label117
;
4294 return_label117
: while(false);
4295 tracehead
= trace
.prev
;
4298 val_t
typing___AEqExpr___name(val_t self
) {
4299 struct trace_t trace
= {NULL
, NULL
, 1201, LOCATE_typing___AEqExpr___name
};
4300 static val_t once_value_119
; static int once_bool_119
; /* Once value for variable[2]*/
4302 void **closurevariable
= NULL
;
4303 trace
.prev
= tracehead
; tracehead
= &trace
;
4304 trace
.file
= LOCATE_typing
;
4306 if (once_bool_119
) variable
[2] = once_value_119
;
4308 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
4309 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4310 once_value_119
= variable
[2];
4311 once_bool_119
= true;
4313 variable
[1] = variable
[2];
4314 goto return_label118
;
4315 return_label118
: while(false);
4316 tracehead
= trace
.prev
;
4319 val_t
typing___ANeExpr___name(val_t self
) {
4320 struct trace_t trace
= {NULL
, NULL
, 1204, LOCATE_typing___ANeExpr___name
};
4321 static val_t once_value_121
; static int once_bool_121
; /* Once value for variable[2]*/
4323 void **closurevariable
= NULL
;
4324 trace
.prev
= tracehead
; tracehead
= &trace
;
4325 trace
.file
= LOCATE_typing
;
4327 if (once_bool_121
) variable
[2] = once_value_121
;
4329 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
4330 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4331 once_value_121
= variable
[2];
4332 once_bool_121
= true;
4334 variable
[1] = variable
[2];
4335 goto return_label120
;
4336 return_label120
: while(false);
4337 tracehead
= trace
.prev
;
4340 val_t
typing___ALtExpr___name(val_t self
) {
4341 struct trace_t trace
= {NULL
, NULL
, 1207, LOCATE_typing___ALtExpr___name
};
4342 static val_t once_value_123
; static int once_bool_123
; /* Once value for variable[2]*/
4344 void **closurevariable
= NULL
;
4345 trace
.prev
= tracehead
; tracehead
= &trace
;
4346 trace
.file
= LOCATE_typing
;
4348 if (once_bool_123
) variable
[2] = once_value_123
;
4350 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
4351 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4352 once_value_123
= variable
[2];
4353 once_bool_123
= true;
4355 variable
[1] = variable
[2];
4356 goto return_label122
;
4357 return_label122
: while(false);
4358 tracehead
= trace
.prev
;
4361 val_t
typing___ALeExpr___name(val_t self
) {
4362 struct trace_t trace
= {NULL
, NULL
, 1210, LOCATE_typing___ALeExpr___name
};
4363 static val_t once_value_125
; static int once_bool_125
; /* Once value for variable[2]*/
4365 void **closurevariable
= NULL
;
4366 trace
.prev
= tracehead
; tracehead
= &trace
;
4367 trace
.file
= LOCATE_typing
;
4369 if (once_bool_125
) variable
[2] = once_value_125
;
4371 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
4372 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4373 once_value_125
= variable
[2];
4374 once_bool_125
= true;
4376 variable
[1] = variable
[2];
4377 goto return_label124
;
4378 return_label124
: while(false);
4379 tracehead
= trace
.prev
;
4382 val_t
typing___AGtExpr___name(val_t self
) {
4383 struct trace_t trace
= {NULL
, NULL
, 1213, LOCATE_typing___AGtExpr___name
};
4384 static val_t once_value_127
; static int once_bool_127
; /* Once value for variable[2]*/
4386 void **closurevariable
= NULL
;
4387 trace
.prev
= tracehead
; tracehead
= &trace
;
4388 trace
.file
= LOCATE_typing
;
4390 if (once_bool_127
) variable
[2] = once_value_127
;
4392 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
4393 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4394 once_value_127
= variable
[2];
4395 once_bool_127
= true;
4397 variable
[1] = variable
[2];
4398 goto return_label126
;
4399 return_label126
: while(false);
4400 tracehead
= trace
.prev
;
4403 val_t
typing___AGeExpr___name(val_t self
) {
4404 struct trace_t trace
= {NULL
, NULL
, 1216, LOCATE_typing___AGeExpr___name
};
4405 static val_t once_value_129
; static int once_bool_129
; /* Once value for variable[2]*/
4407 void **closurevariable
= NULL
;
4408 trace
.prev
= tracehead
; tracehead
= &trace
;
4409 trace
.file
= LOCATE_typing
;
4411 if (once_bool_129
) variable
[2] = once_value_129
;
4413 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
4414 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4415 once_value_129
= variable
[2];
4416 once_bool_129
= true;
4418 variable
[1] = variable
[2];
4419 goto return_label128
;
4420 return_label128
: while(false);
4421 tracehead
= trace
.prev
;
4424 val_t
typing___APlusExpr___name(val_t self
) {
4425 struct trace_t trace
= {NULL
, NULL
, 1219, LOCATE_typing___APlusExpr___name
};
4426 static val_t once_value_131
; static int once_bool_131
; /* Once value for variable[2]*/
4428 void **closurevariable
= NULL
;
4429 trace
.prev
= tracehead
; tracehead
= &trace
;
4430 trace
.file
= LOCATE_typing
;
4432 if (once_bool_131
) variable
[2] = once_value_131
;
4434 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
4435 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4436 once_value_131
= variable
[2];
4437 once_bool_131
= true;
4439 variable
[1] = variable
[2];
4440 goto return_label130
;
4441 return_label130
: while(false);
4442 tracehead
= trace
.prev
;
4445 val_t
typing___AMinusExpr___name(val_t self
) {
4446 struct trace_t trace
= {NULL
, NULL
, 1222, LOCATE_typing___AMinusExpr___name
};
4447 static val_t once_value_133
; static int once_bool_133
; /* Once value for variable[2]*/
4449 void **closurevariable
= NULL
;
4450 trace
.prev
= tracehead
; tracehead
= &trace
;
4451 trace
.file
= LOCATE_typing
;
4453 if (once_bool_133
) variable
[2] = once_value_133
;
4455 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
4456 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4457 once_value_133
= variable
[2];
4458 once_bool_133
= true;
4460 variable
[1] = variable
[2];
4461 goto return_label132
;
4462 return_label132
: while(false);
4463 tracehead
= trace
.prev
;
4466 val_t
typing___AStarshipExpr___name(val_t self
) {
4467 struct trace_t trace
= {NULL
, NULL
, 1225, LOCATE_typing___AStarshipExpr___name
};
4468 static val_t once_value_135
; static int once_bool_135
; /* Once value for variable[2]*/
4470 void **closurevariable
= NULL
;
4471 trace
.prev
= tracehead
; tracehead
= &trace
;
4472 trace
.file
= LOCATE_typing
;
4474 if (once_bool_135
) variable
[2] = once_value_135
;
4476 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("<=>"), TAG_Int(3)); /*new String*/
4477 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4478 once_value_135
= variable
[2];
4479 once_bool_135
= true;
4481 variable
[1] = variable
[2];
4482 goto return_label134
;
4483 return_label134
: while(false);
4484 tracehead
= trace
.prev
;
4487 val_t
typing___AStarExpr___name(val_t self
) {
4488 struct trace_t trace
= {NULL
, NULL
, 1228, LOCATE_typing___AStarExpr___name
};
4489 static val_t once_value_137
; static int once_bool_137
; /* Once value for variable[2]*/
4491 void **closurevariable
= NULL
;
4492 trace
.prev
= tracehead
; tracehead
= &trace
;
4493 trace
.file
= LOCATE_typing
;
4495 if (once_bool_137
) variable
[2] = once_value_137
;
4497 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
4498 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4499 once_value_137
= variable
[2];
4500 once_bool_137
= true;
4502 variable
[1] = variable
[2];
4503 goto return_label136
;
4504 return_label136
: while(false);
4505 tracehead
= trace
.prev
;
4508 val_t
typing___ASlashExpr___name(val_t self
) {
4509 struct trace_t trace
= {NULL
, NULL
, 1231, LOCATE_typing___ASlashExpr___name
};
4510 static val_t once_value_139
; static int once_bool_139
; /* Once value for variable[2]*/
4512 void **closurevariable
= NULL
;
4513 trace
.prev
= tracehead
; tracehead
= &trace
;
4514 trace
.file
= LOCATE_typing
;
4516 if (once_bool_139
) variable
[2] = once_value_139
;
4518 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
4519 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4520 once_value_139
= variable
[2];
4521 once_bool_139
= true;
4523 variable
[1] = variable
[2];
4524 goto return_label138
;
4525 return_label138
: while(false);
4526 tracehead
= trace
.prev
;
4529 val_t
typing___APercentExpr___name(val_t self
) {
4530 struct trace_t trace
= {NULL
, NULL
, 1234, LOCATE_typing___APercentExpr___name
};
4531 static val_t once_value_141
; static int once_bool_141
; /* Once value for variable[2]*/
4533 void **closurevariable
= NULL
;
4534 trace
.prev
= tracehead
; tracehead
= &trace
;
4535 trace
.file
= LOCATE_typing
;
4537 if (once_bool_141
) variable
[2] = once_value_141
;
4539 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)); /*new String*/
4540 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4541 once_value_141
= variable
[2];
4542 once_bool_141
= true;
4544 variable
[1] = variable
[2];
4545 goto return_label140
;
4546 return_label140
: while(false);
4547 tracehead
= trace
.prev
;
4550 val_t
typing___AUminusExpr___name(val_t self
) {
4551 struct trace_t trace
= {NULL
, NULL
, 1238, LOCATE_typing___AUminusExpr___name
};
4552 static val_t once_value_143
; static int once_bool_143
; /* Once value for variable[2]*/
4554 void **closurevariable
= NULL
;
4555 trace
.prev
= tracehead
; tracehead
= &trace
;
4556 trace
.file
= LOCATE_typing
;
4558 if (once_bool_143
) variable
[2] = once_value_143
;
4560 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
4561 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4562 once_value_143
= variable
[2];
4563 once_bool_143
= true;
4565 variable
[1] = variable
[2];
4566 goto return_label142
;
4567 return_label142
: while(false);
4568 tracehead
= trace
.prev
;
4571 val_t
typing___AUminusExpr___raw_arguments(val_t self
) {
4572 struct trace_t trace
= {NULL
, NULL
, 1239, LOCATE_typing___AUminusExpr___raw_arguments
};
4574 void **closurevariable
= NULL
;
4575 trace
.prev
= tracehead
; tracehead
= &trace
;
4576 trace
.file
= LOCATE_typing
;
4578 variable
[1] = NIT_NULL
/*null*/;
4579 goto return_label144
;
4580 return_label144
: while(false);
4581 tracehead
= trace
.prev
;
4584 void typing___ACallFormExpr___after_typing(val_t self
, val_t param0
) {
4585 struct trace_t trace
= {NULL
, NULL
, 1243, LOCATE_typing___ACallFormExpr___after_typing
};
4587 void **closurevariable
= NULL
;
4588 trace
.prev
= tracehead
; tracehead
= &trace
;
4589 trace
.file
= LOCATE_typing
;
4591 variable
[1] = param0
;
4592 variable
[3] = variable
[0];
4593 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[3])(variable
[3]) /*ASendExpr::n_expr*/;
4594 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
4595 variable
[4] = variable
[3];
4596 if (UNTAG_Bool(variable
[4])) { /* and */
4597 variable
[4] = variable
[0];
4598 variable
[4] = CALL_parser_nodes___ASendExpr___n_expr(variable
[4])(variable
[4]) /*ASendExpr::n_expr*/;
4599 variable
[4] = CALL_typing___PExpr___is_implicit_self(variable
[4])(variable
[4]) /*PExpr::is_implicit_self*/;
4601 variable
[3] = variable
[4];
4602 if (UNTAG_Bool(variable
[3])) { /*if*/
4603 variable
[4] = variable
[0];
4604 variable
[4] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[4])(variable
[4]) /*ACallFormExpr::n_id*/;
4605 variable
[4] = CALL_syntax_base___Token___to_symbol(variable
[4])(variable
[4]) /*Token::to_symbol*/;
4606 variable
[3] = variable
[4];
4607 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
4608 variable
[5] = CALL_typing___VariableContext_____bra(variable
[5])(variable
[5], variable
[3] /*name*/) /*VariableContext::[]*/;
4609 variable
[4] = variable
[5];
4610 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*variable*/ == NIT_NULL
/*null*/) || (( variable
[4] /*variable*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*variable*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*variable*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*variable*/)( variable
[4] /*variable*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
4611 if (UNTAG_Bool(variable
[5])) { /*if*/
4612 variable
[5] = TAG_Bool(( variable
[4] /*variable*/==NIT_NULL
) || VAL_ISA( variable
[4] /*variable*/, COLOR_ClosureVariable
, ID_ClosureVariable
)) /*cast ClosureVariable*/;
4613 if (UNTAG_Bool(variable
[5])) { /*if*/
4614 variable
[6] = variable
[0];
4615 variable
[6] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[6])(variable
[6]) /*ACallFormExpr::n_id*/;
4616 variable
[7] = variable
[0];
4617 variable
[7] = CALL_parser_nodes___ACallFormExpr___n_args(variable
[7])(variable
[7]) /*ACallFormExpr::n_args*/;
4618 variable
[8] = variable
[0];
4619 variable
[8] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable
[8])(variable
[8]) /*ASendExpr::n_closure_defs*/;
4620 variable
[9] = NEW_AClosureCallExpr_parser_nodes___AClosureCallExpr___init(variable
[6], variable
[7], variable
[8]); /*new AClosureCallExpr*/
4621 variable
[6] = variable
[9];
4622 variable
[5] = variable
[6];
4623 variable
[6] = variable
[0];
4624 CALL_parser_prod___PNode___replace_with(variable
[6])(variable
[6], variable
[5] /*n*/) /*Prod::replace_with*/;
4625 CALL_syntax_base___AClosureCallExpr___variable__eq( variable
[5] /*n*/)( variable
[5] /*n*/, variable
[4] /*variable*/) /*AClosureCallExpr::variable=*/;
4626 CALL_typing___PNode___after_typing( variable
[5] /*n*/)( variable
[5] /*n*/, variable
[1] /*v*/) /*AClosureCallExpr::after_typing*/;
4627 goto return_label145
;
4629 variable
[5] = variable
[0];
4630 variable
[5] = CALL_parser_nodes___ACallFormExpr___n_args(variable
[5])(variable
[5]) /*ACallFormExpr::n_args*/;
4631 variable
[5] = CALL_abstract_collection___Collection___is_empty(variable
[5])(variable
[5]) /*List::is_empty*/;
4632 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[5])))) { /*if*/
4633 variable
[5] = variable
[0];
4634 variable
[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
4635 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
4636 variable
[8] = variable
[7];
4637 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[8]) /*AbstractArray::add*/;
4638 variable
[9] = variable
[3] /*name*/;
4639 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
4640 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[9]) /*AbstractArray::add*/;
4641 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(" is variable, not a function."), TAG_Int(29)); /*new String*/
4642 variable
[11] = variable
[10];
4643 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[11]) /*AbstractArray::add*/;
4644 variable
[6] = CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/;
4645 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[6]) /*AbsSyntaxVisitor::error*/;
4647 variable
[6] = variable
[0];
4648 variable
[6] = CALL_typing___ACallFormExpr___variable_create(variable
[6])(variable
[6], variable
[4] /*variable*/) /*ACallFormExpr::variable_create*/;
4649 variable
[5] = variable
[6];
4650 CALL_syntax_base___AVarFormExpr___variable__eq( variable
[5] /*vform*/)( variable
[5] /*vform*/, variable
[4] /*variable*/) /*AVarFormExpr::variable=*/;
4651 variable
[6] = variable
[0];
4652 CALL_parser_prod___PNode___replace_with(variable
[6])(variable
[6], variable
[5] /*vform*/) /*Prod::replace_with*/;
4653 CALL_typing___PNode___after_typing( variable
[5] /*vform*/)( variable
[5] /*vform*/, variable
[1] /*v*/) /*PNode::after_typing*/;
4654 goto return_label145
;
4658 CALL_SUPER_typing___ACallFormExpr___after_typing(variable
[0])(variable
[0], variable
[1]) /*super ACallFormExpr::after_typing*/;
4659 return_label145
: while(false);
4660 tracehead
= trace
.prev
;
4663 val_t
typing___ACallFormExpr___closure_defs(val_t self
) {
4664 struct trace_t trace
= {NULL
, NULL
, 1270, LOCATE_typing___ACallFormExpr___closure_defs
};
4666 void **closurevariable
= NULL
;
4667 trace
.prev
= tracehead
; tracehead
= &trace
;
4668 trace
.file
= LOCATE_typing
;
4670 variable
[2] = variable
[0];
4671 variable
[2] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable
[2])(variable
[2]) /*ASendExpr::n_closure_defs*/;
4672 variable
[2] = TAG_Bool((variable
[2] == NIT_NULL
/*null*/) || ((variable
[2] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[2])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[2], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[2])(variable
[2], NIT_NULL
/*null*/) /*Object::==*/)))));
4673 variable
[3] = variable
[2];
4674 if (!UNTAG_Bool(variable
[3])) { /* or */
4675 variable
[3] = variable
[0];
4676 variable
[3] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable
[3])(variable
[3]) /*ASendExpr::n_closure_defs*/;
4677 variable
[3] = CALL_abstract_collection___Collection___is_empty(variable
[3])(variable
[3]) /*List::is_empty*/;
4679 variable
[2] = variable
[3];
4680 if (UNTAG_Bool(variable
[2])) { /*if*/
4681 variable
[1] = NIT_NULL
/*null*/;
4682 goto return_label146
;
4684 variable
[2] = variable
[0];
4685 variable
[2] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable
[2])(variable
[2]) /*ASendExpr::n_closure_defs*/;
4686 variable
[2] = CALL_array___Collection___to_a(variable
[2])(variable
[2]) /*Collection::to_a*/;
4687 variable
[1] = variable
[2];
4688 goto return_label146
;
4690 return_label146
: while(false);
4691 tracehead
= trace
.prev
;
4694 val_t
typing___ACallFormExpr___variable_create(val_t self
, val_t param0
) {
4695 struct trace_t trace
= {NULL
, NULL
, 1279, LOCATE_typing___ACallFormExpr___variable_create
};
4696 val_t
*variable
= NULL
;
4697 void **closurevariable
= NULL
;
4698 trace
.prev
= tracehead
; tracehead
= &trace
;
4699 trace
.file
= LOCATE_typing
;
4700 fprintf(stderr
, "Deferred method called");
4701 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1279);
4703 tracehead
= trace
.prev
;
4706 val_t
typing___ACallExpr___name(val_t self
) {
4707 struct trace_t trace
= {NULL
, NULL
, 1289, LOCATE_typing___ACallExpr___name
};
4709 void **closurevariable
= NULL
;
4710 trace
.prev
= tracehead
; tracehead
= &trace
;
4711 trace
.file
= LOCATE_typing
;
4713 variable
[2] = variable
[0];
4714 variable
[2] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[2])(variable
[2]) /*ACallFormExpr::n_id*/;
4715 variable
[2] = CALL_syntax_base___Token___to_symbol(variable
[2])(variable
[2]) /*Token::to_symbol*/;
4716 variable
[1] = variable
[2];
4717 goto return_label147
;
4718 return_label147
: while(false);
4719 tracehead
= trace
.prev
;
4722 val_t
typing___ACallExpr___raw_arguments(val_t self
) {
4723 struct trace_t trace
= {NULL
, NULL
, 1290, LOCATE_typing___ACallExpr___raw_arguments
};
4725 void **closurevariable
= NULL
;
4726 trace
.prev
= tracehead
; tracehead
= &trace
;
4727 trace
.file
= LOCATE_typing
;
4729 variable
[2] = variable
[0];
4730 variable
[2] = CALL_parser_nodes___ACallFormExpr___n_args(variable
[2])(variable
[2]) /*ACallFormExpr::n_args*/;
4731 variable
[2] = CALL_array___Collection___to_a(variable
[2])(variable
[2]) /*Collection::to_a*/;
4732 variable
[1] = variable
[2];
4733 goto return_label148
;
4734 return_label148
: while(false);
4735 tracehead
= trace
.prev
;
4738 val_t
typing___ACallExpr___variable_create(val_t self
, val_t param0
) {
4739 struct trace_t trace
= {NULL
, NULL
, 1284, LOCATE_typing___ACallExpr___variable_create
};
4741 void **closurevariable
= NULL
;
4742 trace
.prev
= tracehead
; tracehead
= &trace
;
4743 trace
.file
= LOCATE_typing
;
4745 variable
[1] = param0
;
4746 variable
[3] = variable
[0];
4747 variable
[3] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[3])(variable
[3]) /*ACallFormExpr::n_id*/;
4748 variable
[4] = NEW_AVarExpr_parser_prod___AVarExpr___init_avarexpr(variable
[3]); /*new AVarExpr*/
4749 variable
[3] = variable
[4];
4750 variable
[2] = variable
[3];
4751 goto return_label149
;
4752 return_label149
: while(false);
4753 tracehead
= trace
.prev
;
4756 val_t
typing___ACallAssignExpr___name(val_t self
) {
4757 struct trace_t trace
= {NULL
, NULL
, 1299, LOCATE_typing___ACallAssignExpr___name
};
4759 void **closurevariable
= NULL
;
4760 trace
.prev
= tracehead
; tracehead
= &trace
;
4761 trace
.file
= LOCATE_typing
;
4763 variable
[2] = variable
[0];
4764 variable
[2] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[2])(variable
[2]) /*ACallFormExpr::n_id*/;
4765 variable
[2] = CALL_lexer___Token___text(variable
[2])(variable
[2]) /*Token::text*/;
4766 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
4767 variable
[2] = CALL_string___String_____plus(variable
[2])(variable
[2], variable
[3]) /*String::+*/;
4768 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4769 variable
[1] = variable
[2];
4770 goto return_label150
;
4771 return_label150
: while(false);
4772 tracehead
= trace
.prev
;
4775 val_t
typing___ACallAssignExpr___raw_arguments(val_t self
) {
4776 struct trace_t trace
= {NULL
, NULL
, 1300, LOCATE_typing___ACallAssignExpr___raw_arguments
};
4778 void **closurevariable
= NULL
;
4779 trace
.prev
= tracehead
; tracehead
= &trace
;
4780 trace
.file
= LOCATE_typing
;
4782 variable
[3] = variable
[0];
4783 variable
[3] = CALL_parser_nodes___ACallFormExpr___n_args(variable
[3])(variable
[3]) /*ACallFormExpr::n_args*/;
4784 variable
[3] = CALL_array___Collection___to_a(variable
[3])(variable
[3]) /*Collection::to_a*/;
4785 variable
[2] = variable
[3];
4786 variable
[3] = variable
[0];
4787 variable
[3] = CALL_parser_nodes___AAssignFormExpr___n_value(variable
[3])(variable
[3]) /*AAssignFormExpr::n_value*/;
4788 CALL_abstract_collection___SimpleCollection___add( variable
[2] /*res*/)( variable
[2] /*res*/, variable
[3]) /*AbstractArray::add*/;
4789 variable
[1] = variable
[2] /*res*/;
4790 goto return_label151
;
4791 return_label151
: while(false);
4792 tracehead
= trace
.prev
;
4795 val_t
typing___ACallAssignExpr___variable_create(val_t self
, val_t param0
) {
4796 struct trace_t trace
= {NULL
, NULL
, 1294, LOCATE_typing___ACallAssignExpr___variable_create
};
4798 void **closurevariable
= NULL
;
4799 trace
.prev
= tracehead
; tracehead
= &trace
;
4800 trace
.file
= LOCATE_typing
;
4802 variable
[1] = param0
;
4803 variable
[3] = variable
[0];
4804 variable
[3] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[3])(variable
[3]) /*ACallFormExpr::n_id*/;
4805 variable
[4] = variable
[0];
4806 variable
[4] = CALL_parser_nodes___AAssignFormExpr___n_assign(variable
[4])(variable
[4]) /*AAssignFormExpr::n_assign*/;
4807 variable
[5] = variable
[0];
4808 variable
[5] = CALL_parser_nodes___AAssignFormExpr___n_value(variable
[5])(variable
[5]) /*AAssignFormExpr::n_value*/;
4809 variable
[6] = NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___init_avarassignexpr(variable
[3], variable
[4], variable
[5]); /*new AVarAssignExpr*/
4810 variable
[3] = variable
[6];
4811 variable
[2] = variable
[3];
4812 goto return_label152
;
4813 return_label152
: while(false);
4814 tracehead
= trace
.prev
;
4817 val_t
typing___ACallReassignExpr___name(val_t self
) {
4818 struct trace_t trace
= {NULL
, NULL
, 1314, LOCATE_typing___ACallReassignExpr___name
};
4820 void **closurevariable
= NULL
;
4821 trace
.prev
= tracehead
; tracehead
= &trace
;
4822 trace
.file
= LOCATE_typing
;
4824 variable
[2] = variable
[0];
4825 variable
[2] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[2])(variable
[2]) /*ACallFormExpr::n_id*/;
4826 variable
[2] = CALL_syntax_base___Token___to_symbol(variable
[2])(variable
[2]) /*Token::to_symbol*/;
4827 variable
[1] = variable
[2];
4828 goto return_label153
;
4829 return_label153
: while(false);
4830 tracehead
= trace
.prev
;
4833 val_t
typing___ACallReassignExpr___raw_arguments(val_t self
) {
4834 struct trace_t trace
= {NULL
, NULL
, 1315, LOCATE_typing___ACallReassignExpr___raw_arguments
};
4836 void **closurevariable
= NULL
;
4837 trace
.prev
= tracehead
; tracehead
= &trace
;
4838 trace
.file
= LOCATE_typing
;
4840 variable
[2] = variable
[0];
4841 variable
[2] = CALL_parser_nodes___ACallFormExpr___n_args(variable
[2])(variable
[2]) /*ACallFormExpr::n_args*/;
4842 variable
[2] = CALL_array___Collection___to_a(variable
[2])(variable
[2]) /*Collection::to_a*/;
4843 variable
[1] = variable
[2];
4844 goto return_label154
;
4845 return_label154
: while(false);
4846 tracehead
= trace
.prev
;
4849 val_t
typing___ACallReassignExpr___variable_create(val_t self
, val_t param0
) {
4850 struct trace_t trace
= {NULL
, NULL
, 1309, LOCATE_typing___ACallReassignExpr___variable_create
};
4852 void **closurevariable
= NULL
;
4853 trace
.prev
= tracehead
; tracehead
= &trace
;
4854 trace
.file
= LOCATE_typing
;
4856 variable
[1] = param0
;
4857 variable
[3] = variable
[0];
4858 variable
[3] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[3])(variable
[3]) /*ACallFormExpr::n_id*/;
4859 variable
[4] = variable
[0];
4860 variable
[4] = CALL_parser_nodes___AReassignFormExpr___n_assign_op(variable
[4])(variable
[4]) /*AReassignFormExpr::n_assign_op*/;
4861 variable
[5] = variable
[0];
4862 variable
[5] = CALL_parser_nodes___AReassignFormExpr___n_value(variable
[5])(variable
[5]) /*AReassignFormExpr::n_value*/;
4863 variable
[6] = NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___init_avarreassignexpr(variable
[3], variable
[4], variable
[5]); /*new AVarReassignExpr*/
4864 variable
[3] = variable
[6];
4865 variable
[2] = variable
[3];
4866 goto return_label155
;
4867 return_label155
: while(false);
4868 tracehead
= trace
.prev
;
4871 val_t
typing___ABraExpr___name(val_t self
) {
4872 struct trace_t trace
= {NULL
, NULL
, 1319, LOCATE_typing___ABraExpr___name
};
4873 static val_t once_value_157
; static int once_bool_157
; /* Once value for variable[2]*/
4875 void **closurevariable
= NULL
;
4876 trace
.prev
= tracehead
; tracehead
= &trace
;
4877 trace
.file
= LOCATE_typing
;
4879 if (once_bool_157
) variable
[2] = once_value_157
;
4881 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
4882 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4883 once_value_157
= variable
[2];
4884 once_bool_157
= true;
4886 variable
[1] = variable
[2];
4887 goto return_label156
;
4888 return_label156
: while(false);
4889 tracehead
= trace
.prev
;
4892 val_t
typing___ABraExpr___raw_arguments(val_t self
) {
4893 struct trace_t trace
= {NULL
, NULL
, 1320, LOCATE_typing___ABraExpr___raw_arguments
};
4895 void **closurevariable
= NULL
;
4896 trace
.prev
= tracehead
; tracehead
= &trace
;
4897 trace
.file
= LOCATE_typing
;
4899 variable
[2] = variable
[0];
4900 variable
[2] = CALL_parser_nodes___ABraFormExpr___n_args(variable
[2])(variable
[2]) /*ABraFormExpr::n_args*/;
4901 variable
[2] = CALL_array___Collection___to_a(variable
[2])(variable
[2]) /*Collection::to_a*/;
4902 variable
[1] = variable
[2];
4903 goto return_label158
;
4904 return_label158
: while(false);
4905 tracehead
= trace
.prev
;
4908 val_t
typing___ABraAssignExpr___name(val_t self
) {
4909 struct trace_t trace
= {NULL
, NULL
, 1324, LOCATE_typing___ABraAssignExpr___name
};
4910 static val_t once_value_160
; static int once_bool_160
; /* Once value for variable[2]*/
4912 void **closurevariable
= NULL
;
4913 trace
.prev
= tracehead
; tracehead
= &trace
;
4914 trace
.file
= LOCATE_typing
;
4916 if (once_bool_160
) variable
[2] = once_value_160
;
4918 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("[]="), TAG_Int(3)); /*new String*/
4919 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4920 once_value_160
= variable
[2];
4921 once_bool_160
= true;
4923 variable
[1] = variable
[2];
4924 goto return_label159
;
4925 return_label159
: while(false);
4926 tracehead
= trace
.prev
;
4929 val_t
typing___ABraAssignExpr___raw_arguments(val_t self
) {
4930 struct trace_t trace
= {NULL
, NULL
, 1325, LOCATE_typing___ABraAssignExpr___raw_arguments
};
4932 void **closurevariable
= NULL
;
4933 trace
.prev
= tracehead
; tracehead
= &trace
;
4934 trace
.file
= LOCATE_typing
;
4936 variable
[3] = variable
[0];
4937 variable
[3] = CALL_parser_nodes___ABraFormExpr___n_args(variable
[3])(variable
[3]) /*ABraFormExpr::n_args*/;
4938 variable
[3] = CALL_array___Collection___to_a(variable
[3])(variable
[3]) /*Collection::to_a*/;
4939 variable
[2] = variable
[3];
4940 variable
[3] = variable
[0];
4941 variable
[3] = CALL_parser_nodes___AAssignFormExpr___n_value(variable
[3])(variable
[3]) /*AAssignFormExpr::n_value*/;
4942 CALL_abstract_collection___SimpleCollection___add( variable
[2] /*res*/)( variable
[2] /*res*/, variable
[3]) /*AbstractArray::add*/;
4943 variable
[1] = variable
[2] /*res*/;
4944 goto return_label161
;
4945 return_label161
: while(false);
4946 tracehead
= trace
.prev
;
4949 val_t
typing___ABraReassignExpr___name(val_t self
) {
4950 struct trace_t trace
= {NULL
, NULL
, 1334, LOCATE_typing___ABraReassignExpr___name
};
4951 static val_t once_value_163
; static int once_bool_163
; /* Once value for variable[2]*/
4953 void **closurevariable
= NULL
;
4954 trace
.prev
= tracehead
; tracehead
= &trace
;
4955 trace
.file
= LOCATE_typing
;
4957 if (once_bool_163
) variable
[2] = once_value_163
;
4959 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
4960 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4961 once_value_163
= variable
[2];
4962 once_bool_163
= true;
4964 variable
[1] = variable
[2];
4965 goto return_label162
;
4966 return_label162
: while(false);
4967 tracehead
= trace
.prev
;
4970 val_t
typing___ABraReassignExpr___raw_arguments(val_t self
) {
4971 struct trace_t trace
= {NULL
, NULL
, 1335, LOCATE_typing___ABraReassignExpr___raw_arguments
};
4973 void **closurevariable
= NULL
;
4974 trace
.prev
= tracehead
; tracehead
= &trace
;
4975 trace
.file
= LOCATE_typing
;
4977 variable
[2] = variable
[0];
4978 variable
[2] = CALL_parser_nodes___ABraFormExpr___n_args(variable
[2])(variable
[2]) /*ABraFormExpr::n_args*/;
4979 variable
[2] = CALL_array___Collection___to_a(variable
[2])(variable
[2]) /*Collection::to_a*/;
4980 variable
[1] = variable
[2];
4981 goto return_label164
;
4982 return_label164
: while(false);
4983 tracehead
= trace
.prev
;
4986 val_t
typing___AInitExpr___name(val_t self
) {
4987 struct trace_t trace
= {NULL
, NULL
, 1339, LOCATE_typing___AInitExpr___name
};
4988 static val_t once_value_166
; static int once_bool_166
; /* Once value for variable[2]*/
4990 void **closurevariable
= NULL
;
4991 trace
.prev
= tracehead
; tracehead
= &trace
;
4992 trace
.file
= LOCATE_typing
;
4994 if (once_bool_166
) variable
[2] = once_value_166
;
4996 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
4997 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
4998 once_value_166
= variable
[2];
4999 once_bool_166
= true;
5001 variable
[1] = variable
[2];
5002 goto return_label165
;
5003 return_label165
: while(false);
5004 tracehead
= trace
.prev
;
5007 val_t
typing___AInitExpr___raw_arguments(val_t self
) {
5008 struct trace_t trace
= {NULL
, NULL
, 1340, LOCATE_typing___AInitExpr___raw_arguments
};
5010 void **closurevariable
= NULL
;
5011 trace
.prev
= tracehead
; tracehead
= &trace
;
5012 trace
.file
= LOCATE_typing
;
5014 variable
[2] = variable
[0];
5015 variable
[2] = CALL_parser_nodes___AInitExpr___n_args(variable
[2])(variable
[2]) /*AInitExpr::n_args*/;
5016 variable
[2] = CALL_array___Collection___to_a(variable
[2])(variable
[2]) /*Collection::to_a*/;
5017 variable
[1] = variable
[2];
5018 goto return_label167
;
5019 return_label167
: while(false);
5020 tracehead
= trace
.prev
;
5023 void typing___AClosureCallExpr___after_typing(val_t self
, val_t param0
) {
5024 struct trace_t trace
= {NULL
, NULL
, 1344, LOCATE_typing___AClosureCallExpr___after_typing
};
5026 void **closurevariable
= NULL
;
5027 trace
.prev
= tracehead
; tracehead
= &trace
;
5028 trace
.file
= LOCATE_typing
;
5030 variable
[1] = param0
;
5031 variable
[4] = variable
[0];
5032 variable
[4] = CALL_syntax_base___AClosureCallExpr___variable(variable
[4])(variable
[4]) /*AClosureCallExpr::variable*/;
5033 variable
[3] = variable
[4];
5034 variable
[5] = CALL_syntax_base___ClosureVariable___closure( variable
[3] /*va*/)( variable
[3] /*va*/) /*ClosureVariable::closure*/;
5035 variable
[5] = CALL_static_type___MMClosure___signature(variable
[5])(variable
[5]) /*MMClosure::signature*/;
5036 variable
[4] = variable
[5];
5037 variable
[6] = variable
[0];
5038 variable
[7] = variable
[0];
5039 variable
[7] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[7])(variable
[7]) /*ACallFormExpr::n_id*/;
5040 variable
[7] = CALL_syntax_base___Token___to_symbol(variable
[7])(variable
[7]) /*Token::to_symbol*/;
5041 variable
[8] = variable
[0];
5042 variable
[8] = CALL_parser_nodes___ACallFormExpr___n_args(variable
[8])(variable
[8]) /*ACallFormExpr::n_args*/;
5043 variable
[8] = CALL_array___Collection___to_a(variable
[8])(variable
[8]) /*Collection::to_a*/;
5044 variable
[6] = CALL_typing___AAbsSendExpr___process_signature(variable
[6])(variable
[6], variable
[1] /*v*/, variable
[4] /*sig*/, variable
[7], variable
[8]) /*AAbsSendExpr::process_signature*/;
5045 variable
[5] = variable
[6];
5046 variable
[6] = variable
[0];
5047 variable
[6] = CALL_typing___ASendExpr___closure_defs(variable
[6])(variable
[6]) /*ACallFormExpr::closure_defs*/;
5048 variable
[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[6] == NIT_NULL
/*null*/) || ((variable
[6] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[6])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[6], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[6])(variable
[6], NIT_NULL
/*null*/) /*Object::==*/)))))));
5049 if (UNTAG_Bool(variable
[6])) { /*if*/
5050 variable
[6] = variable
[0];
5051 variable
[7] = variable
[0];
5052 variable
[7] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[7])(variable
[7]) /*ACallFormExpr::n_id*/;
5053 variable
[7] = CALL_syntax_base___Token___to_symbol(variable
[7])(variable
[7]) /*Token::to_symbol*/;
5054 variable
[8] = variable
[0];
5055 variable
[8] = CALL_typing___ASendExpr___closure_defs(variable
[8])(variable
[8]) /*ACallFormExpr::closure_defs*/;
5056 CALL_typing___AAbsSendExpr___process_closures(variable
[6])(variable
[6], variable
[1] /*v*/, variable
[4] /*sig*/, variable
[7], variable
[8]) /*AAbsSendExpr::process_closures*/;
5058 variable
[6] = TAG_Bool(( variable
[5] /*args*/ == NIT_NULL
/*null*/) || (( variable
[5] /*args*/ != NIT_NULL
) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*args*/)( variable
[5] /*args*/, NIT_NULL
/*null*/) /*AbstractArray::==*/)));
5059 if (UNTAG_Bool(variable
[6])) { /*if*/
5060 goto return_label168
;
5062 variable
[6] = variable
[0];
5063 ATTR_typing___AAbsSendExpr____prop(variable
[6]) /*AAbsSendExpr::_prop*/ = NIT_NULL
/*null*/;
5064 variable
[6] = variable
[0];
5065 ATTR_typing___AAbsSendExpr____prop_signature(variable
[6]) /*AAbsSendExpr::_prop_signature*/ = variable
[4] /*sig*/;
5066 variable
[6] = variable
[0];
5067 ATTR_typing___AAbsSendExpr____arguments(variable
[6]) /*AAbsSendExpr::_arguments*/ = variable
[5] /*args*/;
5068 variable
[6] = variable
[0];
5069 variable
[7] = CALL_static_type___MMSignature___return_type( variable
[4] /*sig*/)( variable
[4] /*sig*/) /*MMSignature::return_type*/;
5070 ATTR_typing___PExpr____stype(variable
[6]) /*PExpr::_stype*/ = variable
[7];
5071 return_label168
: while(false);
5072 tracehead
= trace
.prev
;
5075 void typing___PClosureDef___accept_typing(val_t self
, val_t param0
) {
5076 struct trace_t trace
= {NULL
, NULL
, 1362, LOCATE_typing___PClosureDef___accept_typing
};
5078 void **closurevariable
= NULL
;
5079 trace
.prev
= tracehead
; tracehead
= &trace
;
5080 trace
.file
= LOCATE_typing
;
5082 variable
[1] = param0
;
5083 variable
[3] = variable
[0];
5084 variable
[3] = ATTR_typing___PClosureDef____accept_typing2(variable
[3]) /*PClosureDef::_accept_typing2*/;
5085 if (UNTAG_Bool(variable
[3])) { /*if*/
5086 CALL_SUPER_typing___PClosureDef___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super PClosureDef::accept_typing*/;
5088 return_label169
: while(false);
5089 tracehead
= trace
.prev
;
5092 void typing___PClosureDef___accept_typing2(val_t self
, val_t param0
, val_t param1
) {
5093 struct trace_t trace
= {NULL
, NULL
, 1368, LOCATE_typing___PClosureDef___accept_typing2
};
5094 val_t
*variable
= NULL
;
5095 void **closurevariable
= NULL
;
5096 trace
.prev
= tracehead
; tracehead
= &trace
;
5097 trace
.file
= LOCATE_typing
;
5098 fprintf(stderr
, "Deferred method called");
5099 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1368);
5101 tracehead
= trace
.prev
;
5104 void typing___AClosureDef___accept_typing2(val_t self
, val_t param0
, val_t param1
) {
5105 struct trace_t trace
= {NULL
, NULL
, 1372, LOCATE_typing___AClosureDef___accept_typing2
};
5107 void **closurevariable
= NULL
;
5108 trace
.prev
= tracehead
; tracehead
= &trace
;
5109 trace
.file
= LOCATE_typing
;
5111 variable
[1] = param0
;
5112 variable
[2] = param1
;
5113 variable
[5] = CALL_static_type___MMClosure___signature( variable
[2] /*clos*/)( variable
[2] /*clos*/) /*MMClosure::signature*/;
5114 variable
[4] = variable
[5];
5115 variable
[5] = CALL_static_type___MMSignature___arity( variable
[4] /*sig*/)( variable
[4] /*sig*/) /*MMSignature::arity*/;
5116 variable
[6] = variable
[0];
5117 variable
[6] = CALL_parser_nodes___AClosureDef___n_id(variable
[6])(variable
[6]) /*AClosureDef::n_id*/;
5118 variable
[6] = CALL_abstract_collection___Collection___length(variable
[6])(variable
[6]) /*List::length*/;
5119 variable
[5] = TAG_Bool((variable
[5])!=(variable
[6]));
5120 if (UNTAG_Bool(variable
[5])) { /*if*/
5121 variable
[5] = variable
[0];
5122 variable
[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
5123 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
5124 variable
[8] = variable
[7];
5125 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[8]) /*AbstractArray::add*/;
5126 variable
[9] = CALL_static_type___MMSignature___arity( variable
[4] /*sig*/)( variable
[4] /*sig*/) /*MMSignature::arity*/;
5127 variable
[10] = variable
[9];
5128 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
5129 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[10]) /*AbstractArray::add*/;
5130 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(" automatic variable names expected, "), TAG_Int(36)); /*new String*/
5131 variable
[12] = variable
[11];
5132 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[12]) /*AbstractArray::add*/;
5133 variable
[13] = variable
[0];
5134 variable
[13] = CALL_parser_nodes___AClosureDef___n_id(variable
[13])(variable
[13]) /*AClosureDef::n_id*/;
5135 variable
[13] = CALL_abstract_collection___Collection___length(variable
[13])(variable
[13]) /*List::length*/;
5136 variable
[14] = variable
[13];
5137 variable
[14] = CALL_string___Object___to_s(variable
[14])(variable
[14]) /*Object::to_s*/;
5138 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[14]) /*AbstractArray::add*/;
5139 variable
[15] = NEW_String_string___String___with_native(BOX_NativeString(" found."), TAG_Int(7)); /*new String*/
5140 variable
[16] = variable
[15];
5141 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[16]) /*AbstractArray::add*/;
5142 variable
[6] = CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/;
5143 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[6]) /*AbsSyntaxVisitor::error*/;
5144 goto return_label170
;
5146 variable
[5] = variable
[0];
5147 CALL_syntax_base___PClosureDef___closure__eq(variable
[5])(variable
[5], variable
[2] /*clos*/) /*PClosureDef::closure=*/;
5148 variable
[6] = CALL_typing___TypingVisitor___closure( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::closure*/;
5149 variable
[5] = variable
[6];
5150 CALL_typing___TypingVisitor___closure__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[2] /*clos*/) /*TypingVisitor::closure=*/;
5151 variable
[6] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
5152 variable
[6] = CALL_typing___VariableContext___sub(variable
[6])(variable
[6]) /*VariableContext::sub*/;
5153 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6]) /*TypingVisitor::variable_ctx=*/;
5154 variable
[6] = variable
[0];
5155 variable
[7] = NEW_Array_array___Array___init(); /*new Array[AutoVariable]*/
5156 CALL_syntax_base___PClosureDef___variables__eq(variable
[6])(variable
[6], variable
[7]) /*PClosureDef::variables=*/;
5157 variable
[6] = variable
[0];
5158 variable
[6] = CALL_parser_nodes___AClosureDef___n_id(variable
[6])(variable
[6]) /*AClosureDef::n_id*/;
5159 variable
[6] = CALL_abstract_collection___Collection___length(variable
[6])(variable
[6]) /*List::length*/;
5160 variable
[7] = NEW_Range_range___Range___without_last( TAG_Int(0), variable
[6]); /*new Range[Int]*/
5161 variable
[6] = variable
[7];
5162 variable
[6] = CALL_abstract_collection___Collection___iterator(variable
[6])(variable
[6]) /*Range::iterator*/;
5163 while (true) { /*for*/
5164 variable
[7] = CALL_abstract_collection___Iterator___is_ok(variable
[6])(variable
[6]) /*Iterator::is_ok*/;
5165 if (!UNTAG_Bool(variable
[7])) break; /*for*/
5166 variable
[7] = CALL_abstract_collection___Iterator___item(variable
[6])(variable
[6]) /*Iterator::item*/;
5167 variable
[8] = variable
[7];
5168 variable
[10] = variable
[0];
5169 variable
[10] = CALL_parser_nodes___AClosureDef___n_id(variable
[10])(variable
[10]) /*AClosureDef::n_id*/;
5170 variable
[10] = CALL_abstract_collection___Map_____bra(variable
[10])(variable
[10], variable
[8] /*i*/) /*List::[]*/;
5171 variable
[10] = CALL_syntax_base___Token___to_symbol(variable
[10])(variable
[10]) /*Token::to_symbol*/;
5172 variable
[11] = variable
[0];
5173 variable
[12] = NEW_AutoVariable_syntax_base___AutoVariable___init(variable
[10], variable
[11]); /*new AutoVariable*/
5174 variable
[10] = variable
[12];
5175 variable
[9] = variable
[10];
5176 variable
[10] = variable
[0];
5177 variable
[10] = CALL_syntax_base___PClosureDef___variables(variable
[10])(variable
[10]) /*PClosureDef::variables*/;
5178 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[9] /*va*/) /*AbstractArray::add*/;
5179 variable
[10] = CALL_static_type___MMSignature_____bra( variable
[4] /*sig*/)( variable
[4] /*sig*/, variable
[8] /*i*/) /*MMSignature::[]*/;
5180 CALL_syntax_base___Variable___stype__eq( variable
[9] /*va*/)( variable
[9] /*va*/, variable
[10]) /*Variable::stype=*/;
5181 variable
[10] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
5182 CALL_typing___VariableContext___add(variable
[10])(variable
[10], variable
[9] /*va*/) /*VariableContext::add*/;
5183 continue_171
: while(0);
5184 CALL_abstract_collection___Iterator___next(variable
[6])(variable
[6]) /*Iterator::next*/;
5186 break_171
: while(0);
5187 variable
[6] = variable
[0];
5188 ATTR_typing___PClosureDef____accept_typing2(variable
[6]) /*PClosureDef::_accept_typing2*/ = TAG_Bool(true);
5189 variable
[6] = variable
[0];
5190 CALL_typing___PNode___accept_typing(variable
[6])(variable
[6], variable
[1] /*v*/) /*PClosureDef::accept_typing*/;
5191 CALL_typing___TypingVisitor___closure__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5] /*old_clos*/) /*TypingVisitor::closure=*/;
5192 return_label170
: while(false);
5193 tracehead
= trace
.prev
;
5196 void typing___AIsaExpr___after_typing(val_t self
, val_t param0
) {
5197 struct trace_t trace
= {NULL
, NULL
, 1402, LOCATE_typing___AIsaExpr___after_typing
};
5199 void **closurevariable
= NULL
;
5200 trace
.prev
= tracehead
; tracehead
= &trace
;
5201 trace
.file
= LOCATE_typing
;
5203 variable
[1] = param0
;
5204 variable
[4] = variable
[0];
5205 variable
[4] = CALL_parser_nodes___AIsaExpr___n_expr(variable
[4])(variable
[4]) /*AIsaExpr::n_expr*/;
5206 variable
[4] = CALL_typing___PExpr___its_variable(variable
[4])(variable
[4]) /*PExpr::its_variable*/;
5207 variable
[3] = variable
[4];
5208 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*variable*/ == NIT_NULL
/*null*/) || (( variable
[3] /*variable*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*variable*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*variable*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*variable*/)( variable
[3] /*variable*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
5209 if (UNTAG_Bool(variable
[4])) { /*if*/
5210 variable
[4] = variable
[0];
5211 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
5212 variable
[6] = variable
[0];
5213 variable
[6] = CALL_parser_nodes___AIsaExpr___n_type(variable
[6])(variable
[6]) /*AIsaExpr::n_type*/;
5214 variable
[6] = CALL_typing___PType___stype(variable
[6])(variable
[6]) /*PType::stype*/;
5215 variable
[5] = CALL_typing___VariableContext___sub_with(variable
[5])(variable
[5], variable
[3] /*variable*/, variable
[6]) /*VariableContext::sub_with*/;
5216 ATTR_typing___PExpr____if_true_variable_ctx(variable
[4]) /*PExpr::_if_true_variable_ctx*/ = variable
[5];
5218 variable
[4] = variable
[0];
5219 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
5220 ATTR_typing___PExpr____stype(variable
[4]) /*PExpr::_stype*/ = variable
[5];
5221 return_label172
: while(false);
5222 tracehead
= trace
.prev
;
5225 void typing___AAsCastExpr___after_typing(val_t self
, val_t param0
) {
5226 struct trace_t trace
= {NULL
, NULL
, 1413, LOCATE_typing___AAsCastExpr___after_typing
};
5228 void **closurevariable
= NULL
;
5229 trace
.prev
= tracehead
; tracehead
= &trace
;
5230 trace
.file
= LOCATE_typing
;
5232 variable
[1] = param0
;
5233 variable
[3] = variable
[0];
5234 variable
[3] = CALL_parser_nodes___AAsCastExpr___n_expr(variable
[3])(variable
[3]) /*AAsCastExpr::n_expr*/;
5235 CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*AbsSyntaxVisitor::check_expr*/;
5236 variable
[3] = variable
[0];
5237 variable
[4] = variable
[0];
5238 variable
[4] = CALL_parser_nodes___AAsCastExpr___n_type(variable
[4])(variable
[4]) /*AAsCastExpr::n_type*/;
5239 variable
[4] = CALL_typing___PType___stype(variable
[4])(variable
[4]) /*PType::stype*/;
5240 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
5241 return_label173
: while(false);
5242 tracehead
= trace
.prev
;
5245 void typing___AProxyExpr___after_typing(val_t self
, val_t param0
) {
5246 struct trace_t trace
= {NULL
, NULL
, 1421, LOCATE_typing___AProxyExpr___after_typing
};
5248 void **closurevariable
= NULL
;
5249 trace
.prev
= tracehead
; tracehead
= &trace
;
5250 trace
.file
= LOCATE_typing
;
5252 variable
[1] = param0
;
5253 variable
[3] = variable
[0];
5254 variable
[4] = variable
[0];
5255 variable
[4] = CALL_parser_nodes___AProxyExpr___n_expr(variable
[4])(variable
[4]) /*AProxyExpr::n_expr*/;
5256 variable
[4] = CALL_syntax_base___PExpr___stype(variable
[4])(variable
[4]) /*PExpr::stype*/;
5257 ATTR_typing___PExpr____stype(variable
[3]) /*PExpr::_stype*/ = variable
[4];
5258 return_label174
: while(false);
5259 tracehead
= trace
.prev
;