Update c_src.
[nit.git] / c_src / typing._sep.c
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};
5 val_t variable[6];
6 void **closurevariable = NULL;
7 trace.prev = tracehead; tracehead = &trace;
8 trace.file = LOCATE_typing;
9 variable[0] = self;
10 variable[1] = param0;
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] = ((syntax_base___MMSrcModule___node_t)CALL(variable[4],COLOR_syntax_base___MMSrcModule___node))(variable[4]) /*MMSrcModule::node*/;
17 ((typing___TypingVisitor___visit_t)CALL( variable[3] /*tv*/,COLOR_parser_prod___Visitor___visit))( variable[3] /*tv*/, variable[4]) /*TypingVisitor::visit*/;
18 return_label0: while(false);
19 tracehead = trace.prev;
20 return;
21 }
22 void typing___TypingVisitor___visit(val_t self, val_t param0) {
23 struct trace_t trace = {NULL, NULL, 39, LOCATE_typing___TypingVisitor___visit};
24 val_t variable[4];
25 void **closurevariable = NULL;
26 trace.prev = tracehead; tracehead = &trace;
27 trace.file = LOCATE_typing;
28 variable[0] = self;
29 variable[1] = param0;
30 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
31 if (UNTAG_Bool(variable[3])) { /*if*/
32 variable[3] = variable[0];
33 ((typing___PNode___accept_typing_t)CALL( variable[1] /*n*/,COLOR_typing___PNode___accept_typing))( variable[1] /*n*/, variable[3]) /*PNode::accept_typing*/;
34 }
35 return_label1: while(false);
36 tracehead = trace.prev;
37 return;
38 }
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*/;
47 }
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;
56 return;
57 }
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*/;
66 }
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;
75 return;
76 }
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*/;
85 }
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;
94 return;
95 }
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*/;
104 }
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;
113 return;
114 }
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*/;
123 }
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;
132 return;
133 }
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*/;
142 }
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;
151 return;
152 }
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*/;
161 }
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;
170 return;
171 }
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*/;
180 }
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;
189 return;
190 }
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};
193 val_t variable[4];
194 void **closurevariable = NULL;
195 trace.prev = tracehead; tracehead = &trace;
196 trace.file = LOCATE_typing;
197 variable[0] = self;
198 variable[1] = param0;
199 variable[2] = param1;
200 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TypingVisitor].i]) return;
201 ((syntax_base___AbsSyntaxVisitor___init_t)CALL(variable[0],COLOR_syntax_base___AbsSyntaxVisitor___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
202 return_label2: while(false);
203 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TypingVisitor].i] = 1;
204 tracehead = trace.prev;
205 return;
206 }
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]*/
210 val_t variable[24];
211 void **closurevariable = NULL;
212 trace.prev = tracehead; tracehead = &trace;
213 trace.file = LOCATE_typing;
214 variable[0] = self;
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] = ((static_type___MMLocalProperty___signature_t)CALL( variable[3] /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable[3] /*prop*/) /*MMLocalProperty::signature*/;
225 variable[9] = ((static_type___MMSignature___arity_t)CALL(variable[9],COLOR_static_type___MMSignature___arity))(variable[9]) /*MMSignature::arity*/;
226 variable[8] = variable[9];
227 variable[9] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable[2] /*c*/) /*MMLocalClass::global_properties*/;
228 variable[9] = ((abstract_collection___Collection___iterator_t)CALL(variable[9],COLOR_abstract_collection___Collection___iterator))(variable[9]) /*Collection::iterator*/;
229 while (true) { /*for*/
230 variable[10] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[9],COLOR_abstract_collection___Iterator___is_ok))(variable[9]) /*Iterator::is_ok*/;
231 if (!UNTAG_Bool(variable[10])) break; /*for*/
232 variable[10] = ((abstract_collection___Iterator___item_t)CALL(variable[9],COLOR_abstract_collection___Iterator___item))(variable[9]) /*Iterator::item*/;
233 variable[11] = variable[10];
234 variable[12] = ((abstractmetamodel___MMGlobalProperty___is_init_for_t)CALL( variable[11] /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init_for))( variable[11] /*g*/, variable[2] /*c*/) /*MMGlobalProperty::is_init_for*/;
235 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[12])))) { /*if*/
236 goto continue_4;
237 }
238 variable[13] = ((inheritance___MMLocalClass_____bra_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable[2] /*c*/, variable[11] /*g*/) /*MMLocalClass::[]*/;
239 variable[12] = variable[13];
240 variable[14] = ((genericity___MMLocalClass___get_type_t)CALL( variable[2] /*c*/,COLOR_static_type___MMLocalClass___get_type))( variable[2] /*c*/) /*MMLocalClass::get_type*/;
241 variable[14] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[12] /*gp*/,COLOR_static_type___MMLocalProperty___signature_for))( 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] = ((static_type___MMSignature___arity_t)CALL( variable[13] /*gps*/,COLOR_static_type___MMSignature___arity))( 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) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[3] /*prop*/, NIT_NULL /*null*/) /*Object::==*/)))))));
248 variable[16] = variable[15];
249 if (UNTAG_Bool(variable[16])) { /* and */
250 variable[16] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[12] /*gp*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[12] /*gp*/) /*MMLocalProperty::name*/;
251 variable[17] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[3] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[3] /*prop*/) /*MMLocalProperty::name*/;
252 variable[16] = TAG_Bool((variable[16] == variable[17]) || ((variable[16] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[16],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[16],variable[17])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[16],COLOR_kernel___Object_____eqeq))(variable[16], variable[17]) /*Object::==*/)))));
253 }
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] = ((static_type___MMLocalProperty___signature_t)CALL( variable[3] /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable[3] /*prop*/) /*MMLocalProperty::signature*/;
263 variable[17] = ((static_type___MMSignature_____l_t)CALL(variable[17],COLOR_static_type___MMSignature_____l))(variable[17], variable[13] /*gps*/) /*MMSignature::<*/;
264 }
265 variable[16] = variable[17];
266 }
267 variable[15] = variable[16];
268 if (UNTAG_Bool(variable[15])) { /*if*/
269 variable[4] = variable[12] /*gp*/;
270 goto return_label3;
271 } else { /*if*/
272 ((array___AbstractArray___add_t)CALL( variable[7] /*false_candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*false_candidates*/, variable[12] /*gp*/) /*AbstractArray::add*/;
273 }
274 } else { /*if*/
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] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[12] /*gp*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[12] /*gp*/) /*MMLocalProperty::name*/;
279 if (once_bool_5) variable[17] = once_value_5;
280 else {
281 variable[17] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
282 variable[17] = ((symbol___String___to_symbol_t)CALL(variable[17],COLOR_symbol___String___to_symbol))(variable[17]) /*String::to_symbol*/;
283 once_value_5 = variable[17];
284 once_bool_5 = true;
285 }
286 variable[16] = TAG_Bool((variable[16] == variable[17]) || ((variable[16] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[16],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[16],variable[17])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[16],COLOR_kernel___Object_____eqeq))(variable[16], variable[17]) /*Object::==*/)))));
287 }
288 variable[15] = variable[16];
289 if (UNTAG_Bool(variable[15])) { /*if*/
290 ((array___AbstractArray___add_t)CALL( variable[6] /*candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*candidates*/, variable[12] /*gp*/) /*AbstractArray::add*/;
291 ((array___AbstractArray___add_t)CALL( variable[7] /*false_candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*false_candidates*/, variable[12] /*gp*/) /*AbstractArray::add*/;
292 } else { /*if*/
293 ((array___AbstractArray___add_t)CALL( variable[7] /*false_candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*false_candidates*/, variable[12] /*gp*/) /*AbstractArray::add*/;
294 }
295 }
296 continue_4: while(0);
297 ((abstract_collection___Iterator___next_t)CALL(variable[9],COLOR_abstract_collection___Iterator___next))(variable[9]) /*Iterator::next*/;
298 }
299 break_4: while(0);
300 variable[9] = ((array___AbstractArray___length_t)CALL( variable[6] /*candidates*/,COLOR_abstract_collection___Collection___length))( 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] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[6] /*candidates*/,COLOR_abstract_collection___Collection___first))( variable[6] /*candidates*/) /*IndexedCollection::first*/;
304 variable[4] = variable[9];
305 goto return_label3;
306 } else { /*if*/
307 variable[9] = ((array___AbstractArray___length_t)CALL( variable[6] /*candidates*/,COLOR_abstract_collection___Collection___length))( 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] = ((array___AbstractArray___iterator_t)CALL( variable[6] /*candidates*/,COLOR_abstract_collection___Collection___iterator))( variable[6] /*candidates*/) /*AbstractArray::iterator*/;
313 while (true) { /*for*/
314 variable[11] = ((array___ArrayIterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*ArrayIterator::is_ok*/;
315 if (!UNTAG_Bool(variable[11])) break; /*for*/
316 variable[11] = ((array___ArrayIterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*ArrayIterator::item*/;
317 variable[12] = variable[11];
318 variable[13] = NEW_String_string___String___init(); /*new String*/
319 variable[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
320 variable[15] = variable[14];
321 ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[15]) /*String::append*/;
322 variable[16] = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL( variable[12] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___full_name))( variable[12] /*p*/) /*MMLocalProperty::full_name*/;
323 variable[17] = variable[16];
324 ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[17]) /*String::append*/;
325 variable[18] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
326 variable[19] = variable[18];
327 ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[19]) /*String::append*/;
328 variable[20] = ((static_type___MMLocalProperty___signature_t)CALL( variable[12] /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable[12] /*p*/) /*MMLocalProperty::signature*/;
329 variable[21] = variable[20];
330 variable[21] = ((string___String___to_s_t)CALL(variable[21],COLOR_string___Object___to_s))(variable[21]) /*String::to_s*/;
331 ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[21]) /*String::append*/;
332 variable[22] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
333 variable[23] = variable[22];
334 ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[23]) /*String::append*/;
335 ((array___AbstractArray___add_t)CALL( variable[9] /*a*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*a*/, variable[13]) /*AbstractArray::add*/;
336 continue_6: while(0);
337 ((array___ArrayIterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*ArrayIterator::next*/;
338 }
339 break_6: while(0);
340 variable[10] = NEW_String_string___String___init(); /*new String*/
341 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: Conflicting default constructor to call for "), TAG_Int(51)); /*new String*/
342 variable[12] = variable[11];
343 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
344 variable[13] = variable[2] /*c*/;
345 variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
346 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[13]) /*String::append*/;
347 variable[14] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
348 variable[15] = variable[14];
349 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[15]) /*String::append*/;
350 variable[16] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
351 variable[16] = ((string___Collection___join_t)CALL( variable[9] /*a*/,COLOR_string___Collection___join))( variable[9] /*a*/, variable[16]) /*Collection::join*/;
352 variable[17] = variable[16];
353 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[17]) /*String::append*/;
354 variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
355 variable[19] = variable[18];
356 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[19]) /*String::append*/;
357 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[5] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[5] /*v*/, variable[1] /*n*/, variable[10]) /*AbsSyntaxVisitor::error*/;
358 variable[4] = NIT_NULL /*null*/;
359 goto return_label3;
360 } else { /*if*/
361 variable[9] = ((array___AbstractArray___length_t)CALL( variable[7] /*false_candidates*/,COLOR_abstract_collection___Collection___length))( variable[7] /*false_candidates*/) /*AbstractArray::length*/;
362 variable[9] = TAG_Bool(UNTAG_Int(variable[9])>UNTAG_Int( TAG_Int(0)));
363 if (UNTAG_Bool(variable[9])) { /*if*/
364 variable[10] = NEW_Array_array___Array___init(); /*new Array[String]*/
365 variable[9] = variable[10];
366 variable[10] = ((array___AbstractArray___iterator_t)CALL( variable[7] /*false_candidates*/,COLOR_abstract_collection___Collection___iterator))( variable[7] /*false_candidates*/) /*AbstractArray::iterator*/;
367 while (true) { /*for*/
368 variable[11] = ((array___ArrayIterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*ArrayIterator::is_ok*/;
369 if (!UNTAG_Bool(variable[11])) break; /*for*/
370 variable[11] = ((array___ArrayIterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*ArrayIterator::item*/;
371 variable[12] = variable[11];
372 variable[13] = NEW_String_string___String___init(); /*new String*/
373 variable[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
374 variable[15] = variable[14];
375 ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[15]) /*String::append*/;
376 variable[16] = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL( variable[12] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___full_name))( variable[12] /*p*/) /*MMLocalProperty::full_name*/;
377 variable[17] = variable[16];
378 ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[17]) /*String::append*/;
379 variable[18] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
380 variable[19] = variable[18];
381 ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[19]) /*String::append*/;
382 variable[20] = ((static_type___MMLocalProperty___signature_t)CALL( variable[12] /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable[12] /*p*/) /*MMLocalProperty::signature*/;
383 variable[21] = variable[20];
384 variable[21] = ((string___String___to_s_t)CALL(variable[21],COLOR_string___Object___to_s))(variable[21]) /*String::to_s*/;
385 ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[21]) /*String::append*/;
386 variable[22] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
387 variable[23] = variable[22];
388 ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[23]) /*String::append*/;
389 ((array___AbstractArray___add_t)CALL( variable[9] /*a*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*a*/, variable[13]) /*AbstractArray::add*/;
390 continue_7: while(0);
391 ((array___ArrayIterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*ArrayIterator::next*/;
392 }
393 break_7: while(0);
394 variable[10] = NEW_String_string___String___init(); /*new String*/
395 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: there is no available compatible constrctor in "), TAG_Int(54)); /*new String*/
396 variable[12] = variable[11];
397 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
398 variable[13] = variable[2] /*c*/;
399 variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
400 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[13]) /*String::append*/;
401 variable[14] = NEW_String_string___String___with_native(BOX_NativeString(". Discarded candidates are "), TAG_Int(27)); /*new String*/
402 variable[15] = variable[14];
403 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[15]) /*String::append*/;
404 variable[16] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
405 variable[16] = ((string___Collection___join_t)CALL( variable[9] /*a*/,COLOR_string___Collection___join))( variable[9] /*a*/, variable[16]) /*Collection::join*/;
406 variable[17] = variable[16];
407 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[17]) /*String::append*/;
408 variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
409 variable[19] = variable[18];
410 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[19]) /*String::append*/;
411 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[5] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[5] /*v*/, variable[1] /*n*/, variable[10]) /*AbsSyntaxVisitor::error*/;
412 variable[4] = NIT_NULL /*null*/;
413 goto return_label3;
414 } else { /*if*/
415 variable[9] = NEW_String_string___String___init(); /*new String*/
416 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: there is no available compatible constrctor in "), TAG_Int(54)); /*new String*/
417 variable[11] = variable[10];
418 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
419 variable[12] = variable[2] /*c*/;
420 variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
421 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
422 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
423 variable[14] = variable[13];
424 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
425 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[5] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[5] /*v*/, variable[1] /*n*/, variable[9]) /*AbsSyntaxVisitor::error*/;
426 variable[4] = NIT_NULL /*null*/;
427 goto return_label3;
428 }
429 }
430 }
431 return_label3: while(false);
432 tracehead = trace.prev;
433 return variable[4];
434 }
435 val_t typing___VariableContext_____bra(val_t self, val_t param0) {
436 struct trace_t trace = {NULL, NULL, 123, LOCATE_typing___VariableContext_____bra};
437 val_t variable[4];
438 void **closurevariable = NULL;
439 trace.prev = tracehead; tracehead = &trace;
440 trace.file = LOCATE_typing;
441 variable[0] = self;
442 variable[1] = param0;
443 variable[3] = variable[0];
444 variable[3] = ATTR_typing___VariableContext____dico(variable[3]) /*VariableContext::_dico*/;
445 variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3], variable[1] /*s*/) /*Map::has_key*/;
446 if (UNTAG_Bool(variable[3])) { /*if*/
447 variable[3] = variable[0];
448 variable[3] = ATTR_typing___VariableContext____dico(variable[3]) /*VariableContext::_dico*/;
449 variable[3] = ((abstract_collection___Map_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3], variable[1] /*s*/) /*Map::[]*/;
450 variable[2] = variable[3];
451 goto return_label8;
452 } else { /*if*/
453 variable[2] = NIT_NULL /*null*/;
454 goto return_label8;
455 }
456 return_label8: while(false);
457 tracehead = trace.prev;
458 return variable[2];
459 }
460 void typing___VariableContext___add(val_t self, val_t param0) {
461 struct trace_t trace = {NULL, NULL, 134, LOCATE_typing___VariableContext___add};
462 val_t variable[5];
463 void **closurevariable = NULL;
464 trace.prev = tracehead; tracehead = &trace;
465 trace.file = LOCATE_typing;
466 variable[0] = self;
467 variable[1] = param0;
468 variable[3] = variable[0];
469 variable[3] = ATTR_typing___VariableContext____dico(variable[3]) /*VariableContext::_dico*/;
470 variable[4] = ((syntax_base___Variable___name_t)CALL( variable[1] /*v*/,COLOR_syntax_base___Variable___name))( variable[1] /*v*/) /*Variable::name*/;
471 ((abstract_collection___Map_____braeq_t)CALL(variable[3],COLOR_abstract_collection___Map_____braeq))(variable[3], variable[4], variable[1] /*v*/) /*Map::[]=*/;
472 return_label9: while(false);
473 tracehead = trace.prev;
474 return;
475 }
476 val_t typing___VariableContext___stype(val_t self, val_t param0) {
477 struct trace_t trace = {NULL, NULL, 141, LOCATE_typing___VariableContext___stype};
478 val_t variable[4];
479 void **closurevariable = NULL;
480 trace.prev = tracehead; tracehead = &trace;
481 trace.file = LOCATE_typing;
482 variable[0] = self;
483 variable[1] = param0;
484 variable[3] = ((syntax_base___Variable___stype_t)CALL( variable[1] /*v*/,COLOR_syntax_base___Variable___stype))( variable[1] /*v*/) /*Variable::stype*/;
485 variable[2] = variable[3];
486 goto return_label10;
487 return_label10: while(false);
488 tracehead = trace.prev;
489 return variable[2];
490 }
491 val_t typing___VariableContext___sub(val_t self) {
492 struct trace_t trace = {NULL, NULL, 151, LOCATE_typing___VariableContext___sub};
493 val_t variable[4];
494 void **closurevariable = NULL;
495 trace.prev = tracehead; tracehead = &trace;
496 trace.file = LOCATE_typing;
497 variable[0] = self;
498 variable[2] = variable[0];
499 variable[3] = NEW_SubVariableContext_typing___SubVariableContext___with_prev(variable[2], NIT_NULL /*null*/, NIT_NULL /*null*/); /*new SubVariableContext*/
500 variable[2] = variable[3];
501 variable[1] = variable[2];
502 goto return_label11;
503 return_label11: while(false);
504 tracehead = trace.prev;
505 return variable[1];
506 }
507 val_t typing___VariableContext___sub_with(val_t self, val_t param0, val_t param1) {
508 struct trace_t trace = {NULL, NULL, 157, LOCATE_typing___VariableContext___sub_with};
509 val_t variable[6];
510 void **closurevariable = NULL;
511 trace.prev = tracehead; tracehead = &trace;
512 trace.file = LOCATE_typing;
513 variable[0] = self;
514 variable[1] = param0;
515 variable[2] = param1;
516 variable[4] = variable[0];
517 variable[5] = NEW_SubVariableContext_typing___SubVariableContext___with_prev(variable[4], variable[1] /*v*/, variable[2] /*t*/); /*new SubVariableContext*/
518 variable[4] = variable[5];
519 variable[3] = variable[4];
520 goto return_label12;
521 return_label12: while(false);
522 tracehead = trace.prev;
523 return variable[3];
524 }
525 void typing___VariableContext___init(val_t self, int* init_table) {
526 struct trace_t trace = {NULL, NULL, 163, LOCATE_typing___VariableContext___init};
527 val_t variable[4];
528 void **closurevariable = NULL;
529 trace.prev = tracehead; tracehead = &trace;
530 trace.file = LOCATE_typing;
531 variable[0] = self;
532 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_VariableContext].i]) return;
533 variable[2] = variable[0];
534 variable[3] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Symbol, Variable]*/
535 ATTR_typing___VariableContext____dico(variable[2]) /*VariableContext::_dico*/ = variable[3];
536 return_label13: while(false);
537 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_VariableContext].i] = 1;
538 tracehead = trace.prev;
539 return;
540 }
541 val_t typing___SubVariableContext_____bra(val_t self, val_t param0) {
542 struct trace_t trace = {NULL, NULL, 175, LOCATE_typing___SubVariableContext_____bra};
543 val_t variable[4];
544 void **closurevariable = NULL;
545 trace.prev = tracehead; tracehead = &trace;
546 trace.file = LOCATE_typing;
547 variable[0] = self;
548 variable[1] = param0;
549 variable[3] = variable[0];
550 variable[3] = ATTR_typing___VariableContext____dico(variable[3]) /*VariableContext::_dico*/;
551 variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3], variable[1] /*s*/) /*Map::has_key*/;
552 if (UNTAG_Bool(variable[3])) { /*if*/
553 variable[3] = variable[0];
554 variable[3] = ATTR_typing___VariableContext____dico(variable[3]) /*VariableContext::_dico*/;
555 variable[3] = ((abstract_collection___Map_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3], variable[1] /*s*/) /*Map::[]*/;
556 variable[2] = variable[3];
557 goto return_label14;
558 } else { /*if*/
559 variable[3] = variable[0];
560 variable[3] = ((typing___SubVariableContext___prev_t)CALL(variable[3],COLOR_typing___SubVariableContext___prev))(variable[3]) /*SubVariableContext::prev*/;
561 variable[3] = ((typing___VariableContext_____bra_t)CALL(variable[3],COLOR_typing___VariableContext_____bra))(variable[3], variable[1] /*s*/) /*VariableContext::[]*/;
562 variable[2] = variable[3];
563 goto return_label14;
564 }
565 return_label14: while(false);
566 tracehead = trace.prev;
567 return variable[2];
568 }
569 val_t typing___SubVariableContext___stype(val_t self, val_t param0) {
570 struct trace_t trace = {NULL, NULL, 184, LOCATE_typing___SubVariableContext___stype};
571 val_t variable[4];
572 void **closurevariable = NULL;
573 trace.prev = tracehead; tracehead = &trace;
574 trace.file = LOCATE_typing;
575 variable[0] = self;
576 variable[1] = param0;
577 variable[3] = variable[0];
578 variable[3] = ATTR_typing___SubVariableContext____variable(variable[3]) /*SubVariableContext::_variable*/;
579 variable[3] = TAG_Bool((variable[3] == variable[1] /*v*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*v*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], variable[1] /*v*/) /*Object::==*/)))));
580 if (UNTAG_Bool(variable[3])) { /*if*/
581 variable[3] = variable[0];
582 variable[3] = ATTR_typing___SubVariableContext____var_type(variable[3]) /*SubVariableContext::_var_type*/;
583 variable[2] = variable[3];
584 goto return_label15;
585 }
586 variable[3] = variable[0];
587 variable[3] = ((typing___SubVariableContext___prev_t)CALL(variable[3],COLOR_typing___SubVariableContext___prev))(variable[3]) /*SubVariableContext::prev*/;
588 variable[3] = ((typing___VariableContext___stype_t)CALL(variable[3],COLOR_typing___VariableContext___stype))(variable[3], variable[1] /*v*/) /*VariableContext::stype*/;
589 variable[2] = variable[3];
590 goto return_label15;
591 return_label15: while(false);
592 tracehead = trace.prev;
593 return variable[2];
594 }
595 val_t typing___SubVariableContext___prev(val_t self) {
596 struct trace_t trace = {NULL, NULL, 171, LOCATE_typing___SubVariableContext___prev};
597 val_t *variable = NULL;
598 void **closurevariable = NULL;
599 trace.prev = tracehead; tracehead = &trace;
600 trace.file = LOCATE_typing;
601 tracehead = trace.prev;
602 return ATTR_typing___SubVariableContext____prev( self) /*SubVariableContext::_prev*/;
603 }
604 void typing___SubVariableContext___with_prev(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
605 struct trace_t trace = {NULL, NULL, 192, LOCATE_typing___SubVariableContext___with_prev};
606 val_t variable[6];
607 void **closurevariable = NULL;
608 trace.prev = tracehead; tracehead = &trace;
609 trace.file = LOCATE_typing;
610 variable[0] = self;
611 variable[1] = param0;
612 variable[2] = param1;
613 variable[3] = param2;
614 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_SubVariableContext].i]) return;
615 variable[5] = variable[0];
616 ((typing___VariableContext___init_t)CALL(variable[5],COLOR_typing___VariableContext___init))(variable[5], init_table /*YYY*/) /*VariableContext::init*/;
617 variable[5] = variable[0];
618 ATTR_typing___SubVariableContext____prev(variable[5]) /*SubVariableContext::_prev*/ = variable[1] /*p*/;
619 variable[5] = variable[0];
620 ATTR_typing___SubVariableContext____variable(variable[5]) /*SubVariableContext::_variable*/ = variable[2] /*v*/;
621 variable[5] = variable[0];
622 ATTR_typing___SubVariableContext____var_type(variable[5]) /*SubVariableContext::_var_type*/ = variable[3] /*t*/;
623 return_label16: while(false);
624 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_SubVariableContext].i] = 1;
625 tracehead = trace.prev;
626 return;
627 }
628 void typing___PNode___accept_typing(val_t self, val_t param0) {
629 struct trace_t trace = {NULL, NULL, 205, LOCATE_typing___PNode___accept_typing};
630 val_t variable[4];
631 void **closurevariable = NULL;
632 trace.prev = tracehead; tracehead = &trace;
633 trace.file = LOCATE_typing;
634 variable[0] = self;
635 variable[1] = param0;
636 variable[3] = variable[0];
637 ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL(variable[3],COLOR_syntax_base___PNode___accept_abs_syntax_visitor))(variable[3], variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
638 variable[3] = variable[0];
639 ((typing___PNode___after_typing_t)CALL(variable[3],COLOR_typing___PNode___after_typing))(variable[3], variable[1] /*v*/) /*PNode::after_typing*/;
640 return_label17: while(false);
641 tracehead = trace.prev;
642 return;
643 }
644 void typing___PNode___after_typing(val_t self, val_t param0) {
645 struct trace_t trace = {NULL, NULL, 210, LOCATE_typing___PNode___after_typing};
646 val_t variable[3];
647 void **closurevariable = NULL;
648 trace.prev = tracehead; tracehead = &trace;
649 trace.file = LOCATE_typing;
650 variable[0] = self;
651 variable[1] = param0;
652 return_label18: while(false);
653 tracehead = trace.prev;
654 return;
655 }
656 void typing___PClassdef___accept_typing(val_t self, val_t param0) {
657 struct trace_t trace = {NULL, NULL, 214, LOCATE_typing___PClassdef___accept_typing};
658 val_t variable[6];
659 void **closurevariable = NULL;
660 trace.prev = tracehead; tracehead = &trace;
661 trace.file = LOCATE_typing;
662 variable[0] = self;
663 variable[1] = param0;
664 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("self"), TAG_Int(4)); /*new String*/
665 variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
666 variable[4] = variable[0];
667 variable[5] = NEW_ParamVariable_syntax_base___ParamVariable___init(variable[3], variable[4]); /*new ParamVariable*/
668 variable[3] = variable[5];
669 ((typing___TypingVisitor___self_var__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___self_var__eq))( variable[1] /*v*/, variable[3]) /*TypingVisitor::self_var=*/;
670 variable[3] = ((typing___TypingVisitor___self_var_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___self_var))( variable[1] /*v*/) /*TypingVisitor::self_var*/;
671 variable[4] = variable[0];
672 variable[4] = ((syntax_base___PClassdef___local_class_t)CALL(variable[4],COLOR_syntax_base___PClassdef___local_class))(variable[4]) /*PClassdef::local_class*/;
673 variable[4] = ((genericity___MMLocalClass___get_type_t)CALL(variable[4],COLOR_static_type___MMLocalClass___get_type))(variable[4]) /*MMLocalClass::get_type*/;
674 ((syntax_base___Variable___stype__eq_t)CALL(variable[3],COLOR_syntax_base___Variable___stype__eq))(variable[3], variable[4]) /*Variable::stype=*/;
675 ((typing___PClassdef___accept_typing_t)CALL(variable[0],COLOR_SUPER_typing___PClassdef___accept_typing))(variable[0], variable[1]) /*super PClassdef::accept_typing*/;
676 return_label19: while(false);
677 tracehead = trace.prev;
678 return;
679 }
680 void typing___AAttrPropdef___accept_typing(val_t self, val_t param0) {
681 struct trace_t trace = {NULL, NULL, 223, LOCATE_typing___AAttrPropdef___accept_typing};
682 val_t variable[5];
683 void **closurevariable = NULL;
684 trace.prev = tracehead; tracehead = &trace;
685 trace.file = LOCATE_typing;
686 variable[0] = self;
687 variable[1] = param0;
688 ((typing___AAttrPropdef___accept_typing_t)CALL(variable[0],COLOR_SUPER_typing___AAttrPropdef___accept_typing))(variable[0], variable[1]) /*super AAttrPropdef::accept_typing*/;
689 variable[3] = variable[0];
690 variable[3] = ((parser_nodes___AAttrPropdef___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AAttrPropdef___n_expr))(variable[3]) /*AAttrPropdef::n_expr*/;
691 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
692 if (UNTAG_Bool(variable[3])) { /*if*/
693 variable[3] = variable[0];
694 variable[3] = ((parser_nodes___AAttrPropdef___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AAttrPropdef___n_expr))(variable[3]) /*AAttrPropdef::n_expr*/;
695 variable[4] = variable[0];
696 variable[4] = ((syntax_base___AAttrPropdef___prop_t)CALL(variable[4],COLOR_syntax_base___AAttrPropdef___prop))(variable[4]) /*AAttrPropdef::prop*/;
697 variable[4] = ((static_type___MMLocalProperty___signature_t)CALL(variable[4],COLOR_static_type___MMLocalProperty___signature))(variable[4]) /*MMLocalProperty::signature*/;
698 variable[4] = ((static_type___MMSignature___return_type_t)CALL(variable[4],COLOR_static_type___MMSignature___return_type))(variable[4]) /*MMSignature::return_type*/;
699 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
700 }
701 return_label20: while(false);
702 tracehead = trace.prev;
703 return;
704 }
705 val_t typing___AMethPropdef___self_var(val_t self) {
706 struct trace_t trace = {NULL, NULL, 233, LOCATE_typing___AMethPropdef___self_var};
707 val_t *variable = NULL;
708 void **closurevariable = NULL;
709 trace.prev = tracehead; tracehead = &trace;
710 trace.file = LOCATE_typing;
711 tracehead = trace.prev;
712 return ATTR_typing___AMethPropdef____self_var( self) /*AMethPropdef::_self_var*/;
713 }
714 void typing___AMethPropdef___accept_typing(val_t self, val_t param0) {
715 struct trace_t trace = {NULL, NULL, 234, LOCATE_typing___AMethPropdef___accept_typing};
716 val_t variable[5];
717 void **closurevariable = NULL;
718 trace.prev = tracehead; tracehead = &trace;
719 trace.file = LOCATE_typing;
720 variable[0] = self;
721 variable[1] = param0;
722 variable[3] = NEW_VariableContext_typing___VariableContext___init(); /*new VariableContext*/
723 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[3]) /*TypingVisitor::variable_ctx=*/;
724 variable[3] = variable[0];
725 variable[4] = ((typing___TypingVisitor___self_var_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___self_var))( variable[1] /*v*/) /*TypingVisitor::self_var*/;
726 ATTR_typing___AMethPropdef____self_var(variable[3]) /*AMethPropdef::_self_var*/ = variable[4];
727 ((typing___AMethPropdef___accept_typing_t)CALL(variable[0],COLOR_SUPER_typing___AMethPropdef___accept_typing))(variable[0], variable[1]) /*super AMethPropdef::accept_typing*/;
728 return_label21: while(false);
729 tracehead = trace.prev;
730 return;
731 }
732 void typing___AConcreteInitPropdef___accept_typing(val_t self, val_t param0) {
733 struct trace_t trace = {NULL, NULL, 245, LOCATE_typing___AConcreteInitPropdef___accept_typing};
734 val_t variable[15];
735 void **closurevariable = NULL;
736 trace.prev = tracehead; tracehead = &trace;
737 trace.file = LOCATE_typing;
738 variable[0] = self;
739 variable[1] = param0;
740 variable[3] = variable[0];
741 variable[3] = ((parser_nodes___AConcreteMethPropdef___n_block_t)CALL(variable[3],COLOR_parser_nodes___AConcreteMethPropdef___n_block))(variable[3]) /*AConcreteMethPropdef::n_block*/;
742 ((typing___TypingVisitor___top_block__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___top_block__eq))( variable[1] /*v*/, variable[3]) /*TypingVisitor::top_block=*/;
743 variable[3] = variable[0];
744 variable[3] = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL(variable[3],COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))(variable[3]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
745 ((typing___TypingVisitor___explicit_super_init_calls__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls__eq))( variable[1] /*v*/, variable[3]) /*TypingVisitor::explicit_super_init_calls=*/;
746 ((typing___TypingVisitor___explicit_other_init_call__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___explicit_other_init_call__eq))( variable[1] /*v*/, TAG_Bool(false)) /*TypingVisitor::explicit_other_init_call=*/;
747 ((typing___AConcreteInitPropdef___accept_typing_t)CALL(variable[0],COLOR_SUPER_typing___AConcreteInitPropdef___accept_typing))(variable[0], variable[1]) /*super AConcreteInitPropdef::accept_typing*/;
748 variable[3] = ((typing___TypingVisitor___explicit_other_init_call_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___explicit_other_init_call))( variable[1] /*v*/) /*TypingVisitor::explicit_other_init_call*/;
749 variable[4] = variable[3];
750 if (!UNTAG_Bool(variable[4])) { /* or */
751 variable[4] = variable[0];
752 variable[4] = ((syntax_base___AMethPropdef___method_t)CALL(variable[4],COLOR_syntax_base___AMethPropdef___method))(variable[4]) /*AMethPropdef::method*/;
753 variable[4] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[4]) /*MMLocalProperty::global*/;
754 variable[4] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[4],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[4]) /*MMGlobalProperty::intro*/;
755 variable[5] = variable[0];
756 variable[5] = ((syntax_base___AMethPropdef___method_t)CALL(variable[5],COLOR_syntax_base___AMethPropdef___method))(variable[5]) /*AMethPropdef::method*/;
757 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == variable[5]) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4],variable[5])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], variable[5]) /*Object::==*/)))))));
758 }
759 variable[3] = variable[4];
760 if (UNTAG_Bool(variable[3])) { /*if*/
761 } else { /*if*/
762 variable[3] = TAG_Int(0);
763 variable[5] = variable[0];
764 variable[5] = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL(variable[5],COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))(variable[5]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
765 variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
766 variable[4] = variable[5];
767 variable[5] = NIT_NULL /*null*/;
768 variable[6] = NIT_NULL /*null*/;
769 variable[7] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)<UNTAG_Int( variable[4] /*l*/));
770 if (UNTAG_Bool(variable[7])) { /*if*/
771 variable[7] = variable[0];
772 variable[7] = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL(variable[7],COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))(variable[7]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
773 variable[8] = variable[7];
774 variable[9] = variable[3] /*i*/;
775 variable[11] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)>=UNTAG_Int( TAG_Int(0)));
776 variable[12] = variable[11];
777 if (UNTAG_Bool(variable[12])) { /* and */
778 variable[12] = variable[8];
779 variable[12] = ATTR_array___AbstractArray____length(variable[12]) /*AbstractArray::_length*/;
780 variable[12] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)<UNTAG_Int(variable[12]));
781 }
782 variable[11] = variable[12];
783 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);}
784 variable[11] = variable[8];
785 variable[11] = ATTR_array___Array____items(variable[11]) /*Array::_items*/;
786 variable[11] = UNBOX_NativeArray(variable[11])[UNTAG_Int( variable[9] /*index*/)];
787 variable[10] = variable[11];
788 goto return_label23;
789 return_label23: while(false);
790 variable[7] = variable[10];
791 variable[5] = variable[7] /*cur_m=*/;
792 variable[7] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[5] /*cur_m*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[5] /*cur_m*/) /*MMLocalProperty::global*/;
793 variable[7] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[7],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[7]) /*MMGlobalProperty::intro*/;
794 variable[7] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[7]) /*MMLocalProperty::local_class*/;
795 variable[8] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
796 variable[7] = ((abstractmetamodel___MMLocalClass___for_module_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___for_module))(variable[7], variable[8]) /*MMLocalClass::for_module*/;
797 variable[6] = variable[7] /*cur_c=*/;
798 }
799 variable[7] = TAG_Int(0);
800 while (true) { /*while*/
801 variable[8] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
802 variable[8] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[8]) /*MMLocalClass::cshe*/;
803 variable[8] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[8],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[8]) /*PartialOrderElement::direct_greaters*/;
804 variable[8] = ((array___AbstractArray___length_t)CALL(variable[8],COLOR_abstract_collection___Collection___length))(variable[8]) /*AbstractArray::length*/;
805 variable[8] = TAG_Bool(UNTAG_Int( variable[7] /*j*/)<UNTAG_Int(variable[8]));
806 if (!UNTAG_Bool(variable[8])) break; /* while*/
807 variable[9] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
808 variable[9] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[9]) /*MMLocalClass::cshe*/;
809 variable[9] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[9],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[9]) /*PartialOrderElement::direct_greaters*/;
810 variable[10] = variable[9];
811 variable[11] = variable[7] /*j*/;
812 variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
813 variable[14] = variable[13];
814 if (UNTAG_Bool(variable[14])) { /* and */
815 variable[14] = variable[10];
816 variable[14] = ATTR_array___AbstractArray____length(variable[14]) /*AbstractArray::_length*/;
817 variable[14] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)<UNTAG_Int(variable[14]));
818 }
819 variable[13] = variable[14];
820 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);}
821 variable[13] = variable[10];
822 variable[13] = ATTR_array___Array____items(variable[13]) /*Array::_items*/;
823 variable[13] = UNBOX_NativeArray(variable[13])[UNTAG_Int( variable[11] /*index*/)];
824 variable[12] = variable[13];
825 goto return_label25;
826 return_label25: while(false);
827 variable[9] = variable[12];
828 variable[8] = variable[9];
829 variable[9] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[8] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[8] /*c*/) /*MMLocalClass::global*/;
830 variable[9] = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL(variable[9],COLOR_abstractmetamodel___MMGlobalClass___is_interface))(variable[9]) /*MMGlobalClass::is_interface*/;
831 variable[10] = variable[9];
832 if (!UNTAG_Bool(variable[10])) { /* or */
833 variable[10] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[8] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[8] /*c*/) /*MMLocalClass::global*/;
834 variable[10] = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL(variable[10],COLOR_abstractmetamodel___MMGlobalClass___is_universal))(variable[10]) /*MMGlobalClass::is_universal*/;
835 }
836 variable[9] = variable[10];
837 variable[10] = variable[9];
838 if (!UNTAG_Bool(variable[10])) { /* or */
839 variable[10] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[8] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[8] /*c*/) /*MMLocalClass::global*/;
840 variable[10] = ((abstractmetamodel___MMGlobalClass___is_mixin_t)CALL(variable[10],COLOR_abstractmetamodel___MMGlobalClass___is_mixin))(variable[10]) /*MMGlobalClass::is_mixin*/;
841 }
842 variable[9] = variable[10];
843 if (UNTAG_Bool(variable[9])) { /*if*/
844 variable[7] = TAG_Int(UNTAG_Int(variable[7])+UNTAG_Int( TAG_Int(1))) /*j*/;
845 } else { /*if*/
846 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*cur_c*/ == NIT_NULL /*null*/) || (( variable[6] /*cur_c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*cur_c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*cur_c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*cur_c*/,COLOR_kernel___Object_____eqeq))( variable[6] /*cur_c*/, NIT_NULL /*null*/) /*Object::==*/)))))));
847 variable[10] = variable[9];
848 if (UNTAG_Bool(variable[10])) { /* and */
849 variable[10] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[8] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[8] /*c*/) /*MMLocalClass::cshe*/;
850 variable[10] = ((partial_order___PartialOrderElement_____leq_t)CALL(variable[10],COLOR_partial_order___PartialOrderElement_____leq))(variable[10], variable[6] /*cur_c*/) /*PartialOrderElement::<=*/;
851 variable[11] = variable[10];
852 if (!UNTAG_Bool(variable[11])) { /* or */
853 variable[11] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[6] /*cur_c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[6] /*cur_c*/) /*MMLocalClass::global*/;
854 variable[11] = ((abstractmetamodel___MMGlobalClass___is_mixin_t)CALL(variable[11],COLOR_abstractmetamodel___MMGlobalClass___is_mixin))(variable[11]) /*MMGlobalClass::is_mixin*/;
855 }
856 variable[10] = variable[11];
857 }
858 variable[9] = variable[10];
859 if (UNTAG_Bool(variable[9])) { /*if*/
860 variable[9] = TAG_Bool(( variable[8] /*c*/ == variable[6] /*cur_c*/) || (( variable[8] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*c*/, variable[6] /*cur_c*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*c*/,COLOR_kernel___Object_____eqeq))( variable[8] /*c*/, variable[6] /*cur_c*/) /*Object::==*/)))));
861 if (UNTAG_Bool(variable[9])) { /*if*/
862 variable[7] = TAG_Int(UNTAG_Int(variable[7])+UNTAG_Int( TAG_Int(1))) /*j*/;
863 }
864 variable[9] = variable[0];
865 variable[9] = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL(variable[9],COLOR_typing___AConcreteInitPropdef___super_init_calls))(variable[9]) /*AConcreteInitPropdef::super_init_calls*/;
866 ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9], variable[5] /*cur_m*/) /*AbstractArray::add*/;
867 variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))) /*i*/;
868 variable[9] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)<UNTAG_Int( variable[4] /*l*/));
869 if (UNTAG_Bool(variable[9])) { /*if*/
870 variable[9] = variable[0];
871 variable[9] = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL(variable[9],COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))(variable[9]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
872 variable[10] = variable[9];
873 variable[11] = variable[3] /*i*/;
874 variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
875 variable[14] = variable[13];
876 if (UNTAG_Bool(variable[14])) { /* and */
877 variable[14] = variable[10];
878 variable[14] = ATTR_array___AbstractArray____length(variable[14]) /*AbstractArray::_length*/;
879 variable[14] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)<UNTAG_Int(variable[14]));
880 }
881 variable[13] = variable[14];
882 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);}
883 variable[13] = variable[10];
884 variable[13] = ATTR_array___Array____items(variable[13]) /*Array::_items*/;
885 variable[13] = UNBOX_NativeArray(variable[13])[UNTAG_Int( variable[11] /*index*/)];
886 variable[12] = variable[13];
887 goto return_label26;
888 return_label26: while(false);
889 variable[9] = variable[12];
890 variable[5] = variable[9] /*cur_m=*/;
891 variable[9] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[5] /*cur_m*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[5] /*cur_m*/) /*MMLocalProperty::global*/;
892 variable[9] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[9],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[9]) /*MMGlobalProperty::intro*/;
893 variable[9] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[9]) /*MMLocalProperty::local_class*/;
894 variable[10] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
895 variable[9] = ((abstractmetamodel___MMLocalClass___for_module_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___for_module))(variable[9], variable[10]) /*MMLocalClass::for_module*/;
896 variable[6] = variable[9] /*cur_c=*/;
897 } else { /*if*/
898 variable[5] = NIT_NULL /*null*/ /*cur_m=*/;
899 variable[6] = NIT_NULL /*null*/ /*cur_c=*/;
900 }
901 } else { /*if*/
902 variable[10] = variable[0];
903 variable[11] = variable[0];
904 variable[11] = ((syntax_base___AMethPropdef___method_t)CALL(variable[11],COLOR_syntax_base___AMethPropdef___method))(variable[11]) /*AMethPropdef::method*/;
905 variable[10] = ((typing___TypingVisitor___get_default_constructor_for_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___get_default_constructor_for))( variable[1] /*v*/, variable[10], variable[8] /*c*/, variable[11]) /*TypingVisitor::get_default_constructor_for*/;
906 variable[9] = variable[10];
907 variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*p*/ == NIT_NULL /*null*/) || (( variable[9] /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*p*/,COLOR_kernel___Object_____eqeq))( variable[9] /*p*/, NIT_NULL /*null*/) /*Object::==*/)))))));
908 if (UNTAG_Bool(variable[10])) { /*if*/
909 variable[10] = variable[0];
910 variable[10] = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL(variable[10],COLOR_typing___AConcreteInitPropdef___super_init_calls))(variable[10]) /*AConcreteInitPropdef::super_init_calls*/;
911 ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10], variable[9] /*p*/) /*AbstractArray::add*/;
912 }
913 variable[7] = TAG_Int(UNTAG_Int(variable[7])+UNTAG_Int( TAG_Int(1))) /*j*/;
914 }
915 }
916 continue_24: while(0);
917 }
918 break_24: while(0);
919 }
920 return_label22: while(false);
921 tracehead = trace.prev;
922 return;
923 }
924 val_t typing___AConcreteInitPropdef___super_init_calls(val_t self) {
925 struct trace_t trace = {NULL, NULL, 243, LOCATE_typing___AConcreteInitPropdef___super_init_calls};
926 val_t *variable = NULL;
927 void **closurevariable = NULL;
928 trace.prev = tracehead; tracehead = &trace;
929 trace.file = LOCATE_typing;
930 tracehead = trace.prev;
931 return ATTR_typing___AConcreteInitPropdef____super_init_calls( self) /*AConcreteInitPropdef::_super_init_calls*/;
932 }
933 val_t typing___AConcreteInitPropdef___explicit_super_init_calls(val_t self) {
934 struct trace_t trace = {NULL, NULL, 244, LOCATE_typing___AConcreteInitPropdef___explicit_super_init_calls};
935 val_t *variable = NULL;
936 void **closurevariable = NULL;
937 trace.prev = tracehead; tracehead = &trace;
938 trace.file = LOCATE_typing;
939 tracehead = trace.prev;
940 return ATTR_typing___AConcreteInitPropdef____explicit_super_init_calls( self) /*AConcreteInitPropdef::_explicit_super_init_calls*/;
941 }
942 void typing___PParam___after_typing(val_t self, val_t param0) {
943 struct trace_t trace = {NULL, NULL, 291, LOCATE_typing___PParam___after_typing};
944 val_t variable[5];
945 void **closurevariable = NULL;
946 trace.prev = tracehead; tracehead = &trace;
947 trace.file = LOCATE_typing;
948 variable[0] = self;
949 variable[1] = param0;
950 variable[3] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
951 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
952 if (UNTAG_Bool(variable[3])) { /*if*/
953 variable[3] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
954 variable[4] = variable[0];
955 variable[4] = ((syntax_base___PParam___variable_t)CALL(variable[4],COLOR_syntax_base___PParam___variable))(variable[4]) /*PParam::variable*/;
956 ((typing___VariableContext___add_t)CALL(variable[3],COLOR_typing___VariableContext___add))(variable[3], variable[4]) /*VariableContext::add*/;
957 }
958 return_label27: while(false);
959 tracehead = trace.prev;
960 return;
961 }
962 void typing___AClosureDecl___after_typing(val_t self, val_t param0) {
963 struct trace_t trace = {NULL, NULL, 301, LOCATE_typing___AClosureDecl___after_typing};
964 val_t variable[5];
965 void **closurevariable = NULL;
966 trace.prev = tracehead; tracehead = &trace;
967 trace.file = LOCATE_typing;
968 variable[0] = self;
969 variable[1] = param0;
970 variable[3] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
971 variable[4] = variable[0];
972 variable[4] = ((syntax_base___PClosureDecl___variable_t)CALL(variable[4],COLOR_syntax_base___PClosureDecl___variable))(variable[4]) /*PClosureDecl::variable*/;
973 ((typing___VariableContext___add_t)CALL(variable[3],COLOR_typing___VariableContext___add))(variable[3], variable[4]) /*VariableContext::add*/;
974 return_label28: while(false);
975 tracehead = trace.prev;
976 return;
977 }
978 void typing___PType___after_typing(val_t self, val_t param0) {
979 struct trace_t trace = {NULL, NULL, 309, LOCATE_typing___PType___after_typing};
980 val_t variable[5];
981 void **closurevariable = NULL;
982 trace.prev = tracehead; tracehead = &trace;
983 trace.file = LOCATE_typing;
984 variable[0] = self;
985 variable[1] = param0;
986 variable[3] = variable[0];
987 variable[4] = variable[0];
988 variable[4] = ((syntax_base___PType___get_stype_t)CALL(variable[4],COLOR_syntax_base___PType___get_stype))(variable[4], variable[1] /*v*/) /*PType::get_stype*/;
989 ATTR_typing___PType____stype(variable[3]) /*PType::_stype*/ = variable[4];
990 return_label29: while(false);
991 tracehead = trace.prev;
992 return;
993 }
994 val_t typing___PType___stype(val_t self) {
995 struct trace_t trace = {NULL, NULL, 308, LOCATE_typing___PType___stype};
996 val_t *variable = NULL;
997 void **closurevariable = NULL;
998 trace.prev = tracehead; tracehead = &trace;
999 trace.file = LOCATE_typing;
1000 tracehead = trace.prev;
1001 return ATTR_typing___PType____stype( self) /*PType::_stype*/;
1002 }
1003 val_t typing___PExpr___stype(val_t self) {
1004 struct trace_t trace = {NULL, NULL, 316, LOCATE_typing___PExpr___stype};
1005 val_t *variable = NULL;
1006 void **closurevariable = NULL;
1007 trace.prev = tracehead; tracehead = &trace;
1008 trace.file = LOCATE_typing;
1009 tracehead = trace.prev;
1010 return ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/;
1011 }
1012 val_t typing___PExpr___is_implicit_self(val_t self) {
1013 struct trace_t trace = {NULL, NULL, 318, LOCATE_typing___PExpr___is_implicit_self};
1014 val_t variable[2];
1015 void **closurevariable = NULL;
1016 trace.prev = tracehead; tracehead = &trace;
1017 trace.file = LOCATE_typing;
1018 variable[0] = self;
1019 variable[1] = TAG_Bool(false);
1020 goto return_label30;
1021 return_label30: while(false);
1022 tracehead = trace.prev;
1023 return variable[1];
1024 }
1025 val_t typing___PExpr___is_self(val_t self) {
1026 struct trace_t trace = {NULL, NULL, 321, LOCATE_typing___PExpr___is_self};
1027 val_t variable[2];
1028 void **closurevariable = NULL;
1029 trace.prev = tracehead; tracehead = &trace;
1030 trace.file = LOCATE_typing;
1031 variable[0] = self;
1032 variable[1] = TAG_Bool(false);
1033 goto return_label31;
1034 return_label31: while(false);
1035 tracehead = trace.prev;
1036 return variable[1];
1037 }
1038 val_t typing___PExpr___its_variable(val_t self) {
1039 struct trace_t trace = {NULL, NULL, 324, LOCATE_typing___PExpr___its_variable};
1040 val_t variable[2];
1041 void **closurevariable = NULL;
1042 trace.prev = tracehead; tracehead = &trace;
1043 trace.file = LOCATE_typing;
1044 variable[0] = self;
1045 variable[1] = NIT_NULL /*null*/;
1046 goto return_label32;
1047 return_label32: while(false);
1048 tracehead = trace.prev;
1049 return variable[1];
1050 }
1051 val_t typing___PExpr___if_true_variable_ctx(val_t self) {
1052 struct trace_t trace = {NULL, NULL, 327, LOCATE_typing___PExpr___if_true_variable_ctx};
1053 val_t *variable = NULL;
1054 void **closurevariable = NULL;
1055 trace.prev = tracehead; tracehead = &trace;
1056 trace.file = LOCATE_typing;
1057 tracehead = trace.prev;
1058 return ATTR_typing___PExpr____if_true_variable_ctx( self) /*PExpr::_if_true_variable_ctx*/;
1059 }
1060 void typing___AVardeclExpr___after_typing(val_t self, val_t param0) {
1061 struct trace_t trace = {NULL, NULL, 332, LOCATE_typing___AVardeclExpr___after_typing};
1062 val_t variable[7];
1063 void **closurevariable = NULL;
1064 trace.prev = tracehead; tracehead = &trace;
1065 trace.file = LOCATE_typing;
1066 variable[0] = self;
1067 variable[1] = param0;
1068 variable[4] = variable[0];
1069 variable[4] = ((parser_nodes___AVardeclExpr___n_id_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_id))(variable[4]) /*AVardeclExpr::n_id*/;
1070 variable[4] = ((syntax_base___Token___to_symbol_t)CALL(variable[4],COLOR_syntax_base___Token___to_symbol))(variable[4]) /*Token::to_symbol*/;
1071 variable[5] = variable[0];
1072 variable[6] = NEW_VarVariable_syntax_base___VarVariable___init(variable[4], variable[5]); /*new VarVariable*/
1073 variable[4] = variable[6];
1074 variable[3] = variable[4];
1075 variable[4] = variable[0];
1076 ((syntax_base___AVardeclExpr___variable__eq_t)CALL(variable[4],COLOR_syntax_base___AVardeclExpr___variable__eq))(variable[4], variable[3] /*va*/) /*AVardeclExpr::variable=*/;
1077 variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1078 ((typing___VariableContext___add_t)CALL(variable[4],COLOR_typing___VariableContext___add))(variable[4], variable[3] /*va*/) /*VariableContext::add*/;
1079 variable[4] = variable[0];
1080 variable[4] = ((parser_nodes___AVardeclExpr___n_type_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_type))(variable[4]) /*AVardeclExpr::n_type*/;
1081 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))))));
1082 if (UNTAG_Bool(variable[4])) { /*if*/
1083 variable[4] = variable[0];
1084 variable[4] = ((parser_nodes___AVardeclExpr___n_type_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_type))(variable[4]) /*AVardeclExpr::n_type*/;
1085 variable[4] = ((typing___PType___stype_t)CALL(variable[4],COLOR_typing___PType___stype))(variable[4]) /*PType::stype*/;
1086 ((syntax_base___Variable___stype__eq_t)CALL( variable[3] /*va*/,COLOR_syntax_base___Variable___stype__eq))( variable[3] /*va*/, variable[4]) /*Variable::stype=*/;
1087 variable[4] = variable[0];
1088 variable[4] = ((parser_nodes___AVardeclExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_expr))(variable[4]) /*AVardeclExpr::n_expr*/;
1089 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))))));
1090 if (UNTAG_Bool(variable[4])) { /*if*/
1091 variable[4] = variable[0];
1092 variable[4] = ((parser_nodes___AVardeclExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_expr))(variable[4]) /*AVardeclExpr::n_expr*/;
1093 variable[5] = ((syntax_base___Variable___stype_t)CALL( variable[3] /*va*/,COLOR_syntax_base___Variable___stype))( variable[3] /*va*/) /*Variable::stype*/;
1094 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
1095 }
1096 } else { /*if*/
1097 variable[4] = variable[0];
1098 variable[4] = ((parser_nodes___AVardeclExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_expr))(variable[4]) /*AVardeclExpr::n_expr*/;
1099 ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_expr))( variable[1] /*v*/, variable[4]) /*AbsSyntaxVisitor::check_expr*/;
1100 variable[4] = variable[0];
1101 variable[4] = ((parser_nodes___AVardeclExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_expr))(variable[4]) /*AVardeclExpr::n_expr*/;
1102 variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
1103 ((syntax_base___Variable___stype__eq_t)CALL( variable[3] /*va*/,COLOR_syntax_base___Variable___stype__eq))( variable[3] /*va*/, variable[4]) /*Variable::stype=*/;
1104 }
1105 return_label33: while(false);
1106 tracehead = trace.prev;
1107 return;
1108 }
1109 void typing___ABlockExpr___accept_typing(val_t self, val_t param0) {
1110 struct trace_t trace = {NULL, NULL, 351, LOCATE_typing___ABlockExpr___accept_typing};
1111 val_t variable[5];
1112 void **closurevariable = NULL;
1113 trace.prev = tracehead; tracehead = &trace;
1114 trace.file = LOCATE_typing;
1115 variable[0] = self;
1116 variable[1] = param0;
1117 variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1118 variable[3] = variable[4];
1119 variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1120 variable[4] = ((typing___VariableContext___sub_t)CALL(variable[4],COLOR_typing___VariableContext___sub))(variable[4]) /*VariableContext::sub*/;
1121 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
1122 ((typing___ABlockExpr___accept_typing_t)CALL(variable[0],COLOR_SUPER_typing___ABlockExpr___accept_typing))(variable[0], variable[1]) /*super ABlockExpr::accept_typing*/;
1123 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
1124 return_label34: while(false);
1125 tracehead = trace.prev;
1126 return;
1127 }
1128 void typing___AReturnExpr___after_typing(val_t self, val_t param0) {
1129 struct trace_t trace = {NULL, NULL, 363, LOCATE_typing___AReturnExpr___after_typing};
1130 val_t variable[6];
1131 void **closurevariable = NULL;
1132 trace.prev = tracehead; tracehead = &trace;
1133 trace.file = LOCATE_typing;
1134 variable[0] = self;
1135 variable[1] = param0;
1136 variable[4] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
1137 variable[4] = ((static_type___MMLocalProperty___signature_t)CALL(variable[4],COLOR_static_type___MMLocalProperty___signature))(variable[4]) /*MMLocalProperty::signature*/;
1138 variable[4] = ((static_type___MMSignature___return_type_t)CALL(variable[4],COLOR_static_type___MMSignature___return_type))(variable[4]) /*MMSignature::return_type*/;
1139 variable[3] = variable[4];
1140 variable[4] = variable[0];
1141 variable[4] = ((parser_nodes___AReturnExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AReturnExpr___n_expr))(variable[4]) /*AReturnExpr::n_expr*/;
1142 variable[4] = TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))));
1143 variable[5] = variable[4];
1144 if (UNTAG_Bool(variable[5])) { /* and */
1145 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ == NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1146 }
1147 variable[4] = variable[5];
1148 if (UNTAG_Bool(variable[4])) { /*if*/
1149 variable[4] = variable[0];
1150 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: Return without value in a function."), TAG_Int(42)); /*new String*/
1151 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
1152 } else { /*if*/
1153 variable[4] = variable[0];
1154 variable[4] = ((parser_nodes___AReturnExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AReturnExpr___n_expr))(variable[4]) /*AReturnExpr::n_expr*/;
1155 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))))));
1156 variable[5] = variable[4];
1157 if (UNTAG_Bool(variable[5])) { /* and */
1158 variable[5] = TAG_Bool(( variable[3] /*t*/ == NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))));
1159 }
1160 variable[4] = variable[5];
1161 if (UNTAG_Bool(variable[4])) { /*if*/
1162 variable[4] = variable[0];
1163 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: Return with value in a procedure."), TAG_Int(40)); /*new String*/
1164 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
1165 } else { /*if*/
1166 variable[4] = variable[0];
1167 variable[4] = ((parser_nodes___AReturnExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AReturnExpr___n_expr))(variable[4]) /*AReturnExpr::n_expr*/;
1168 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))))));
1169 variable[5] = variable[4];
1170 if (UNTAG_Bool(variable[5])) { /* and */
1171 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ == NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1172 }
1173 variable[4] = variable[5];
1174 if (UNTAG_Bool(variable[4])) { /*if*/
1175 variable[4] = variable[0];
1176 variable[4] = ((parser_nodes___AReturnExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AReturnExpr___n_expr))(variable[4]) /*AReturnExpr::n_expr*/;
1177 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[4], variable[3] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
1178 }
1179 }
1180 }
1181 return_label35: while(false);
1182 tracehead = trace.prev;
1183 return;
1184 }
1185 void typing___AContinueExpr___after_typing(val_t self, val_t param0) {
1186 struct trace_t trace = {NULL, NULL, 377, LOCATE_typing___AContinueExpr___after_typing};
1187 val_t variable[7];
1188 void **closurevariable = NULL;
1189 trace.prev = tracehead; tracehead = &trace;
1190 trace.file = LOCATE_typing;
1191 variable[0] = self;
1192 variable[1] = param0;
1193 variable[4] = ((typing___TypingVisitor___closure_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure))( variable[1] /*v*/) /*TypingVisitor::closure*/;
1194 variable[3] = variable[4];
1195 variable[4] = NIT_NULL /*null*/;
1196 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*c*/ == NIT_NULL /*null*/) || (( variable[3] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*c*/,COLOR_kernel___Object_____eqeq))( variable[3] /*c*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1197 if (UNTAG_Bool(variable[5])) { /*if*/
1198 variable[5] = ((static_type___MMClosure___is_break_t)CALL( variable[3] /*c*/,COLOR_static_type___MMClosure___is_break))( variable[3] /*c*/) /*MMClosure::is_break*/;
1199 if (UNTAG_Bool(variable[5])) { /*if*/
1200 variable[5] = variable[0];
1201 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: 'continue' forbiden in break blocks."), TAG_Int(43)); /*new String*/
1202 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
1203 goto return_label36;
1204 }
1205 variable[5] = ((static_type___MMClosure___signature_t)CALL( variable[3] /*c*/,COLOR_static_type___MMClosure___signature))( variable[3] /*c*/) /*MMClosure::signature*/;
1206 variable[5] = ((static_type___MMSignature___return_type_t)CALL(variable[5],COLOR_static_type___MMSignature___return_type))(variable[5]) /*MMSignature::return_type*/;
1207 variable[4] = variable[5] /*t=*/;
1208 }
1209 variable[5] = variable[0];
1210 variable[5] = ((parser_nodes___AContinueExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AContinueExpr___n_expr))(variable[5]) /*AContinueExpr::n_expr*/;
1211 variable[5] = TAG_Bool((variable[5] == NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5], NIT_NULL /*null*/) /*Object::==*/)))));
1212 variable[6] = variable[5];
1213 if (UNTAG_Bool(variable[6])) { /* and */
1214 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*t*/ == NIT_NULL /*null*/) || (( variable[4] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*t*/,COLOR_kernel___Object_____eqeq))( variable[4] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1215 }
1216 variable[5] = variable[6];
1217 if (UNTAG_Bool(variable[5])) { /*if*/
1218 variable[5] = variable[0];
1219 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: continue with a value required in this bloc."), TAG_Int(51)); /*new String*/
1220 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
1221 } else { /*if*/
1222 variable[5] = variable[0];
1223 variable[5] = ((parser_nodes___AContinueExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AContinueExpr___n_expr))(variable[5]) /*AContinueExpr::n_expr*/;
1224 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] == NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5], NIT_NULL /*null*/) /*Object::==*/)))))));
1225 variable[6] = variable[5];
1226 if (UNTAG_Bool(variable[6])) { /* and */
1227 variable[6] = TAG_Bool(( variable[4] /*t*/ == NIT_NULL /*null*/) || (( variable[4] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*t*/,COLOR_kernel___Object_____eqeq))( variable[4] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))));
1228 }
1229 variable[5] = variable[6];
1230 if (UNTAG_Bool(variable[5])) { /*if*/
1231 variable[5] = variable[0];
1232 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: continue without value required in this bloc."), TAG_Int(52)); /*new String*/
1233 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
1234 } else { /*if*/
1235 variable[5] = variable[0];
1236 variable[5] = ((parser_nodes___AContinueExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AContinueExpr___n_expr))(variable[5]) /*AContinueExpr::n_expr*/;
1237 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] == NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5], NIT_NULL /*null*/) /*Object::==*/)))))));
1238 variable[6] = variable[5];
1239 if (UNTAG_Bool(variable[6])) { /* and */
1240 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*t*/ == NIT_NULL /*null*/) || (( variable[4] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*t*/,COLOR_kernel___Object_____eqeq))( variable[4] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1241 }
1242 variable[5] = variable[6];
1243 if (UNTAG_Bool(variable[5])) { /*if*/
1244 variable[5] = variable[0];
1245 variable[5] = ((parser_nodes___AContinueExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AContinueExpr___n_expr))(variable[5]) /*AContinueExpr::n_expr*/;
1246 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[5], variable[4] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
1247 }
1248 }
1249 }
1250 return_label36: while(false);
1251 tracehead = trace.prev;
1252 return;
1253 }
1254 void typing___ABreakExpr___after_typing(val_t self, val_t param0) {
1255 struct trace_t trace = {NULL, NULL, 400, LOCATE_typing___ABreakExpr___after_typing};
1256 val_t variable[6];
1257 void **closurevariable = NULL;
1258 trace.prev = tracehead; tracehead = &trace;
1259 trace.file = LOCATE_typing;
1260 variable[0] = self;
1261 variable[1] = param0;
1262 variable[4] = ((typing___TypingVisitor___closure_break_stype_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure_break_stype))( variable[1] /*v*/) /*TypingVisitor::closure_break_stype*/;
1263 variable[3] = variable[4];
1264 variable[4] = variable[0];
1265 variable[4] = ((parser_nodes___ABreakExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ABreakExpr___n_expr))(variable[4]) /*ABreakExpr::n_expr*/;
1266 variable[4] = TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))));
1267 variable[5] = variable[4];
1268 if (UNTAG_Bool(variable[5])) { /* and */
1269 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ == NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1270 }
1271 variable[4] = variable[5];
1272 if (UNTAG_Bool(variable[4])) { /*if*/
1273 variable[4] = variable[0];
1274 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: break with a value required in this bloc."), TAG_Int(48)); /*new String*/
1275 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
1276 } else { /*if*/
1277 variable[4] = variable[0];
1278 variable[4] = ((parser_nodes___ABreakExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ABreakExpr___n_expr))(variable[4]) /*ABreakExpr::n_expr*/;
1279 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))))));
1280 variable[5] = variable[4];
1281 if (UNTAG_Bool(variable[5])) { /* and */
1282 variable[5] = TAG_Bool(( variable[3] /*t*/ == NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))));
1283 }
1284 variable[4] = variable[5];
1285 if (UNTAG_Bool(variable[4])) { /*if*/
1286 variable[4] = variable[0];
1287 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: break without value required in this bloc."), TAG_Int(49)); /*new String*/
1288 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
1289 } else { /*if*/
1290 variable[4] = variable[0];
1291 variable[4] = ((parser_nodes___ABreakExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ABreakExpr___n_expr))(variable[4]) /*ABreakExpr::n_expr*/;
1292 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))))));
1293 variable[5] = variable[4];
1294 if (UNTAG_Bool(variable[5])) { /* and */
1295 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ == NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1296 }
1297 variable[4] = variable[5];
1298 if (UNTAG_Bool(variable[4])) { /*if*/
1299 variable[4] = ((typing___TypingVisitor___break_list_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___break_list))( variable[1] /*v*/) /*TypingVisitor::break_list*/;
1300 variable[5] = variable[0];
1301 variable[5] = ((parser_nodes___ABreakExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___ABreakExpr___n_expr))(variable[5]) /*ABreakExpr::n_expr*/;
1302 ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[5]) /*AbstractArray::add*/;
1303 }
1304 }
1305 }
1306 return_label37: while(false);
1307 tracehead = trace.prev;
1308 return;
1309 }
1310 void typing___AIfExpr___accept_typing(val_t self, val_t param0) {
1311 struct trace_t trace = {NULL, NULL, 415, LOCATE_typing___AIfExpr___accept_typing};
1312 val_t variable[6];
1313 void **closurevariable = NULL;
1314 trace.prev = tracehead; tracehead = &trace;
1315 trace.file = LOCATE_typing;
1316 variable[0] = self;
1317 variable[1] = param0;
1318 variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1319 variable[3] = variable[4];
1320 variable[4] = variable[0];
1321 variable[4] = ((parser_nodes___AIfExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_expr))(variable[4]) /*AIfExpr::n_expr*/;
1322 ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
1323 variable[4] = variable[0];
1324 variable[4] = ((parser_nodes___AIfExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_expr))(variable[4]) /*AIfExpr::n_expr*/;
1325 variable[5] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1326 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
1327 variable[4] = variable[0];
1328 variable[4] = ((parser_nodes___AIfExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_expr))(variable[4]) /*AIfExpr::n_expr*/;
1329 variable[4] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[4],COLOR_typing___PExpr___if_true_variable_ctx))(variable[4]) /*PExpr::if_true_variable_ctx*/;
1330 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))))));
1331 if (UNTAG_Bool(variable[4])) { /*if*/
1332 variable[4] = variable[0];
1333 variable[4] = ((parser_nodes___AIfExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_expr))(variable[4]) /*AIfExpr::n_expr*/;
1334 variable[4] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[4],COLOR_typing___PExpr___if_true_variable_ctx))(variable[4]) /*PExpr::if_true_variable_ctx*/;
1335 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
1336 }
1337 variable[4] = variable[0];
1338 variable[4] = ((parser_nodes___AIfExpr___n_then_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_then))(variable[4]) /*AIfExpr::n_then*/;
1339 ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
1340 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
1341 variable[4] = variable[0];
1342 variable[4] = ((parser_nodes___AIfExpr___n_else_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_else))(variable[4]) /*AIfExpr::n_else*/;
1343 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))))));
1344 if (UNTAG_Bool(variable[4])) { /*if*/
1345 variable[4] = variable[0];
1346 variable[4] = ((parser_nodes___AIfExpr___n_else_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_else))(variable[4]) /*AIfExpr::n_else*/;
1347 ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
1348 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
1349 }
1350 return_label38: while(false);
1351 tracehead = trace.prev;
1352 return;
1353 }
1354 void typing___AWhileExpr___after_typing(val_t self, val_t param0) {
1355 struct trace_t trace = {NULL, NULL, 437, LOCATE_typing___AWhileExpr___after_typing};
1356 val_t variable[5];
1357 void **closurevariable = NULL;
1358 trace.prev = tracehead; tracehead = &trace;
1359 trace.file = LOCATE_typing;
1360 variable[0] = self;
1361 variable[1] = param0;
1362 variable[3] = variable[0];
1363 variable[3] = ((parser_nodes___AWhileExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AWhileExpr___n_expr))(variable[3]) /*AWhileExpr::n_expr*/;
1364 variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1365 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
1366 return_label39: while(false);
1367 tracehead = trace.prev;
1368 return;
1369 }
1370 void typing___AForExpr___after_typing(val_t self, val_t param0) {
1371 struct trace_t trace = {NULL, NULL, 444, LOCATE_typing___AForExpr___after_typing};
1372 val_t variable[5];
1373 void **closurevariable = NULL;
1374 trace.prev = tracehead; tracehead = &trace;
1375 trace.file = LOCATE_typing;
1376 variable[0] = self;
1377 variable[1] = param0;
1378 variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1379 variable[3] = variable[4];
1380 variable[4] = TAG_Bool(( variable[3] /*varctx*/==NIT_NULL) || VAL_ISA( variable[3] /*varctx*/, COLOR_SubVariableContext, ID_SubVariableContext)) /*cast SubVariableContext*/;
1381 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___AForExpr___after_typing, LOCATE_typing, 448); nit_exit(1);}
1382 variable[4] = ((typing___SubVariableContext___prev_t)CALL( variable[3] /*varctx*/,COLOR_typing___SubVariableContext___prev))( variable[3] /*varctx*/) /*SubVariableContext::prev*/;
1383 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
1384 return_label40: while(false);
1385 tracehead = trace.prev;
1386 return;
1387 }
1388 void typing___AForVardeclExpr___after_typing(val_t self, val_t param0) {
1389 struct trace_t trace = {NULL, NULL, 454, LOCATE_typing___AForVardeclExpr___after_typing};
1390 static val_t once_value_42; static int once_bool_42; /* Once value for variable[7]*/
1391 static val_t once_value_43; static int once_bool_43; /* Once value for variable[9]*/
1392 val_t variable[15];
1393 void **closurevariable = NULL;
1394 trace.prev = tracehead; tracehead = &trace;
1395 trace.file = LOCATE_typing;
1396 variable[0] = self;
1397 variable[1] = param0;
1398 variable[3] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1399 variable[3] = ((typing___VariableContext___sub_t)CALL(variable[3],COLOR_typing___VariableContext___sub))(variable[3]) /*VariableContext::sub*/;
1400 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[3]) /*TypingVisitor::variable_ctx=*/;
1401 variable[4] = variable[0];
1402 variable[4] = ((parser_nodes___AForVardeclExpr___n_id_t)CALL(variable[4],COLOR_parser_nodes___AForVardeclExpr___n_id))(variable[4]) /*AForVardeclExpr::n_id*/;
1403 variable[4] = ((syntax_base___Token___to_symbol_t)CALL(variable[4],COLOR_syntax_base___Token___to_symbol))(variable[4]) /*Token::to_symbol*/;
1404 variable[5] = variable[0];
1405 variable[6] = NEW_AutoVariable_syntax_base___AutoVariable___init(variable[4], variable[5]); /*new AutoVariable*/
1406 variable[4] = variable[6];
1407 variable[3] = variable[4];
1408 variable[4] = variable[0];
1409 ((syntax_base___AForVardeclExpr___variable__eq_t)CALL(variable[4],COLOR_syntax_base___AForVardeclExpr___variable__eq))(variable[4], variable[3] /*va*/) /*AForVardeclExpr::variable=*/;
1410 variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1411 ((typing___VariableContext___add_t)CALL(variable[4],COLOR_typing___VariableContext___add))(variable[4], variable[3] /*va*/) /*VariableContext::add*/;
1412 variable[5] = variable[0];
1413 variable[5] = ((parser_nodes___AForVardeclExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AForVardeclExpr___n_expr))(variable[5]) /*AForVardeclExpr::n_expr*/;
1414 variable[5] = ((typing___PExpr___stype_t)CALL(variable[5],COLOR_syntax_base___PExpr___stype))(variable[5]) /*PExpr::stype*/;
1415 variable[4] = variable[5];
1416 variable[5] = variable[0];
1417 variable[5] = ((parser_nodes___AForVardeclExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AForVardeclExpr___n_expr))(variable[5]) /*AForVardeclExpr::n_expr*/;
1418 variable[6] = ((syntax_base___AbsSyntaxVisitor___type_collection_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_collection))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_collection*/;
1419 variable[5] = ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::check_conform_expr*/;
1420 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[5])))) { /*if*/
1421 goto return_label41;
1422 }
1423 variable[6] = ((static_type___MMType___local_class_t)CALL( variable[4] /*expr_type*/,COLOR_static_type___MMType___local_class))( variable[4] /*expr_type*/) /*MMType::local_class*/;
1424 if (once_bool_42) variable[7] = once_value_42;
1425 else {
1426 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("iterator"), TAG_Int(8)); /*new String*/
1427 variable[7] = ((symbol___String___to_symbol_t)CALL(variable[7],COLOR_symbol___String___to_symbol))(variable[7]) /*String::to_symbol*/;
1428 once_value_42 = variable[7];
1429 once_bool_42 = true;
1430 }
1431 variable[6] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[6], variable[7]) /*MMLocalClass::select_method*/;
1432 variable[5] = variable[6];
1433 variable[6] = TAG_Bool(( variable[5] /*prop*/ == NIT_NULL /*null*/) || (( variable[5] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[5] /*prop*/, NIT_NULL /*null*/) /*Object::==*/)))));
1434 if (UNTAG_Bool(variable[6])) { /*if*/
1435 variable[6] = variable[0];
1436 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: Collection MUST have an iterate method"), TAG_Int(45)); /*new String*/
1437 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
1438 goto return_label41;
1439 }
1440 variable[7] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[5] /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[5] /*prop*/, variable[4] /*expr_type*/) /*MMLocalProperty::signature_for*/;
1441 variable[7] = ((static_type___MMSignature___return_type_t)CALL(variable[7],COLOR_static_type___MMSignature___return_type))(variable[7]) /*MMSignature::return_type*/;
1442 variable[6] = variable[7];
1443 variable[8] = ((static_type___MMType___local_class_t)CALL( variable[6] /*iter_type*/,COLOR_static_type___MMType___local_class))( variable[6] /*iter_type*/) /*MMType::local_class*/;
1444 if (once_bool_43) variable[9] = once_value_43;
1445 else {
1446 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("item"), TAG_Int(4)); /*new String*/
1447 variable[9] = ((symbol___String___to_symbol_t)CALL(variable[9],COLOR_symbol___String___to_symbol))(variable[9]) /*String::to_symbol*/;
1448 once_value_43 = variable[9];
1449 once_bool_43 = true;
1450 }
1451 variable[8] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[8], variable[9]) /*MMLocalClass::select_method*/;
1452 variable[7] = variable[8];
1453 variable[8] = TAG_Bool(( variable[7] /*prop2*/ == NIT_NULL /*null*/) || (( variable[7] /*prop2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*prop2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*prop2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*prop2*/,COLOR_kernel___Object_____eqeq))( variable[7] /*prop2*/, NIT_NULL /*null*/) /*Object::==*/)))));
1454 if (UNTAG_Bool(variable[8])) { /*if*/
1455 variable[8] = variable[0];
1456 variable[9] = NEW_String_string___String___init(); /*new String*/
1457 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
1458 variable[11] = variable[10];
1459 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
1460 variable[12] = variable[6] /*iter_type*/;
1461 variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
1462 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
1463 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have an item method"), TAG_Int(25)); /*new String*/
1464 variable[14] = variable[13];
1465 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
1466 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
1467 goto return_label41;
1468 }
1469 variable[9] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[7] /*prop2*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[7] /*prop2*/, variable[6] /*iter_type*/) /*MMLocalProperty::signature_for*/;
1470 variable[9] = ((static_type___MMSignature___return_type_t)CALL(variable[9],COLOR_static_type___MMSignature___return_type))(variable[9]) /*MMSignature::return_type*/;
1471 variable[8] = variable[9];
1472 variable[9] = variable[0];
1473 variable[9] = ((parser_nodes___AForVardeclExpr___n_expr_t)CALL(variable[9],COLOR_parser_nodes___AForVardeclExpr___n_expr))(variable[9]) /*AForVardeclExpr::n_expr*/;
1474 variable[9] = ((typing___PExpr___is_self_t)CALL(variable[9],COLOR_typing___PExpr___is_self))(variable[9]) /*PExpr::is_self*/;
1475 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[9])))) { /*if*/
1476 variable[9] = ((static_type___MMType___not_for_self_t)CALL( variable[8] /*t*/,COLOR_static_type___MMType___not_for_self))( variable[8] /*t*/) /*MMType::not_for_self*/;
1477 variable[8] = variable[9] /*t=*/;
1478 }
1479 ((syntax_base___Variable___stype__eq_t)CALL( variable[3] /*va*/,COLOR_syntax_base___Variable___stype__eq))( variable[3] /*va*/, variable[8] /*t*/) /*Variable::stype=*/;
1480 return_label41: while(false);
1481 tracehead = trace.prev;
1482 return;
1483 }
1484 void typing___AAssertExpr___after_typing(val_t self, val_t param0) {
1485 struct trace_t trace = {NULL, NULL, 483, LOCATE_typing___AAssertExpr___after_typing};
1486 val_t variable[5];
1487 void **closurevariable = NULL;
1488 trace.prev = tracehead; tracehead = &trace;
1489 trace.file = LOCATE_typing;
1490 variable[0] = self;
1491 variable[1] = param0;
1492 variable[3] = variable[0];
1493 variable[3] = ((parser_nodes___AAssertExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AAssertExpr___n_expr))(variable[3]) /*AAssertExpr::n_expr*/;
1494 variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1495 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
1496 variable[3] = variable[0];
1497 variable[3] = ((parser_nodes___AAssertExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AAssertExpr___n_expr))(variable[3]) /*AAssertExpr::n_expr*/;
1498 variable[3] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[3],COLOR_typing___PExpr___if_true_variable_ctx))(variable[3]) /*PExpr::if_true_variable_ctx*/;
1499 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1500 if (UNTAG_Bool(variable[3])) { /*if*/
1501 variable[3] = variable[0];
1502 variable[3] = ((parser_nodes___AAssertExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AAssertExpr___n_expr))(variable[3]) /*AAssertExpr::n_expr*/;
1503 variable[3] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[3],COLOR_typing___PExpr___if_true_variable_ctx))(variable[3]) /*PExpr::if_true_variable_ctx*/;
1504 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[3]) /*TypingVisitor::variable_ctx=*/;
1505 }
1506 return_label44: while(false);
1507 tracehead = trace.prev;
1508 return;
1509 }
1510 void typing___AVarExpr___after_typing(val_t self, val_t param0) {
1511 struct trace_t trace = {NULL, NULL, 493, LOCATE_typing___AVarExpr___after_typing};
1512 val_t variable[6];
1513 void **closurevariable = NULL;
1514 trace.prev = tracehead; tracehead = &trace;
1515 trace.file = LOCATE_typing;
1516 variable[0] = self;
1517 variable[1] = param0;
1518 variable[3] = variable[0];
1519 variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1520 variable[5] = variable[0];
1521 variable[5] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[5],COLOR_syntax_base___AVarFormExpr___variable))(variable[5]) /*AVarFormExpr::variable*/;
1522 variable[4] = ((typing___VariableContext___stype_t)CALL(variable[4],COLOR_typing___VariableContext___stype))(variable[4], variable[5]) /*VariableContext::stype*/;
1523 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
1524 return_label45: while(false);
1525 tracehead = trace.prev;
1526 return;
1527 }
1528 val_t typing___AVarExpr___its_variable(val_t self) {
1529 struct trace_t trace = {NULL, NULL, 491, LOCATE_typing___AVarExpr___its_variable};
1530 val_t variable[3];
1531 void **closurevariable = NULL;
1532 trace.prev = tracehead; tracehead = &trace;
1533 trace.file = LOCATE_typing;
1534 variable[0] = self;
1535 variable[2] = variable[0];
1536 variable[2] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[2],COLOR_syntax_base___AVarFormExpr___variable))(variable[2]) /*AVarFormExpr::variable*/;
1537 variable[1] = variable[2];
1538 goto return_label46;
1539 return_label46: while(false);
1540 tracehead = trace.prev;
1541 return variable[1];
1542 }
1543 void typing___AVarAssignExpr___after_typing(val_t self, val_t param0) {
1544 struct trace_t trace = {NULL, NULL, 500, LOCATE_typing___AVarAssignExpr___after_typing};
1545 val_t variable[6];
1546 void **closurevariable = NULL;
1547 trace.prev = tracehead; tracehead = &trace;
1548 trace.file = LOCATE_typing;
1549 variable[0] = self;
1550 variable[1] = param0;
1551 variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1552 variable[5] = variable[0];
1553 variable[5] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[5],COLOR_syntax_base___AVarFormExpr___variable))(variable[5]) /*AVarFormExpr::variable*/;
1554 variable[4] = ((typing___VariableContext___stype_t)CALL(variable[4],COLOR_typing___VariableContext___stype))(variable[4], variable[5]) /*VariableContext::stype*/;
1555 variable[3] = variable[4];
1556 variable[4] = variable[0];
1557 variable[4] = ((parser_nodes___AAssignFormExpr___n_value_t)CALL(variable[4],COLOR_parser_nodes___AAssignFormExpr___n_value))(variable[4]) /*AAssignFormExpr::n_value*/;
1558 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[4], variable[3] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
1559 return_label47: while(false);
1560 tracehead = trace.prev;
1561 return;
1562 }
1563 void typing___AReassignFormExpr___do_lvalue_typing(val_t self, val_t param0, val_t param1) {
1564 struct trace_t trace = {NULL, NULL, 508, LOCATE_typing___AReassignFormExpr___do_lvalue_typing};
1565 val_t variable[16];
1566 void **closurevariable = NULL;
1567 trace.prev = tracehead; tracehead = &trace;
1568 trace.file = LOCATE_typing;
1569 variable[0] = self;
1570 variable[1] = param0;
1571 variable[2] = param1;
1572 variable[4] = TAG_Bool(( variable[2] /*type_lvalue*/ == NIT_NULL /*null*/) || (( variable[2] /*type_lvalue*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*type_lvalue*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*type_lvalue*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*type_lvalue*/,COLOR_kernel___Object_____eqeq))( variable[2] /*type_lvalue*/, NIT_NULL /*null*/) /*Object::==*/)))));
1573 if (UNTAG_Bool(variable[4])) { /*if*/
1574 goto return_label48;
1575 }
1576 variable[5] = variable[0];
1577 variable[5] = ((parser_nodes___AReassignFormExpr___n_assign_op_t)CALL(variable[5],COLOR_parser_nodes___AReassignFormExpr___n_assign_op))(variable[5]) /*AReassignFormExpr::n_assign_op*/;
1578 variable[5] = ((typing___PAssignOp___method_name_t)CALL(variable[5],COLOR_typing___PAssignOp___method_name))(variable[5]) /*PAssignOp::method_name*/;
1579 variable[4] = variable[5];
1580 variable[6] = ((static_type___MMType___local_class_t)CALL( variable[2] /*type_lvalue*/,COLOR_static_type___MMType___local_class))( variable[2] /*type_lvalue*/) /*MMType::local_class*/;
1581 variable[6] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[6], variable[4] /*name*/) /*MMLocalClass::select_method*/;
1582 variable[5] = variable[6];
1583 variable[6] = TAG_Bool(( variable[5] /*prop*/ == NIT_NULL /*null*/) || (( variable[5] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[5] /*prop*/, NIT_NULL /*null*/) /*Object::==*/)))));
1584 if (UNTAG_Bool(variable[6])) { /*if*/
1585 variable[6] = variable[0];
1586 variable[7] = NEW_String_string___String___init(); /*new String*/
1587 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: Method '"), TAG_Int(15)); /*new String*/
1588 variable[9] = variable[8];
1589 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
1590 variable[10] = variable[4] /*name*/;
1591 variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
1592 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
1593 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("' doesn't exists in "), TAG_Int(20)); /*new String*/
1594 variable[12] = variable[11];
1595 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
1596 variable[13] = variable[2] /*type_lvalue*/;
1597 variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
1598 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
1599 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
1600 variable[15] = variable[14];
1601 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
1602 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
1603 goto return_label48;
1604 }
1605 variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[5] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[5] /*prop*/) /*MMLocalProperty::global*/;
1606 variable[7] = variable[0];
1607 variable[8] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
1608 ((syntax_base___MMGlobalProperty___check_visibility_t)CALL(variable[6],COLOR_syntax_base___MMGlobalProperty___check_visibility))(variable[6], variable[1] /*v*/, variable[7], variable[8], TAG_Bool(false)) /*MMGlobalProperty::check_visibility*/;
1609 variable[7] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[5] /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[5] /*prop*/, variable[2] /*type_lvalue*/) /*MMLocalProperty::signature_for*/;
1610 variable[6] = variable[7];
1611 variable[7] = variable[0];
1612 ATTR_typing___AReassignFormExpr____assign_method(variable[7]) /*AReassignFormExpr::_assign_method*/ = variable[5] /*prop*/;
1613 variable[7] = variable[0];
1614 variable[7] = ((parser_nodes___AReassignFormExpr___n_value_t)CALL(variable[7],COLOR_parser_nodes___AReassignFormExpr___n_value))(variable[7]) /*AReassignFormExpr::n_value*/;
1615 variable[8] = ((static_type___MMSignature_____bra_t)CALL( variable[6] /*psig*/,COLOR_static_type___MMSignature_____bra))( variable[6] /*psig*/, TAG_Int(0)) /*MMSignature::[]*/;
1616 variable[8] = ((static_type___MMType___not_for_self_t)CALL(variable[8],COLOR_static_type___MMType___not_for_self))(variable[8]) /*MMType::not_for_self*/;
1617 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::check_conform_expr*/;
1618 variable[7] = variable[0];
1619 variable[8] = ((static_type___MMSignature___return_type_t)CALL( variable[6] /*psig*/,COLOR_static_type___MMSignature___return_type))( variable[6] /*psig*/) /*MMSignature::return_type*/;
1620 variable[8] = ((static_type___MMType___not_for_self_t)CALL(variable[8],COLOR_static_type___MMType___not_for_self))(variable[8]) /*MMType::not_for_self*/;
1621 variable[9] = variable[0];
1622 variable[9] = ((parser_nodes___AReassignFormExpr___n_value_t)CALL(variable[9],COLOR_parser_nodes___AReassignFormExpr___n_value))(variable[9]) /*AReassignFormExpr::n_value*/;
1623 variable[9] = ((typing___PExpr___stype_t)CALL(variable[9],COLOR_syntax_base___PExpr___stype))(variable[9]) /*PExpr::stype*/;
1624 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable[1] /*v*/, variable[7], variable[8], variable[9]) /*AbsSyntaxVisitor::check_conform*/;
1625 return_label48: while(false);
1626 tracehead = trace.prev;
1627 return;
1628 }
1629 val_t typing___AReassignFormExpr___assign_method(val_t self) {
1630 struct trace_t trace = {NULL, NULL, 527, LOCATE_typing___AReassignFormExpr___assign_method};
1631 val_t *variable = NULL;
1632 void **closurevariable = NULL;
1633 trace.prev = tracehead; tracehead = &trace;
1634 trace.file = LOCATE_typing;
1635 tracehead = trace.prev;
1636 return ATTR_typing___AReassignFormExpr____assign_method( self) /*AReassignFormExpr::_assign_method*/;
1637 }
1638 void typing___AVarReassignExpr___after_typing(val_t self, val_t param0) {
1639 struct trace_t trace = {NULL, NULL, 532, LOCATE_typing___AVarReassignExpr___after_typing};
1640 val_t variable[6];
1641 void **closurevariable = NULL;
1642 trace.prev = tracehead; tracehead = &trace;
1643 trace.file = LOCATE_typing;
1644 variable[0] = self;
1645 variable[1] = param0;
1646 variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1647 variable[5] = variable[0];
1648 variable[5] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[5],COLOR_syntax_base___AVarFormExpr___variable))(variable[5]) /*AVarFormExpr::variable*/;
1649 variable[4] = ((typing___VariableContext___stype_t)CALL(variable[4],COLOR_typing___VariableContext___stype))(variable[4], variable[5]) /*VariableContext::stype*/;
1650 variable[3] = variable[4];
1651 variable[4] = variable[0];
1652 ((typing___AReassignFormExpr___do_lvalue_typing_t)CALL(variable[4],COLOR_typing___AReassignFormExpr___do_lvalue_typing))(variable[4], variable[1] /*v*/, variable[3] /*t*/) /*AReassignFormExpr::do_lvalue_typing*/;
1653 return_label49: while(false);
1654 tracehead = trace.prev;
1655 return;
1656 }
1657 val_t typing___PAssignOp___method_name(val_t self) {
1658 struct trace_t trace = {NULL, NULL, 540, LOCATE_typing___PAssignOp___method_name};
1659 val_t *variable = NULL;
1660 void **closurevariable = NULL;
1661 trace.prev = tracehead; tracehead = &trace;
1662 trace.file = LOCATE_typing;
1663 fprintf(stderr, "Deferred method called");
1664 fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 540);
1665 nit_exit(1);
1666 tracehead = trace.prev;
1667 return NIT_NULL;
1668 }
1669 val_t typing___APlusAssignOp___method_name(val_t self) {
1670 struct trace_t trace = {NULL, NULL, 543, LOCATE_typing___APlusAssignOp___method_name};
1671 static val_t once_value_51; static int once_bool_51; /* Once value for variable[2]*/
1672 val_t variable[3];
1673 void **closurevariable = NULL;
1674 trace.prev = tracehead; tracehead = &trace;
1675 trace.file = LOCATE_typing;
1676 variable[0] = self;
1677 if (once_bool_51) variable[2] = once_value_51;
1678 else {
1679 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
1680 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
1681 once_value_51 = variable[2];
1682 once_bool_51 = true;
1683 }
1684 variable[1] = variable[2];
1685 goto return_label50;
1686 return_label50: while(false);
1687 tracehead = trace.prev;
1688 return variable[1];
1689 }
1690 val_t typing___AMinusAssignOp___method_name(val_t self) {
1691 struct trace_t trace = {NULL, NULL, 546, LOCATE_typing___AMinusAssignOp___method_name};
1692 static val_t once_value_53; static int once_bool_53; /* Once value for variable[2]*/
1693 val_t variable[3];
1694 void **closurevariable = NULL;
1695 trace.prev = tracehead; tracehead = &trace;
1696 trace.file = LOCATE_typing;
1697 variable[0] = self;
1698 if (once_bool_53) variable[2] = once_value_53;
1699 else {
1700 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
1701 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
1702 once_value_53 = variable[2];
1703 once_bool_53 = true;
1704 }
1705 variable[1] = variable[2];
1706 goto return_label52;
1707 return_label52: while(false);
1708 tracehead = trace.prev;
1709 return variable[1];
1710 }
1711 void typing___ASelfExpr___after_typing(val_t self, val_t param0) {
1712 struct trace_t trace = {NULL, NULL, 552, LOCATE_typing___ASelfExpr___after_typing};
1713 val_t variable[6];
1714 void **closurevariable = NULL;
1715 trace.prev = tracehead; tracehead = &trace;
1716 trace.file = LOCATE_typing;
1717 variable[0] = self;
1718 variable[1] = param0;
1719 variable[3] = variable[0];
1720 variable[4] = ((typing___TypingVisitor___self_var_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___self_var))( variable[1] /*v*/) /*TypingVisitor::self_var*/;
1721 ((syntax_base___ASelfExpr___variable__eq_t)CALL(variable[3],COLOR_syntax_base___ASelfExpr___variable__eq))(variable[3], variable[4]) /*ASelfExpr::variable=*/;
1722 variable[3] = variable[0];
1723 variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1724 variable[5] = variable[0];
1725 variable[5] = ((syntax_base___ASelfExpr___variable_t)CALL(variable[5],COLOR_syntax_base___ASelfExpr___variable))(variable[5]) /*ASelfExpr::variable*/;
1726 variable[4] = ((typing___VariableContext___stype_t)CALL(variable[4],COLOR_typing___VariableContext___stype))(variable[4], variable[5]) /*VariableContext::stype*/;
1727 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
1728 return_label54: while(false);
1729 tracehead = trace.prev;
1730 return;
1731 }
1732 val_t typing___ASelfExpr___is_self(val_t self) {
1733 struct trace_t trace = {NULL, NULL, 558, LOCATE_typing___ASelfExpr___is_self};
1734 val_t variable[2];
1735 void **closurevariable = NULL;
1736 trace.prev = tracehead; tracehead = &trace;
1737 trace.file = LOCATE_typing;
1738 variable[0] = self;
1739 variable[1] = TAG_Bool(true);
1740 goto return_label55;
1741 return_label55: while(false);
1742 tracehead = trace.prev;
1743 return variable[1];
1744 }
1745 val_t typing___ASelfExpr___its_variable(val_t self) {
1746 struct trace_t trace = {NULL, NULL, 550, LOCATE_typing___ASelfExpr___its_variable};
1747 val_t variable[3];
1748 void **closurevariable = NULL;
1749 trace.prev = tracehead; tracehead = &trace;
1750 trace.file = LOCATE_typing;
1751 variable[0] = self;
1752 variable[2] = variable[0];
1753 variable[2] = ((syntax_base___ASelfExpr___variable_t)CALL(variable[2],COLOR_syntax_base___ASelfExpr___variable))(variable[2]) /*ASelfExpr::variable*/;
1754 variable[1] = variable[2];
1755 goto return_label56;
1756 return_label56: while(false);
1757 tracehead = trace.prev;
1758 return variable[1];
1759 }
1760 val_t typing___AImplicitSelfExpr___is_implicit_self(val_t self) {
1761 struct trace_t trace = {NULL, NULL, 562, LOCATE_typing___AImplicitSelfExpr___is_implicit_self};
1762 val_t variable[2];
1763 void **closurevariable = NULL;
1764 trace.prev = tracehead; tracehead = &trace;
1765 trace.file = LOCATE_typing;
1766 variable[0] = self;
1767 variable[1] = TAG_Bool(true);
1768 goto return_label57;
1769 return_label57: while(false);
1770 tracehead = trace.prev;
1771 return variable[1];
1772 }
1773 void typing___AIfexprExpr___accept_typing(val_t self, val_t param0) {
1774 struct trace_t trace = {NULL, NULL, 566, LOCATE_typing___AIfexprExpr___accept_typing};
1775 val_t variable[16];
1776 void **closurevariable = NULL;
1777 trace.prev = tracehead; tracehead = &trace;
1778 trace.file = LOCATE_typing;
1779 variable[0] = self;
1780 variable[1] = param0;
1781 variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1782 variable[3] = variable[4];
1783 variable[4] = variable[0];
1784 variable[4] = ((parser_nodes___AIfexprExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_expr))(variable[4]) /*AIfexprExpr::n_expr*/;
1785 ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
1786 variable[4] = variable[0];
1787 variable[4] = ((parser_nodes___AIfexprExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_expr))(variable[4]) /*AIfexprExpr::n_expr*/;
1788 variable[4] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[4],COLOR_typing___PExpr___if_true_variable_ctx))(variable[4]) /*PExpr::if_true_variable_ctx*/;
1789 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))))));
1790 if (UNTAG_Bool(variable[4])) { /*if*/
1791 variable[4] = variable[0];
1792 variable[4] = ((parser_nodes___AIfexprExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_expr))(variable[4]) /*AIfexprExpr::n_expr*/;
1793 variable[4] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[4],COLOR_typing___PExpr___if_true_variable_ctx))(variable[4]) /*PExpr::if_true_variable_ctx*/;
1794 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
1795 }
1796 variable[4] = variable[0];
1797 variable[4] = ((parser_nodes___AIfexprExpr___n_then_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_then))(variable[4]) /*AIfexprExpr::n_then*/;
1798 ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
1799 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
1800 variable[4] = variable[0];
1801 variable[4] = ((parser_nodes___AIfexprExpr___n_else_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_else))(variable[4]) /*AIfexprExpr::n_else*/;
1802 ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
1803 variable[4] = variable[0];
1804 variable[4] = ((parser_nodes___AIfexprExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_expr))(variable[4]) /*AIfexprExpr::n_expr*/;
1805 variable[5] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1806 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
1807 variable[4] = variable[0];
1808 variable[4] = ((parser_nodes___AIfexprExpr___n_then_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_then))(variable[4]) /*AIfexprExpr::n_then*/;
1809 variable[4] = ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_expr))( variable[1] /*v*/, variable[4]) /*AbsSyntaxVisitor::check_expr*/;
1810 variable[4] = TAG_Bool(!UNTAG_Bool(variable[4]));
1811 if (!UNTAG_Bool(variable[4])) { /* or */
1812 variable[4] = variable[0];
1813 variable[4] = ((parser_nodes___AIfexprExpr___n_else_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_else))(variable[4]) /*AIfexprExpr::n_else*/;
1814 variable[4] = ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_expr))( variable[1] /*v*/, variable[4]) /*AbsSyntaxVisitor::check_expr*/;
1815 variable[4] = TAG_Bool(!UNTAG_Bool(variable[4]));
1816 }
1817 if (UNTAG_Bool(variable[4])) { /*if*/
1818 goto return_label58;
1819 }
1820 variable[5] = variable[0];
1821 variable[5] = ((parser_nodes___AIfexprExpr___n_then_t)CALL(variable[5],COLOR_parser_nodes___AIfexprExpr___n_then))(variable[5]) /*AIfexprExpr::n_then*/;
1822 variable[5] = ((typing___PExpr___stype_t)CALL(variable[5],COLOR_syntax_base___PExpr___stype))(variable[5]) /*PExpr::stype*/;
1823 variable[4] = variable[5];
1824 variable[6] = variable[0];
1825 variable[6] = ((parser_nodes___AIfexprExpr___n_else_t)CALL(variable[6],COLOR_parser_nodes___AIfexprExpr___n_else))(variable[6]) /*AIfexprExpr::n_else*/;
1826 variable[6] = ((typing___PExpr___stype_t)CALL(variable[6],COLOR_syntax_base___PExpr___stype))(variable[6]) /*PExpr::stype*/;
1827 variable[5] = variable[6];
1828 variable[6] = ((static_type___MMType_____l_t)CALL( variable[4] /*t*/,COLOR_static_type___MMType_____l))( variable[4] /*t*/, variable[5] /*te*/) /*MMType::<*/;
1829 if (UNTAG_Bool(variable[6])) { /*if*/
1830 variable[4] = variable[5] /*te*/ /*t=*/;
1831 } else { /*if*/
1832 variable[6] = ((static_type___MMType_____l_t)CALL( variable[5] /*te*/,COLOR_static_type___MMType_____l))( variable[5] /*te*/, variable[4] /*t*/) /*MMType::<*/;
1833 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
1834 variable[6] = variable[0];
1835 variable[7] = NEW_String_string___String___init(); /*new String*/
1836 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)); /*new String*/
1837 variable[9] = variable[8];
1838 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
1839 variable[10] = variable[5] /*te*/;
1840 variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
1841 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
1842 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" is not a subtype of "), TAG_Int(21)); /*new String*/
1843 variable[12] = variable[11];
1844 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
1845 variable[13] = variable[4] /*t*/;
1846 variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
1847 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
1848 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
1849 variable[15] = variable[14];
1850 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
1851 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
1852 goto return_label58;
1853 }
1854 }
1855 variable[6] = variable[0];
1856 ATTR_typing___PExpr____stype(variable[6]) /*PExpr::_stype*/ = variable[4] /*t*/;
1857 return_label58: while(false);
1858 tracehead = trace.prev;
1859 return;
1860 }
1861 void typing___ABoolExpr___after_typing(val_t self, val_t param0) {
1862 struct trace_t trace = {NULL, NULL, 594, LOCATE_typing___ABoolExpr___after_typing};
1863 val_t variable[5];
1864 void **closurevariable = NULL;
1865 trace.prev = tracehead; tracehead = &trace;
1866 trace.file = LOCATE_typing;
1867 variable[0] = self;
1868 variable[1] = param0;
1869 variable[3] = variable[0];
1870 variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1871 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
1872 return_label59: while(false);
1873 tracehead = trace.prev;
1874 return;
1875 }
1876 void typing___AOrExpr___after_typing(val_t self, val_t param0) {
1877 struct trace_t trace = {NULL, NULL, 601, LOCATE_typing___AOrExpr___after_typing};
1878 val_t variable[5];
1879 void **closurevariable = NULL;
1880 trace.prev = tracehead; tracehead = &trace;
1881 trace.file = LOCATE_typing;
1882 variable[0] = self;
1883 variable[1] = param0;
1884 variable[3] = variable[0];
1885 variable[3] = ((parser_nodes___AOrExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AOrExpr___n_expr))(variable[3]) /*AOrExpr::n_expr*/;
1886 variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1887 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
1888 variable[3] = variable[0];
1889 variable[3] = ((parser_nodes___AOrExpr___n_expr2_t)CALL(variable[3],COLOR_parser_nodes___AOrExpr___n_expr2))(variable[3]) /*AOrExpr::n_expr2*/;
1890 variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1891 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
1892 variable[3] = variable[0];
1893 variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1894 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
1895 return_label60: while(false);
1896 tracehead = trace.prev;
1897 return;
1898 }
1899 void typing___AAndExpr___accept_typing(val_t self, val_t param0) {
1900 struct trace_t trace = {NULL, NULL, 610, LOCATE_typing___AAndExpr___accept_typing};
1901 val_t variable[6];
1902 void **closurevariable = NULL;
1903 trace.prev = tracehead; tracehead = &trace;
1904 trace.file = LOCATE_typing;
1905 variable[0] = self;
1906 variable[1] = param0;
1907 variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1908 variable[3] = variable[4];
1909 variable[4] = variable[0];
1910 variable[4] = ((parser_nodes___AAndExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr))(variable[4]) /*AAndExpr::n_expr*/;
1911 ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
1912 variable[4] = variable[0];
1913 variable[4] = ((parser_nodes___AAndExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr))(variable[4]) /*AAndExpr::n_expr*/;
1914 variable[4] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[4],COLOR_typing___PExpr___if_true_variable_ctx))(variable[4]) /*PExpr::if_true_variable_ctx*/;
1915 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))))));
1916 if (UNTAG_Bool(variable[4])) { /*if*/
1917 variable[4] = variable[0];
1918 variable[4] = ((parser_nodes___AAndExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr))(variable[4]) /*AAndExpr::n_expr*/;
1919 variable[4] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[4],COLOR_typing___PExpr___if_true_variable_ctx))(variable[4]) /*PExpr::if_true_variable_ctx*/;
1920 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
1921 }
1922 variable[4] = variable[0];
1923 variable[4] = ((parser_nodes___AAndExpr___n_expr2_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr2))(variable[4]) /*AAndExpr::n_expr2*/;
1924 ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
1925 variable[4] = variable[0];
1926 variable[4] = ((parser_nodes___AAndExpr___n_expr2_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr2))(variable[4]) /*AAndExpr::n_expr2*/;
1927 variable[4] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[4],COLOR_typing___PExpr___if_true_variable_ctx))(variable[4]) /*PExpr::if_true_variable_ctx*/;
1928 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))))));
1929 if (UNTAG_Bool(variable[4])) { /*if*/
1930 variable[4] = variable[0];
1931 variable[5] = variable[0];
1932 variable[5] = ((parser_nodes___AAndExpr___n_expr2_t)CALL(variable[5],COLOR_parser_nodes___AAndExpr___n_expr2))(variable[5]) /*AAndExpr::n_expr2*/;
1933 variable[5] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[5],COLOR_typing___PExpr___if_true_variable_ctx))(variable[5]) /*PExpr::if_true_variable_ctx*/;
1934 ATTR_typing___PExpr____if_true_variable_ctx(variable[4]) /*PExpr::_if_true_variable_ctx*/ = variable[5];
1935 } else { /*if*/
1936 variable[4] = variable[0];
1937 variable[5] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1938 ATTR_typing___PExpr____if_true_variable_ctx(variable[4]) /*PExpr::_if_true_variable_ctx*/ = variable[5];
1939 }
1940 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
1941 variable[4] = variable[0];
1942 variable[4] = ((parser_nodes___AAndExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr))(variable[4]) /*AAndExpr::n_expr*/;
1943 variable[5] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1944 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
1945 variable[4] = variable[0];
1946 variable[4] = ((parser_nodes___AAndExpr___n_expr2_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr2))(variable[4]) /*AAndExpr::n_expr2*/;
1947 variable[5] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1948 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
1949 variable[4] = variable[0];
1950 variable[5] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1951 ATTR_typing___PExpr____stype(variable[4]) /*PExpr::_stype*/ = variable[5];
1952 return_label61: while(false);
1953 tracehead = trace.prev;
1954 return;
1955 }
1956 void typing___ANotExpr___after_typing(val_t self, val_t param0) {
1957 struct trace_t trace = {NULL, NULL, 633, LOCATE_typing___ANotExpr___after_typing};
1958 val_t variable[5];
1959 void **closurevariable = NULL;
1960 trace.prev = tracehead; tracehead = &trace;
1961 trace.file = LOCATE_typing;
1962 variable[0] = self;
1963 variable[1] = param0;
1964 variable[3] = variable[0];
1965 variable[3] = ((parser_nodes___ANotExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___ANotExpr___n_expr))(variable[3]) /*ANotExpr::n_expr*/;
1966 variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1967 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
1968 variable[3] = variable[0];
1969 variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1970 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
1971 return_label62: while(false);
1972 tracehead = trace.prev;
1973 return;
1974 }
1975 void typing___AIntExpr___after_typing(val_t self, val_t param0) {
1976 struct trace_t trace = {NULL, NULL, 641, LOCATE_typing___AIntExpr___after_typing};
1977 val_t variable[5];
1978 void **closurevariable = NULL;
1979 trace.prev = tracehead; tracehead = &trace;
1980 trace.file = LOCATE_typing;
1981 variable[0] = self;
1982 variable[1] = param0;
1983 variable[3] = variable[0];
1984 variable[4] = ((syntax_base___AbsSyntaxVisitor___type_int_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_int))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_int*/;
1985 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
1986 return_label63: while(false);
1987 tracehead = trace.prev;
1988 return;
1989 }
1990 void typing___AFloatExpr___after_typing(val_t self, val_t param0) {
1991 struct trace_t trace = {NULL, NULL, 649, LOCATE_typing___AFloatExpr___after_typing};
1992 val_t variable[5];
1993 void **closurevariable = NULL;
1994 trace.prev = tracehead; tracehead = &trace;
1995 trace.file = LOCATE_typing;
1996 variable[0] = self;
1997 variable[1] = param0;
1998 variable[3] = variable[0];
1999 variable[4] = ((syntax_base___AbsSyntaxVisitor___type_float_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_float))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_float*/;
2000 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
2001 return_label64: while(false);
2002 tracehead = trace.prev;
2003 return;
2004 }
2005 void typing___ACharExpr___after_typing(val_t self, val_t param0) {
2006 struct trace_t trace = {NULL, NULL, 656, LOCATE_typing___ACharExpr___after_typing};
2007 val_t variable[5];
2008 void **closurevariable = NULL;
2009 trace.prev = tracehead; tracehead = &trace;
2010 trace.file = LOCATE_typing;
2011 variable[0] = self;
2012 variable[1] = param0;
2013 variable[3] = variable[0];
2014 variable[4] = ((syntax_base___AbsSyntaxVisitor___type_char_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_char))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_char*/;
2015 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
2016 return_label65: while(false);
2017 tracehead = trace.prev;
2018 return;
2019 }
2020 void typing___AStringFormExpr___after_typing(val_t self, val_t param0) {
2021 struct trace_t trace = {NULL, NULL, 663, LOCATE_typing___AStringFormExpr___after_typing};
2022 val_t variable[5];
2023 void **closurevariable = NULL;
2024 trace.prev = tracehead; tracehead = &trace;
2025 trace.file = LOCATE_typing;
2026 variable[0] = self;
2027 variable[1] = param0;
2028 variable[3] = variable[0];
2029 variable[4] = ((syntax_base___AbsSyntaxVisitor___type_string_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_string))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_string*/;
2030 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
2031 return_label66: while(false);
2032 tracehead = trace.prev;
2033 return;
2034 }
2035 void typing___ASuperstringExpr___after_typing(val_t self, val_t param0) {
2036 struct trace_t trace = {NULL, NULL, 670, LOCATE_typing___ASuperstringExpr___after_typing};
2037 val_t variable[5];
2038 void **closurevariable = NULL;
2039 trace.prev = tracehead; tracehead = &trace;
2040 trace.file = LOCATE_typing;
2041 variable[0] = self;
2042 variable[1] = param0;
2043 variable[3] = variable[0];
2044 variable[4] = ((syntax_base___AbsSyntaxVisitor___type_string_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_string))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_string*/;
2045 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
2046 return_label67: while(false);
2047 tracehead = trace.prev;
2048 return;
2049 }
2050 void typing___ANullExpr___after_typing(val_t self, val_t param0) {
2051 struct trace_t trace = {NULL, NULL, 677, LOCATE_typing___ANullExpr___after_typing};
2052 val_t variable[5];
2053 void **closurevariable = NULL;
2054 trace.prev = tracehead; tracehead = &trace;
2055 trace.file = LOCATE_typing;
2056 variable[0] = self;
2057 variable[1] = param0;
2058 variable[3] = variable[0];
2059 variable[4] = ((syntax_base___AbsSyntaxVisitor___type_none_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_none))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_none*/;
2060 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
2061 return_label68: while(false);
2062 tracehead = trace.prev;
2063 return;
2064 }
2065 void typing___AArrayExpr___after_typing(val_t self, val_t param0) {
2066 struct trace_t trace = {NULL, NULL, 686, LOCATE_typing___AArrayExpr___after_typing};
2067 val_t variable[11];
2068 void **closurevariable = NULL;
2069 trace.prev = tracehead; tracehead = &trace;
2070 trace.file = LOCATE_typing;
2071 variable[0] = self;
2072 variable[1] = param0;
2073 variable[3] = NIT_NULL /*null*/;
2074 variable[4] = variable[0];
2075 variable[4] = ((parser_nodes___AArrayExpr___n_exprs_t)CALL(variable[4],COLOR_parser_nodes___AArrayExpr___n_exprs))(variable[4]) /*AArrayExpr::n_exprs*/;
2076 variable[4] = ((list___List___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*List::iterator*/;
2077 while (true) { /*for*/
2078 variable[5] = ((list___ListIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ListIterator::is_ok*/;
2079 if (!UNTAG_Bool(variable[5])) break; /*for*/
2080 variable[5] = ((list___ListIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ListIterator::item*/;
2081 variable[6] = variable[5];
2082 variable[8] = ((typing___PExpr___stype_t)CALL( variable[6] /*n*/,COLOR_syntax_base___PExpr___stype))( variable[6] /*n*/) /*PExpr::stype*/;
2083 variable[7] = variable[8];
2084 variable[8] = TAG_Bool(( variable[3] /*stype*/ == NIT_NULL /*null*/) || (( variable[3] /*stype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*stype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*stype*/,COLOR_kernel___Object_____eqeq))( variable[3] /*stype*/, NIT_NULL /*null*/) /*Object::==*/)))));
2085 variable[9] = variable[8];
2086 if (!UNTAG_Bool(variable[9])) { /* or */
2087 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*ntype*/ == NIT_NULL /*null*/) || (( variable[7] /*ntype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*ntype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*ntype*/,COLOR_kernel___Object_____eqeq))( variable[7] /*ntype*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2088 variable[10] = variable[9];
2089 if (UNTAG_Bool(variable[10])) { /* and */
2090 variable[10] = ((static_type___MMType_____l_t)CALL( variable[3] /*stype*/,COLOR_static_type___MMType_____l))( variable[3] /*stype*/, variable[7] /*ntype*/) /*MMType::<*/;
2091 }
2092 variable[9] = variable[10];
2093 }
2094 variable[8] = variable[9];
2095 if (UNTAG_Bool(variable[8])) { /*if*/
2096 variable[3] = variable[7] /*ntype*/ /*stype=*/;
2097 }
2098 continue_70: while(0);
2099 ((list___ListIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ListIterator::next*/;
2100 }
2101 break_70: while(0);
2102 variable[4] = variable[0];
2103 variable[4] = ((parser_nodes___AArrayExpr___n_exprs_t)CALL(variable[4],COLOR_parser_nodes___AArrayExpr___n_exprs))(variable[4]) /*AArrayExpr::n_exprs*/;
2104 variable[4] = ((list___List___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*List::iterator*/;
2105 while (true) { /*for*/
2106 variable[5] = ((list___ListIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ListIterator::is_ok*/;
2107 if (!UNTAG_Bool(variable[5])) break; /*for*/
2108 variable[5] = ((list___ListIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ListIterator::item*/;
2109 variable[6] = variable[5];
2110 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[6] /*n*/, variable[3] /*stype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
2111 continue_71: while(0);
2112 ((list___ListIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ListIterator::next*/;
2113 }
2114 break_71: while(0);
2115 variable[4] = variable[0];
2116 variable[5] = ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_array))( variable[1] /*v*/, variable[3] /*stype*/) /*AbsSyntaxVisitor::type_array*/;
2117 ATTR_typing___PExpr____stype(variable[4]) /*PExpr::_stype*/ = variable[5];
2118 return_label69: while(false);
2119 tracehead = trace.prev;
2120 return;
2121 }
2122 void typing___AArrayExpr___stype__eq(val_t self, val_t param0) {
2123 struct trace_t trace = {NULL, NULL, 684, LOCATE_typing___AArrayExpr___stype__eq};
2124 val_t variable[4];
2125 void **closurevariable = NULL;
2126 trace.prev = tracehead; tracehead = &trace;
2127 trace.file = LOCATE_typing;
2128 variable[0] = self;
2129 variable[1] = param0;
2130 variable[3] = variable[0];
2131 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[1] /*t*/;
2132 return_label72: while(false);
2133 tracehead = trace.prev;
2134 return;
2135 }
2136 void typing___ARangeExpr___after_typing(val_t self, val_t param0) {
2137 struct trace_t trace = {NULL, NULL, 703, LOCATE_typing___ARangeExpr___after_typing};
2138 val_t variable[15];
2139 void **closurevariable = NULL;
2140 trace.prev = tracehead; tracehead = &trace;
2141 trace.file = LOCATE_typing;
2142 variable[0] = self;
2143 variable[1] = param0;
2144 variable[4] = variable[0];
2145 variable[4] = ((parser_nodes___ARangeExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ARangeExpr___n_expr))(variable[4]) /*ARangeExpr::n_expr*/;
2146 variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
2147 variable[3] = variable[4];
2148 variable[5] = variable[0];
2149 variable[5] = ((parser_nodes___ARangeExpr___n_expr2_t)CALL(variable[5],COLOR_parser_nodes___ARangeExpr___n_expr2))(variable[5]) /*ARangeExpr::n_expr2*/;
2150 variable[5] = ((typing___PExpr___stype_t)CALL(variable[5],COLOR_syntax_base___PExpr___stype))(variable[5]) /*PExpr::stype*/;
2151 variable[4] = variable[5];
2152 variable[5] = TAG_Bool(( variable[3] /*ntype*/ == NIT_NULL /*null*/) || (( variable[3] /*ntype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*ntype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*ntype*/,COLOR_kernel___Object_____eqeq))( variable[3] /*ntype*/, NIT_NULL /*null*/) /*Object::==*/)))));
2153 variable[6] = variable[5];
2154 if (!UNTAG_Bool(variable[6])) { /* or */
2155 variable[6] = TAG_Bool(( variable[3] /*ntype*/ == NIT_NULL /*null*/) || (( variable[3] /*ntype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*ntype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*ntype*/,COLOR_kernel___Object_____eqeq))( variable[3] /*ntype*/, NIT_NULL /*null*/) /*Object::==*/)))));
2156 }
2157 variable[5] = variable[6];
2158 if (UNTAG_Bool(variable[5])) { /*if*/
2159 goto return_label73;
2160 }
2161 variable[5] = ((static_type___MMType_____l_t)CALL( variable[3] /*ntype*/,COLOR_static_type___MMType_____l))( variable[3] /*ntype*/, variable[4] /*ntype2*/) /*MMType::<*/;
2162 if (UNTAG_Bool(variable[5])) { /*if*/
2163 variable[3] = variable[4] /*ntype2*/ /*ntype=*/;
2164 } else { /*if*/
2165 variable[5] = ((static_type___MMType_____l_t)CALL( variable[4] /*ntype2*/,COLOR_static_type___MMType_____l))( variable[4] /*ntype2*/, variable[3] /*ntype*/) /*MMType::<*/;
2166 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[5])))) { /*if*/
2167 variable[5] = variable[0];
2168 variable[6] = NEW_String_string___String___init(); /*new String*/
2169 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)); /*new String*/
2170 variable[8] = variable[7];
2171 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
2172 variable[9] = variable[3] /*ntype*/;
2173 variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
2174 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
2175 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" incompatible with "), TAG_Int(19)); /*new String*/
2176 variable[11] = variable[10];
2177 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
2178 variable[12] = variable[4] /*ntype2*/;
2179 variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
2180 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
2181 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
2182 variable[14] = variable[13];
2183 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
2184 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
2185 goto return_label73;
2186 }
2187 }
2188 variable[6] = ((syntax_base___AbsSyntaxVisitor___type_discrete_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_discrete))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_discrete*/;
2189 variable[5] = variable[6];
2190 variable[6] = variable[0];
2191 variable[6] = ((parser_nodes___ARangeExpr___n_expr_t)CALL(variable[6],COLOR_parser_nodes___ARangeExpr___n_expr))(variable[6]) /*ARangeExpr::n_expr*/;
2192 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[6], variable[5] /*dtype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
2193 variable[6] = variable[0];
2194 variable[6] = ((parser_nodes___ARangeExpr___n_expr2_t)CALL(variable[6],COLOR_parser_nodes___ARangeExpr___n_expr2))(variable[6]) /*ARangeExpr::n_expr2*/;
2195 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[6], variable[5] /*dtype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
2196 variable[6] = variable[0];
2197 variable[7] = ((syntax_base___AbsSyntaxVisitor___type_range_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_range))( variable[1] /*v*/, variable[3] /*ntype*/) /*AbsSyntaxVisitor::type_range*/;
2198 ATTR_typing___PExpr____stype(variable[6]) /*PExpr::_stype*/ = variable[7];
2199 return_label73: while(false);
2200 tracehead = trace.prev;
2201 return;
2202 }
2203 void typing___ASuperExpr___after_typing(val_t self, val_t param0) {
2204 struct trace_t trace = {NULL, NULL, 727, LOCATE_typing___ASuperExpr___after_typing};
2205 val_t variable[19];
2206 void **closurevariable = NULL;
2207 trace.prev = tracehead; tracehead = &trace;
2208 trace.file = LOCATE_typing;
2209 variable[0] = self;
2210 variable[1] = param0;
2211 variable[4] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2212 variable[4] = ((abstractmetamodel___MMLocalProperty___prhe_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalProperty___prhe))(variable[4]) /*MMLocalProperty::prhe*/;
2213 variable[4] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[4]) /*PartialOrderElement::direct_greaters*/;
2214 variable[3] = variable[4];
2215 variable[4] = ((array___AbstractArray___is_empty_t)CALL( variable[3] /*precs*/,COLOR_abstract_collection___Collection___is_empty))( variable[3] /*precs*/) /*AbstractArray::is_empty*/;
2216 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/
2217 variable[4] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2218 ((abstractmetamodel___MMLocalProperty___need_super__eq_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalProperty___need_super__eq))(variable[4], TAG_Bool(true)) /*MMLocalProperty::need_super=*/;
2219 } else { /*if*/
2220 variable[4] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2221 variable[4] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[4]) /*MMLocalProperty::global*/;
2222 variable[4] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[4],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[4]) /*MMGlobalProperty::is_init*/;
2223 if (UNTAG_Bool(variable[4])) { /*if*/
2224 variable[5] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
2225 variable[6] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2226 variable[6] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[6]) /*MMLocalProperty::name*/;
2227 variable[5] = ((abstractmetamodel___MMLocalClass___super_methods_named_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___super_methods_named))(variable[5], variable[6]) /*MMLocalClass::super_methods_named*/;
2228 variable[4] = variable[5];
2229 variable[5] = ((array___AbstractArray___iterator_t)CALL( variable[4] /*base_precs*/,COLOR_abstract_collection___Collection___iterator))( variable[4] /*base_precs*/) /*AbstractArray::iterator*/;
2230 while (true) { /*for*/
2231 variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
2232 if (!UNTAG_Bool(variable[6])) break; /*for*/
2233 variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
2234 variable[7] = variable[6];
2235 variable[8] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[7] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[7] /*p*/) /*MMLocalProperty::global*/;
2236 variable[8] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[8],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[8]) /*MMGlobalProperty::is_init*/;
2237 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/
2238 variable[8] = variable[0];
2239 variable[9] = NEW_String_string___String___init(); /*new String*/
2240 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
2241 variable[11] = variable[10];
2242 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
2243 variable[12] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[7] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[7] /*p*/) /*MMLocalProperty::local_class*/;
2244 variable[13] = variable[12];
2245 variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
2246 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
2247 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
2248 variable[15] = variable[14];
2249 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
2250 variable[16] = variable[7] /*p*/;
2251 variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
2252 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
2253 variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" is not a constructor."), TAG_Int(22)); /*new String*/
2254 variable[18] = variable[17];
2255 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
2256 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
2257 } else { /*if*/
2258 variable[8] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
2259 variable[9] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[7] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[7] /*p*/) /*MMLocalProperty::global*/;
2260 variable[8] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[8], variable[9]) /*MMLocalClass::[]*/;
2261 ((array___AbstractArray___add_t)CALL( variable[3] /*precs*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*precs*/, variable[8]) /*AbstractArray::add*/;
2262 }
2263 continue_75: while(0);
2264 ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
2265 }
2266 break_75: while(0);
2267 variable[5] = ((array___AbstractArray___is_empty_t)CALL( variable[3] /*precs*/,COLOR_abstract_collection___Collection___is_empty))( variable[3] /*precs*/) /*AbstractArray::is_empty*/;
2268 if (UNTAG_Bool(variable[5])) { /*if*/
2269 variable[5] = variable[0];
2270 variable[6] = NEW_String_string___String___init(); /*new String*/
2271 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: No contructor named "), TAG_Int(27)); /*new String*/
2272 variable[8] = variable[7];
2273 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
2274 variable[9] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2275 variable[9] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[9]) /*MMLocalProperty::name*/;
2276 variable[10] = variable[9];
2277 variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
2278 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
2279 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" in superclasses."), TAG_Int(17)); /*new String*/
2280 variable[12] = variable[11];
2281 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
2282 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
2283 goto return_label74;
2284 } else { /*if*/
2285 variable[5] = ((array___AbstractArray___length_t)CALL( variable[3] /*precs*/,COLOR_abstract_collection___Collection___length))( variable[3] /*precs*/) /*AbstractArray::length*/;
2286 variable[5] = TAG_Bool(UNTAG_Int(variable[5])>UNTAG_Int( TAG_Int(1)));
2287 if (UNTAG_Bool(variable[5])) { /*if*/
2288 variable[5] = variable[0];
2289 variable[6] = NEW_String_string___String___init(); /*new String*/
2290 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: Conflicting contructors named "), TAG_Int(37)); /*new String*/
2291 variable[8] = variable[7];
2292 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
2293 variable[9] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2294 variable[9] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[9]) /*MMLocalProperty::name*/;
2295 variable[10] = variable[9];
2296 variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
2297 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
2298 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" in superclasses: "), TAG_Int(18)); /*new String*/
2299 variable[12] = variable[11];
2300 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
2301 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
2302 variable[13] = ((string___Collection___join_t)CALL( variable[3] /*precs*/,COLOR_string___Collection___join))( variable[3] /*precs*/, variable[13]) /*Collection::join*/;
2303 variable[14] = variable[13];
2304 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
2305 variable[15] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
2306 variable[16] = variable[15];
2307 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/;
2308 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
2309 goto return_label74;
2310 }
2311 }
2312 variable[6] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[4] /*base_precs*/,COLOR_abstract_collection___Collection___first))( variable[4] /*base_precs*/) /*IndexedCollection::first*/;
2313 variable[5] = variable[6];
2314 variable[6] = TAG_Bool(( variable[5] /*p*/==NIT_NULL) || VAL_ISA( variable[5] /*p*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
2315 if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing, LOCATE_typing, 749); nit_exit(1);}
2316 variable[6] = variable[0];
2317 ATTR_typing___ASuperExpr____init_in_superclass(variable[6]) /*ASuperExpr::_init_in_superclass*/ = variable[5] /*p*/;
2318 variable[6] = variable[0];
2319 ((typing___ASuperInitCall___register_super_init_call_t)CALL(variable[6],COLOR_typing___ASuperInitCall___register_super_init_call))(variable[6], variable[1] /*v*/, variable[5] /*p*/) /*ASuperInitCall::register_super_init_call*/;
2320 variable[6] = variable[0];
2321 variable[6] = ((parser_nodes___ASuperExpr___n_args_t)CALL(variable[6],COLOR_parser_nodes___ASuperExpr___n_args))(variable[6]) /*ASuperExpr::n_args*/;
2322 variable[6] = ((list___List___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*List::length*/;
2323 variable[6] = TAG_Bool(UNTAG_Int(variable[6])>UNTAG_Int( TAG_Int(0)));
2324 if (UNTAG_Bool(variable[6])) { /*if*/
2325 variable[7] = variable[0];
2326 variable[8] = ((typing___TypingVisitor___self_var_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___self_var))( variable[1] /*v*/) /*TypingVisitor::self_var*/;
2327 variable[8] = ((syntax_base___Variable___stype_t)CALL(variable[8],COLOR_syntax_base___Variable___stype))(variable[8]) /*Variable::stype*/;
2328 variable[7] = ((typing___AAbsSendExpr___get_signature_t)CALL(variable[7],COLOR_typing___AAbsSendExpr___get_signature))(variable[7], variable[1] /*v*/, variable[8], variable[5] /*p*/, TAG_Bool(true)) /*AAbsSendExpr::get_signature*/;
2329 variable[6] = variable[7];
2330 variable[7] = variable[0];
2331 variable[8] = variable[0];
2332 variable[9] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[5] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[5] /*p*/) /*MMLocalProperty::name*/;
2333 variable[10] = variable[0];
2334 variable[10] = ((parser_nodes___ASuperExpr___n_args_t)CALL(variable[10],COLOR_parser_nodes___ASuperExpr___n_args))(variable[10]) /*ASuperExpr::n_args*/;
2335 variable[10] = ((array___Collection___to_a_t)CALL(variable[10],COLOR_array___Collection___to_a))(variable[10]) /*Collection::to_a*/;
2336 variable[8] = ((typing___AAbsSendExpr___process_signature_t)CALL(variable[8],COLOR_typing___AAbsSendExpr___process_signature))(variable[8], variable[1] /*v*/, variable[6] /*signature*/, variable[9], variable[10]) /*AAbsSendExpr::process_signature*/;
2337 ATTR_typing___AAbsSendExpr____arguments(variable[7]) /*AAbsSendExpr::_arguments*/ = variable[8];
2338 }
2339 } else { /*if*/
2340 variable[4] = variable[0];
2341 variable[5] = NEW_String_string___String___init(); /*new String*/
2342 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: No super method to call for "), TAG_Int(35)); /*new String*/
2343 variable[7] = variable[6];
2344 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
2345 variable[8] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2346 variable[9] = variable[8];
2347 variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
2348 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
2349 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
2350 variable[11] = variable[10];
2351 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
2352 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
2353 goto return_label74;
2354 }
2355 }
2356 variable[4] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[3] /*precs*/,COLOR_abstract_collection___Collection___first))( variable[3] /*precs*/) /*IndexedCollection::first*/;
2357 variable[5] = ((typing___TypingVisitor___self_var_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___self_var))( variable[1] /*v*/) /*TypingVisitor::self_var*/;
2358 variable[5] = ((syntax_base___Variable___stype_t)CALL(variable[5],COLOR_syntax_base___Variable___stype))(variable[5]) /*Variable::stype*/;
2359 variable[4] = ((static_type___MMLocalProperty___signature_for_t)CALL(variable[4],COLOR_static_type___MMLocalProperty___signature_for))(variable[4], variable[5]) /*MMLocalProperty::signature_for*/;
2360 variable[4] = ((static_type___MMSignature___return_type_t)CALL(variable[4],COLOR_static_type___MMSignature___return_type))(variable[4]) /*MMSignature::return_type*/;
2361 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))))));
2362 if (UNTAG_Bool(variable[4])) { /*if*/
2363 variable[5] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
2364 variable[4] = variable[5];
2365 variable[5] = NIT_NULL /*null*/;
2366 variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*precs*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*precs*/) /*AbstractArray::iterator*/;
2367 while (true) { /*for*/
2368 variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
2369 if (!UNTAG_Bool(variable[7])) break; /*for*/
2370 variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
2371 variable[8] = variable[7];
2372 variable[9] = TAG_Bool(( variable[8] /*prop*/==NIT_NULL) || VAL_ISA( variable[8] /*prop*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
2373 if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing, LOCATE_typing, 765); nit_exit(1);}
2374 variable[10] = ((typing___TypingVisitor___self_var_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___self_var))( variable[1] /*v*/) /*TypingVisitor::self_var*/;
2375 variable[10] = ((syntax_base___Variable___stype_t)CALL(variable[10],COLOR_syntax_base___Variable___stype))(variable[10]) /*Variable::stype*/;
2376 variable[10] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[8] /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[8] /*prop*/, variable[10]) /*MMLocalProperty::signature_for*/;
2377 variable[10] = ((static_type___MMSignature___return_type_t)CALL(variable[10],COLOR_static_type___MMSignature___return_type))(variable[10]) /*MMSignature::return_type*/;
2378 variable[11] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
2379 variable[10] = ((static_type___MMType___for_module_t)CALL(variable[10],COLOR_static_type___MMType___for_module))(variable[10], variable[11]) /*MMType::for_module*/;
2380 variable[11] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2381 variable[11] = ((static_type___MMLocalProperty___signature_t)CALL(variable[11],COLOR_static_type___MMLocalProperty___signature))(variable[11]) /*MMLocalProperty::signature*/;
2382 variable[11] = ((static_type___MMSignature___recv_t)CALL(variable[11],COLOR_static_type___MMSignature___recv))(variable[11]) /*MMSignature::recv*/;
2383 variable[10] = ((static_type___MMType___adapt_to_t)CALL(variable[10],COLOR_static_type___MMType___adapt_to))(variable[10], variable[11]) /*MMType::adapt_to*/;
2384 variable[9] = variable[10];
2385 ((array___AbstractArray___add_t)CALL( variable[4] /*stypes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*stypes*/, variable[9] /*t*/) /*AbstractArray::add*/;
2386 variable[10] = TAG_Bool(( variable[5] /*stype*/ == NIT_NULL /*null*/) || (( variable[5] /*stype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*stype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*stype*/,COLOR_kernel___Object_____eqeq))( variable[5] /*stype*/, NIT_NULL /*null*/) /*Object::==*/)))));
2387 variable[11] = variable[10];
2388 if (!UNTAG_Bool(variable[11])) { /* or */
2389 variable[11] = ((static_type___MMType_____l_t)CALL( variable[5] /*stype*/,COLOR_static_type___MMType_____l))( variable[5] /*stype*/, variable[9] /*t*/) /*MMType::<*/;
2390 }
2391 variable[10] = variable[11];
2392 if (UNTAG_Bool(variable[10])) { /*if*/
2393 variable[5] = variable[9] /*t*/ /*stype=*/;
2394 }
2395 continue_76: while(0);
2396 ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
2397 }
2398 break_76: while(0);
2399 variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[4] /*stypes*/,COLOR_abstract_collection___Collection___iterator))( variable[4] /*stypes*/) /*AbstractArray::iterator*/;
2400 while (true) { /*for*/
2401 variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
2402 if (!UNTAG_Bool(variable[7])) break; /*for*/
2403 variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
2404 variable[8] = variable[7];
2405 variable[9] = variable[0];
2406 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable[1] /*v*/, variable[9], variable[8] /*t*/, variable[5] /*stype*/) /*AbsSyntaxVisitor::check_conform*/;
2407 continue_77: while(0);
2408 ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
2409 }
2410 break_77: while(0);
2411 variable[6] = variable[0];
2412 ATTR_typing___PExpr____stype(variable[6]) /*PExpr::_stype*/ = variable[5] /*stype*/;
2413 }
2414 variable[5] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2415 variable[4] = variable[5];
2416 variable[5] = TAG_Bool(( variable[4] /*p*/==NIT_NULL) || VAL_ISA( variable[4] /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
2417 if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing, LOCATE_typing, 778); nit_exit(1);}
2418 variable[5] = variable[0];
2419 ATTR_typing___AAbsSendExpr____prop(variable[5]) /*AAbsSendExpr::_prop*/ = variable[4] /*p*/;
2420 return_label74: while(false);
2421 tracehead = trace.prev;
2422 return;
2423 }
2424 val_t typing___ASuperExpr___init_in_superclass(val_t self) {
2425 struct trace_t trace = {NULL, NULL, 725, LOCATE_typing___ASuperExpr___init_in_superclass};
2426 val_t *variable = NULL;
2427 void **closurevariable = NULL;
2428 trace.prev = tracehead; tracehead = &trace;
2429 trace.file = LOCATE_typing;
2430 tracehead = trace.prev;
2431 return ATTR_typing___ASuperExpr____init_in_superclass( self) /*ASuperExpr::_init_in_superclass*/;
2432 }
2433 val_t typing___AAttrFormExpr___prop(val_t self) {
2434 struct trace_t trace = {NULL, NULL, 784, LOCATE_typing___AAttrFormExpr___prop};
2435 val_t *variable = NULL;
2436 void **closurevariable = NULL;
2437 trace.prev = tracehead; tracehead = &trace;
2438 trace.file = LOCATE_typing;
2439 tracehead = trace.prev;
2440 return ATTR_typing___AAttrFormExpr____prop( self) /*AAttrFormExpr::_prop*/;
2441 }
2442 val_t typing___AAttrFormExpr___attr_type(val_t self) {
2443 struct trace_t trace = {NULL, NULL, 787, LOCATE_typing___AAttrFormExpr___attr_type};
2444 val_t *variable = NULL;
2445 void **closurevariable = NULL;
2446 trace.prev = tracehead; tracehead = &trace;
2447 trace.file = LOCATE_typing;
2448 tracehead = trace.prev;
2449 return ATTR_typing___AAttrFormExpr____attr_type( self) /*AAttrFormExpr::_attr_type*/;
2450 }
2451 void typing___AAttrFormExpr___do_typing(val_t self, val_t param0) {
2452 struct trace_t trace = {NULL, NULL, 790, LOCATE_typing___AAttrFormExpr___do_typing};
2453 val_t variable[21];
2454 void **closurevariable = NULL;
2455 trace.prev = tracehead; tracehead = &trace;
2456 trace.file = LOCATE_typing;
2457 variable[0] = self;
2458 variable[1] = param0;
2459 variable[3] = variable[0];
2460 variable[3] = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AAttrFormExpr___n_expr))(variable[3]) /*AAttrFormExpr::n_expr*/;
2461 variable[3] = ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_expr))( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::check_expr*/;
2462 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
2463 goto return_label78;
2464 }
2465 variable[4] = variable[0];
2466 variable[4] = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAttrFormExpr___n_expr))(variable[4]) /*AAttrFormExpr::n_expr*/;
2467 variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
2468 variable[3] = variable[4];
2469 variable[5] = variable[0];
2470 variable[5] = ((parser_nodes___AAttrFormExpr___n_id_t)CALL(variable[5],COLOR_parser_nodes___AAttrFormExpr___n_id))(variable[5]) /*AAttrFormExpr::n_id*/;
2471 variable[5] = ((syntax_base___Token___to_symbol_t)CALL(variable[5],COLOR_syntax_base___Token___to_symbol))(variable[5]) /*Token::to_symbol*/;
2472 variable[4] = variable[5];
2473 variable[6] = ((static_type___MMType___local_class_t)CALL( variable[3] /*type_recv*/,COLOR_static_type___MMType___local_class))( variable[3] /*type_recv*/) /*MMType::local_class*/;
2474 variable[6] = ((abstractmetamodel___MMLocalClass___select_attribute_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___select_attribute))(variable[6], variable[4] /*name*/) /*MMLocalClass::select_attribute*/;
2475 variable[5] = variable[6];
2476 variable[6] = TAG_Bool(( variable[5] /*prop*/ == NIT_NULL /*null*/) || (( variable[5] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[5] /*prop*/, NIT_NULL /*null*/) /*Object::==*/)))));
2477 if (UNTAG_Bool(variable[6])) { /*if*/
2478 variable[6] = variable[0];
2479 variable[7] = NEW_String_string___String___init(); /*new String*/
2480 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attribute "), TAG_Int(17)); /*new String*/
2481 variable[9] = variable[8];
2482 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
2483 variable[10] = variable[4] /*name*/;
2484 variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
2485 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
2486 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" doesn't exists in "), TAG_Int(19)); /*new String*/
2487 variable[12] = variable[11];
2488 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
2489 variable[13] = variable[3] /*type_recv*/;
2490 variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
2491 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
2492 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
2493 variable[15] = variable[14];
2494 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
2495 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
2496 goto return_label78;
2497 } else { /*if*/
2498 variable[6] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
2499 variable[7] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[5] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[5] /*prop*/) /*MMLocalProperty::global*/;
2500 variable[7] = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL(variable[7],COLOR_abstractmetamodel___MMGlobalProperty___local_class))(variable[7]) /*MMGlobalProperty::local_class*/;
2501 variable[7] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___module))(variable[7]) /*MMLocalClass::module*/;
2502 variable[6] = ((abstractmetamodel___MMModule___visibility_for_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___visibility_for))(variable[6], variable[7]) /*MMModule::visibility_for*/;
2503 variable[6] = TAG_Bool(UNTAG_Int(variable[6])<UNTAG_Int( TAG_Int(3)));
2504 if (UNTAG_Bool(variable[6])) { /*if*/
2505 variable[6] = variable[0];
2506 variable[7] = NEW_String_string___String___init(); /*new String*/
2507 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attribute "), TAG_Int(17)); /*new String*/
2508 variable[9] = variable[8];
2509 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
2510 variable[10] = variable[4] /*name*/;
2511 variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
2512 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
2513 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" from "), TAG_Int(6)); /*new String*/
2514 variable[12] = variable[11];
2515 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
2516 variable[13] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[5] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[5] /*prop*/) /*MMLocalProperty::global*/;
2517 variable[13] = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL(variable[13],COLOR_abstractmetamodel___MMGlobalProperty___local_class))(variable[13]) /*MMGlobalProperty::local_class*/;
2518 variable[13] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalClass___module))(variable[13]) /*MMLocalClass::module*/;
2519 variable[14] = variable[13];
2520 variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
2521 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[14]) /*String::append*/;
2522 variable[15] = NEW_String_string___String___with_native(BOX_NativeString(" is invisible in "), TAG_Int(17)); /*new String*/
2523 variable[16] = variable[15];
2524 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[16]) /*String::append*/;
2525 variable[17] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
2526 variable[18] = variable[17];
2527 variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/;
2528 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[18]) /*String::append*/;
2529 variable[19] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2530 variable[20] = variable[19];
2531 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[20]) /*String::append*/;
2532 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
2533 }
2534 }
2535 variable[6] = variable[0];
2536 ATTR_typing___AAttrFormExpr____prop(variable[6]) /*AAttrFormExpr::_prop*/ = variable[5] /*prop*/;
2537 variable[7] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[5] /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[5] /*prop*/, variable[3] /*type_recv*/) /*MMLocalProperty::signature_for*/;
2538 variable[7] = ((static_type___MMSignature___return_type_t)CALL(variable[7],COLOR_static_type___MMSignature___return_type))(variable[7]) /*MMSignature::return_type*/;
2539 variable[6] = variable[7];
2540 variable[7] = variable[0];
2541 variable[7] = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL(variable[7],COLOR_parser_nodes___AAttrFormExpr___n_expr))(variable[7]) /*AAttrFormExpr::n_expr*/;
2542 variable[7] = ((typing___PExpr___is_self_t)CALL(variable[7],COLOR_typing___PExpr___is_self))(variable[7]) /*PExpr::is_self*/;
2543 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[7])))) { /*if*/
2544 variable[7] = ((static_type___MMType___not_for_self_t)CALL( variable[6] /*at*/,COLOR_static_type___MMType___not_for_self))( variable[6] /*at*/) /*MMType::not_for_self*/;
2545 variable[6] = variable[7] /*at=*/;
2546 }
2547 variable[7] = variable[0];
2548 ATTR_typing___AAttrFormExpr____attr_type(variable[7]) /*AAttrFormExpr::_attr_type*/ = variable[6] /*at*/;
2549 return_label78: while(false);
2550 tracehead = trace.prev;
2551 return;
2552 }
2553 void typing___AAttrExpr___after_typing(val_t self, val_t param0) {
2554 struct trace_t trace = {NULL, NULL, 811, LOCATE_typing___AAttrExpr___after_typing};
2555 val_t variable[5];
2556 void **closurevariable = NULL;
2557 trace.prev = tracehead; tracehead = &trace;
2558 trace.file = LOCATE_typing;
2559 variable[0] = self;
2560 variable[1] = param0;
2561 variable[3] = variable[0];
2562 ((typing___AAttrFormExpr___do_typing_t)CALL(variable[3],COLOR_typing___AAttrFormExpr___do_typing))(variable[3], variable[1] /*v*/) /*AAttrFormExpr::do_typing*/;
2563 variable[3] = variable[0];
2564 variable[3] = ((typing___AAttrFormExpr___prop_t)CALL(variable[3],COLOR_typing___AAttrFormExpr___prop))(variable[3]) /*AAttrFormExpr::prop*/;
2565 variable[3] = TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], NIT_NULL /*null*/) /*Object::==*/)))));
2566 if (UNTAG_Bool(variable[3])) { /*if*/
2567 goto return_label79;
2568 }
2569 variable[3] = variable[0];
2570 variable[4] = variable[0];
2571 variable[4] = ((typing___AAttrFormExpr___attr_type_t)CALL(variable[4],COLOR_typing___AAttrFormExpr___attr_type))(variable[4]) /*AAttrFormExpr::attr_type*/;
2572 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
2573 return_label79: while(false);
2574 tracehead = trace.prev;
2575 return;
2576 }
2577 void typing___AAttrAssignExpr___after_typing(val_t self, val_t param0) {
2578 struct trace_t trace = {NULL, NULL, 822, LOCATE_typing___AAttrAssignExpr___after_typing};
2579 val_t variable[5];
2580 void **closurevariable = NULL;
2581 trace.prev = tracehead; tracehead = &trace;
2582 trace.file = LOCATE_typing;
2583 variable[0] = self;
2584 variable[1] = param0;
2585 variable[3] = variable[0];
2586 ((typing___AAttrFormExpr___do_typing_t)CALL(variable[3],COLOR_typing___AAttrFormExpr___do_typing))(variable[3], variable[1] /*v*/) /*AAttrFormExpr::do_typing*/;
2587 variable[3] = variable[0];
2588 variable[3] = ((typing___AAttrFormExpr___prop_t)CALL(variable[3],COLOR_typing___AAttrFormExpr___prop))(variable[3]) /*AAttrFormExpr::prop*/;
2589 variable[3] = TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], NIT_NULL /*null*/) /*Object::==*/)))));
2590 if (UNTAG_Bool(variable[3])) { /*if*/
2591 goto return_label80;
2592 }
2593 variable[3] = variable[0];
2594 variable[3] = ((parser_nodes___AAssignFormExpr___n_value_t)CALL(variable[3],COLOR_parser_nodes___AAssignFormExpr___n_value))(variable[3]) /*AAssignFormExpr::n_value*/;
2595 variable[4] = variable[0];
2596 variable[4] = ((typing___AAttrFormExpr___attr_type_t)CALL(variable[4],COLOR_typing___AAttrFormExpr___attr_type))(variable[4]) /*AAttrFormExpr::attr_type*/;
2597 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
2598 return_label80: while(false);
2599 tracehead = trace.prev;
2600 return;
2601 }
2602 void typing___AAttrReassignExpr___after_typing(val_t self, val_t param0) {
2603 struct trace_t trace = {NULL, NULL, 833, LOCATE_typing___AAttrReassignExpr___after_typing};
2604 val_t variable[5];
2605 void **closurevariable = NULL;
2606 trace.prev = tracehead; tracehead = &trace;
2607 trace.file = LOCATE_typing;
2608 variable[0] = self;
2609 variable[1] = param0;
2610 variable[3] = variable[0];
2611 ((typing___AAttrFormExpr___do_typing_t)CALL(variable[3],COLOR_typing___AAttrFormExpr___do_typing))(variable[3], variable[1] /*v*/) /*AAttrFormExpr::do_typing*/;
2612 variable[3] = variable[0];
2613 variable[3] = ((typing___AAttrFormExpr___prop_t)CALL(variable[3],COLOR_typing___AAttrFormExpr___prop))(variable[3]) /*AAttrFormExpr::prop*/;
2614 variable[3] = TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], NIT_NULL /*null*/) /*Object::==*/)))));
2615 if (UNTAG_Bool(variable[3])) { /*if*/
2616 goto return_label81;
2617 }
2618 variable[3] = variable[0];
2619 variable[4] = variable[0];
2620 variable[4] = ((typing___AAttrFormExpr___attr_type_t)CALL(variable[4],COLOR_typing___AAttrFormExpr___attr_type))(variable[4]) /*AAttrFormExpr::attr_type*/;
2621 ((typing___AReassignFormExpr___do_lvalue_typing_t)CALL(variable[3],COLOR_typing___AReassignFormExpr___do_lvalue_typing))(variable[3], variable[1] /*v*/, variable[4]) /*AReassignFormExpr::do_lvalue_typing*/;
2622 return_label81: while(false);
2623 tracehead = trace.prev;
2624 return;
2625 }
2626 val_t typing___AAbsSendExpr___prop_signature(val_t self) {
2627 struct trace_t trace = {NULL, NULL, 845, LOCATE_typing___AAbsSendExpr___prop_signature};
2628 val_t *variable = NULL;
2629 void **closurevariable = NULL;
2630 trace.prev = tracehead; tracehead = &trace;
2631 trace.file = LOCATE_typing;
2632 tracehead = trace.prev;
2633 return ATTR_typing___AAbsSendExpr____prop_signature( self) /*AAbsSendExpr::_prop_signature*/;
2634 }
2635 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) {
2636 struct trace_t trace = {NULL, NULL, 848, LOCATE_typing___AAbsSendExpr___do_typing};
2637 val_t variable[15];
2638 void **closurevariable = NULL;
2639 trace.prev = tracehead; tracehead = &trace;
2640 trace.file = LOCATE_typing;
2641 variable[0] = self;
2642 variable[1] = param0;
2643 variable[2] = param1;
2644 variable[3] = param2;
2645 variable[4] = param3;
2646 variable[5] = param4;
2647 variable[6] = param5;
2648 variable[7] = param6;
2649 variable[10] = variable[0];
2650 variable[10] = ((typing___AAbsSendExpr___get_property_t)CALL(variable[10],COLOR_typing___AAbsSendExpr___get_property))(variable[10], variable[1] /*v*/, variable[2] /*type_recv*/, variable[3] /*is_implicit_self*/, variable[5] /*name*/) /*AAbsSendExpr::get_property*/;
2651 variable[9] = variable[10];
2652 variable[10] = TAG_Bool(( variable[9] /*prop*/ == NIT_NULL /*null*/) || (( variable[9] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[9] /*prop*/, NIT_NULL /*null*/) /*Object::==*/)))));
2653 if (UNTAG_Bool(variable[10])) { /*if*/
2654 goto return_label82;
2655 }
2656 variable[11] = variable[0];
2657 variable[11] = ((typing___AAbsSendExpr___get_signature_t)CALL(variable[11],COLOR_typing___AAbsSendExpr___get_signature))(variable[11], variable[1] /*v*/, variable[2] /*type_recv*/, variable[9] /*prop*/, variable[4] /*recv_is_self*/) /*AAbsSendExpr::get_signature*/;
2658 variable[10] = variable[11];
2659 variable[11] = TAG_Bool(( variable[10] /*sig*/ == NIT_NULL /*null*/) || (( variable[10] /*sig*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*sig*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*sig*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*sig*/,COLOR_kernel___Object_____eqeq))( variable[10] /*sig*/, NIT_NULL /*null*/) /*Object::==*/)))));
2660 if (UNTAG_Bool(variable[11])) { /*if*/
2661 goto return_label82;
2662 }
2663 variable[12] = variable[0];
2664 variable[13] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[9] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[9] /*prop*/) /*MMLocalProperty::name*/;
2665 variable[12] = ((typing___AAbsSendExpr___process_signature_t)CALL(variable[12],COLOR_typing___AAbsSendExpr___process_signature))(variable[12], variable[1] /*v*/, variable[10] /*sig*/, variable[13], variable[6] /*raw_args*/) /*AAbsSendExpr::process_signature*/;
2666 variable[11] = variable[12];
2667 variable[12] = TAG_Bool(( variable[11] /*args*/ == NIT_NULL /*null*/) || (( variable[11] /*args*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable[11] /*args*/,COLOR_kernel___Object_____eqeq))( variable[11] /*args*/, NIT_NULL /*null*/) /*AbstractArray::==*/)));
2668 if (UNTAG_Bool(variable[12])) { /*if*/
2669 goto return_label82;
2670 }
2671 variable[13] = variable[0];
2672 variable[14] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[9] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[9] /*prop*/) /*MMLocalProperty::name*/;
2673 variable[13] = ((typing___AAbsSendExpr___process_closures_t)CALL(variable[13],COLOR_typing___AAbsSendExpr___process_closures))(variable[13], variable[1] /*v*/, variable[10] /*sig*/, variable[14], variable[7] /*closure_defs*/) /*AAbsSendExpr::process_closures*/;
2674 variable[12] = variable[13];
2675 variable[13] = variable[0];
2676 ATTR_typing___AAbsSendExpr____prop(variable[13]) /*AAbsSendExpr::_prop*/ = variable[9] /*prop*/;
2677 variable[13] = variable[0];
2678 ATTR_typing___AAbsSendExpr____prop_signature(variable[13]) /*AAbsSendExpr::_prop_signature*/ = variable[10] /*sig*/;
2679 variable[13] = variable[0];
2680 ATTR_typing___AAbsSendExpr____arguments(variable[13]) /*AAbsSendExpr::_arguments*/ = variable[11] /*args*/;
2681 variable[13] = variable[0];
2682 ATTR_typing___AAbsSendExpr____return_type(variable[13]) /*AAbsSendExpr::_return_type*/ = variable[12] /*rtype*/;
2683 return_label82: while(false);
2684 tracehead = trace.prev;
2685 return;
2686 }
2687 val_t typing___AAbsSendExpr___get_property(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) {
2688 struct trace_t trace = {NULL, NULL, 864, LOCATE_typing___AAbsSendExpr___get_property};
2689 val_t variable[19];
2690 void **closurevariable = NULL;
2691 trace.prev = tracehead; tracehead = &trace;
2692 trace.file = LOCATE_typing;
2693 variable[0] = self;
2694 variable[1] = param0;
2695 variable[2] = param1;
2696 variable[3] = param2;
2697 variable[4] = param3;
2698 variable[6] = TAG_Bool(( variable[2] /*type_recv*/ == NIT_NULL /*null*/) || (( variable[2] /*type_recv*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*type_recv*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*type_recv*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*type_recv*/,COLOR_kernel___Object_____eqeq))( variable[2] /*type_recv*/, NIT_NULL /*null*/) /*Object::==*/)))));
2699 if (UNTAG_Bool(variable[6])) { /*if*/
2700 variable[5] = NIT_NULL /*null*/;
2701 goto return_label83;
2702 }
2703 variable[7] = ((static_type___MMType___local_class_t)CALL( variable[2] /*type_recv*/,COLOR_static_type___MMType___local_class))( variable[2] /*type_recv*/) /*MMType::local_class*/;
2704 variable[7] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[7], variable[4] /*name*/) /*MMLocalClass::select_method*/;
2705 variable[6] = variable[7];
2706 variable[7] = TAG_Bool(( variable[6] /*prop*/ == NIT_NULL /*null*/) || (( variable[6] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[6] /*prop*/, NIT_NULL /*null*/) /*Object::==*/)))));
2707 variable[8] = variable[7];
2708 if (UNTAG_Bool(variable[8])) { /* and */
2709 variable[8] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
2710 variable[8] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[8]) /*MMLocalProperty::global*/;
2711 variable[8] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[8],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[8]) /*MMGlobalProperty::is_init*/;
2712 }
2713 variable[7] = variable[8];
2714 if (UNTAG_Bool(variable[7])) { /*if*/
2715 variable[8] = ((static_type___MMType___local_class_t)CALL( variable[2] /*type_recv*/,COLOR_static_type___MMType___local_class))( variable[2] /*type_recv*/) /*MMType::local_class*/;
2716 variable[8] = ((abstractmetamodel___MMLocalClass___super_methods_named_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___super_methods_named))(variable[8], variable[4] /*name*/) /*MMLocalClass::super_methods_named*/;
2717 variable[7] = variable[8];
2718 variable[8] = ((array___AbstractArray___length_t)CALL( variable[7] /*props*/,COLOR_abstract_collection___Collection___length))( variable[7] /*props*/) /*AbstractArray::length*/;
2719 variable[8] = TAG_Bool(UNTAG_Int(variable[8])>UNTAG_Int( TAG_Int(1)));
2720 if (UNTAG_Bool(variable[8])) { /*if*/
2721 variable[8] = variable[0];
2722 variable[9] = NEW_String_string___String___init(); /*new String*/
2723 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Ambigous method name '"), TAG_Int(29)); /*new String*/
2724 variable[11] = variable[10];
2725 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
2726 variable[12] = variable[4] /*name*/;
2727 variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
2728 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
2729 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("' for "), TAG_Int(6)); /*new String*/
2730 variable[14] = variable[13];
2731 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
2732 variable[15] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
2733 variable[15] = ((string___Collection___join_t)CALL( variable[7] /*props*/,COLOR_string___Collection___join))( variable[7] /*props*/, variable[15]) /*Collection::join*/;
2734 variable[16] = variable[15];
2735 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
2736 variable[17] = NEW_String_string___String___with_native(BOX_NativeString(". Use explicit designation."), TAG_Int(27)); /*new String*/
2737 variable[18] = variable[17];
2738 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
2739 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
2740 variable[5] = NIT_NULL /*null*/;
2741 goto return_label83;
2742 } else { /*if*/
2743 variable[8] = ((array___AbstractArray___length_t)CALL( variable[7] /*props*/,COLOR_abstract_collection___Collection___length))( variable[7] /*props*/) /*AbstractArray::length*/;
2744 variable[8] = TAG_Bool((variable[8])==( TAG_Int(1)));
2745 if (UNTAG_Bool(variable[8])) { /*if*/
2746 variable[9] = ((static_type___MMType___local_class_t)CALL( variable[2] /*type_recv*/,COLOR_static_type___MMType___local_class))( variable[2] /*type_recv*/) /*MMType::local_class*/;
2747 variable[10] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[7] /*props*/,COLOR_abstract_collection___Collection___first))( variable[7] /*props*/) /*IndexedCollection::first*/;
2748 variable[10] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[10],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[10]) /*MMLocalProperty::global*/;
2749 variable[9] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[9], variable[10]) /*MMLocalClass::[]*/;
2750 variable[8] = variable[9];
2751 variable[9] = TAG_Bool(( variable[8] /*p*/==NIT_NULL) || VAL_ISA( variable[8] /*p*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
2752 if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___AAbsSendExpr___get_property, LOCATE_typing, 875); nit_exit(1);}
2753 variable[6] = variable[8] /*p*/ /*prop=*/;
2754 }
2755 }
2756 }
2757 variable[7] = TAG_Bool(( variable[6] /*prop*/ == NIT_NULL /*null*/) || (( variable[6] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[6] /*prop*/, NIT_NULL /*null*/) /*Object::==*/)))));
2758 if (UNTAG_Bool(variable[7])) { /*if*/
2759 if (UNTAG_Bool( variable[3] /*is_implicit_self*/)) { /*if*/
2760 variable[7] = variable[0];
2761 variable[8] = NEW_String_string___String___init(); /*new String*/
2762 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Method or variable '"), TAG_Int(27)); /*new String*/
2763 variable[10] = variable[9];
2764 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
2765 variable[11] = variable[4] /*name*/;
2766 variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
2767 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
2768 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("' unknown in "), TAG_Int(13)); /*new String*/
2769 variable[13] = variable[12];
2770 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
2771 variable[14] = variable[2] /*type_recv*/;
2772 variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
2773 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
2774 variable[15] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
2775 variable[16] = variable[15];
2776 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
2777 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
2778 } else { /*if*/
2779 variable[7] = variable[0];
2780 variable[8] = NEW_String_string___String___init(); /*new String*/
2781 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Method '"), TAG_Int(15)); /*new String*/
2782 variable[10] = variable[9];
2783 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
2784 variable[11] = variable[4] /*name*/;
2785 variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
2786 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
2787 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("' doesn't exists in "), TAG_Int(20)); /*new String*/
2788 variable[13] = variable[12];
2789 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
2790 variable[14] = variable[2] /*type_recv*/;
2791 variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
2792 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
2793 variable[15] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
2794 variable[16] = variable[15];
2795 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
2796 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
2797 }
2798 variable[5] = NIT_NULL /*null*/;
2799 goto return_label83;
2800 }
2801 variable[5] = variable[6] /*prop*/;
2802 goto return_label83;
2803 return_label83: while(false);
2804 tracehead = trace.prev;
2805 return variable[5];
2806 }
2807 val_t typing___AAbsSendExpr___get_signature(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) {
2808 struct trace_t trace = {NULL, NULL, 891, LOCATE_typing___AAbsSendExpr___get_signature};
2809 val_t variable[9];
2810 void **closurevariable = NULL;
2811 trace.prev = tracehead; tracehead = &trace;
2812 trace.file = LOCATE_typing;
2813 variable[0] = self;
2814 variable[1] = param0;
2815 variable[2] = param1;
2816 variable[3] = param2;
2817 variable[4] = param3;
2818 variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[3] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[3] /*prop*/) /*MMLocalProperty::global*/;
2819 variable[7] = variable[0];
2820 variable[8] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
2821 ((syntax_base___MMGlobalProperty___check_visibility_t)CALL(variable[6],COLOR_syntax_base___MMGlobalProperty___check_visibility))(variable[6], variable[1] /*v*/, variable[7], variable[8], variable[4] /*recv_is_self*/) /*MMGlobalProperty::check_visibility*/;
2822 variable[7] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[3] /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[3] /*prop*/, variable[2] /*type_recv*/) /*MMLocalProperty::signature_for*/;
2823 variable[6] = variable[7];
2824 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable[4] /*recv_is_self*/)))) { /*if*/
2825 variable[7] = ((vararg___MMSignature___not_for_self_t)CALL( variable[6] /*psig*/,COLOR_static_type___MMSignature___not_for_self))( variable[6] /*psig*/) /*MMSignature::not_for_self*/;
2826 variable[6] = variable[7] /*psig=*/;
2827 }
2828 variable[5] = variable[6] /*psig*/;
2829 goto return_label84;
2830 return_label84: while(false);
2831 tracehead = trace.prev;
2832 return variable[5];
2833 }
2834 val_t typing___AAbsSendExpr___process_signature(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) {
2835 struct trace_t trace = {NULL, NULL, 900, LOCATE_typing___AAbsSendExpr___process_signature};
2836 val_t variable[25];
2837 void **closurevariable = NULL;
2838 trace.prev = tracehead; tracehead = &trace;
2839 trace.file = LOCATE_typing;
2840 variable[0] = self;
2841 variable[1] = param0;
2842 variable[2] = param1;
2843 variable[3] = param2;
2844 variable[4] = param3;
2845 variable[7] = ((vararg___MMSignature___vararg_rank_t)CALL( variable[2] /*psig*/,COLOR_vararg___MMSignature___vararg_rank))( variable[2] /*psig*/) /*MMSignature::vararg_rank*/;
2846 variable[6] = variable[7];
2847 variable[8] = ((static_type___MMSignature___arity_t)CALL( variable[2] /*psig*/,COLOR_static_type___MMSignature___arity))( variable[2] /*psig*/) /*MMSignature::arity*/;
2848 variable[7] = variable[8];
2849 /*variable[8] is variable raw_arity*/
2850 variable[9] = TAG_Bool(( variable[4] /*raw_args*/ == NIT_NULL /*null*/) || (( variable[4] /*raw_args*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable[4] /*raw_args*/,COLOR_kernel___Object_____eqeq))( variable[4] /*raw_args*/, NIT_NULL /*null*/) /*AbstractArray::==*/)));
2851 if (UNTAG_Bool(variable[9])) { /*if*/
2852 variable[8] = TAG_Int(0) /*raw_arity=*/;
2853 } else { /*if*/
2854 variable[9] = ((array___AbstractArray___length_t)CALL( variable[4] /*raw_args*/,COLOR_abstract_collection___Collection___length))( variable[4] /*raw_args*/) /*AbstractArray::length*/;
2855 variable[8] = variable[9] /*raw_arity=*/;
2856 }
2857 variable[9] = TAG_Bool(UNTAG_Int( variable[7] /*par_arity*/)>UNTAG_Int( variable[8] /*raw_arity*/));
2858 variable[10] = variable[9];
2859 if (!UNTAG_Bool(variable[10])) { /* or */
2860 variable[10] = TAG_Bool(( variable[7] /*par_arity*/)!=( variable[8] /*raw_arity*/));
2861 variable[11] = variable[10];
2862 if (UNTAG_Bool(variable[11])) { /* and */
2863 variable[11] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
2864 variable[11] = TAG_Bool(( variable[6] /*par_vararg*/)==(variable[11]));
2865 }
2866 variable[10] = variable[11];
2867 }
2868 variable[9] = variable[10];
2869 if (UNTAG_Bool(variable[9])) { /*if*/
2870 variable[9] = variable[0];
2871 variable[10] = NEW_String_string___String___init(); /*new String*/
2872 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: '"), TAG_Int(8)); /*new String*/
2873 variable[12] = variable[11];
2874 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
2875 variable[13] = variable[3] /*name*/;
2876 variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
2877 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[13]) /*String::append*/;
2878 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("' arity missmatch."), TAG_Int(18)); /*new String*/
2879 variable[15] = variable[14];
2880 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[15]) /*String::append*/;
2881 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[9], variable[10]) /*AbsSyntaxVisitor::error*/;
2882 variable[5] = NIT_NULL /*null*/;
2883 goto return_label85;
2884 }
2885 variable[9] = TAG_Int(0);
2886 variable[11] = NEW_Array_array___Array___init(); /*new Array[PExpr]*/
2887 variable[10] = variable[11];
2888 variable[11] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[7] /*par_arity*/); /*new Range[Int]*/
2889 variable[11] = ((range___Range___iterator_t)CALL(variable[11],COLOR_abstract_collection___Collection___iterator))(variable[11]) /*Range::iterator*/;
2890 while (true) { /*for*/
2891 variable[12] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*Iterator::is_ok*/;
2892 if (!UNTAG_Bool(variable[12])) break; /*for*/
2893 variable[12] = ((abstract_collection___Iterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*Iterator::item*/;
2894 variable[13] = variable[12];
2895 /*variable[14] is variable a*/
2896 variable[16] = ((static_type___MMSignature_____bra_t)CALL( variable[2] /*psig*/,COLOR_static_type___MMSignature_____bra))( variable[2] /*psig*/, variable[13] /*par_idx*/) /*MMSignature::[]*/;
2897 variable[15] = variable[16];
2898 variable[16] = TAG_Bool(( variable[13] /*par_idx*/)==( variable[6] /*par_vararg*/));
2899 if (UNTAG_Bool(variable[16])) { /*if*/
2900 variable[17] = NEW_Array_array___Array___init(); /*new Array[PExpr]*/
2901 variable[16] = variable[17];
2902 variable[17] = TAG_Int(UNTAG_Int( variable[8] /*raw_arity*/)-UNTAG_Int( variable[7] /*par_arity*/));
2903 variable[18] = NEW_Range_range___Range___init( TAG_Int(0), variable[17]); /*new Range[Int]*/
2904 variable[17] = variable[18];
2905 variable[17] = ((range___Range___iterator_t)CALL(variable[17],COLOR_abstract_collection___Collection___iterator))(variable[17]) /*Range::iterator*/;
2906 while (true) { /*for*/
2907 variable[18] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[17],COLOR_abstract_collection___Iterator___is_ok))(variable[17]) /*Iterator::is_ok*/;
2908 if (!UNTAG_Bool(variable[18])) break; /*for*/
2909 variable[18] = ((abstract_collection___Iterator___item_t)CALL(variable[17],COLOR_abstract_collection___Iterator___item))(variable[17]) /*Iterator::item*/;
2910 variable[19] = variable[18];
2911 variable[20] = variable[4] /*raw_args*/;
2912 variable[21] = variable[9] /*arg_idx*/;
2913 variable[23] = TAG_Bool(UNTAG_Int( variable[21] /*index*/)>=UNTAG_Int( TAG_Int(0)));
2914 variable[24] = variable[23];
2915 if (UNTAG_Bool(variable[24])) { /* and */
2916 variable[24] = variable[20];
2917 variable[24] = ATTR_array___AbstractArray____length(variable[24]) /*AbstractArray::_length*/;
2918 variable[24] = TAG_Bool(UNTAG_Int( variable[21] /*index*/)<UNTAG_Int(variable[24]));
2919 }
2920 variable[23] = variable[24];
2921 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);}
2922 variable[23] = variable[20];
2923 variable[23] = ATTR_array___Array____items(variable[23]) /*Array::_items*/;
2924 variable[23] = UNBOX_NativeArray(variable[23])[UNTAG_Int( variable[21] /*index*/)];
2925 variable[22] = variable[23];
2926 goto return_label88;
2927 return_label88: while(false);
2928 variable[20] = variable[22];
2929 variable[14] = variable[20] /*a=*/;
2930 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[14] /*a*/, variable[15] /*par_type*/) /*AbsSyntaxVisitor::check_conform_expr*/;
2931 ((array___AbstractArray___add_t)CALL( variable[16] /*star*/,COLOR_abstract_collection___SimpleCollection___add))( variable[16] /*star*/, variable[14] /*a*/) /*AbstractArray::add*/;
2932 variable[20] = TAG_Int(UNTAG_Int( variable[9] /*arg_idx*/)+UNTAG_Int( TAG_Int(1)));
2933 variable[9] = variable[20] /*arg_idx=*/;
2934 continue_87: while(0);
2935 ((abstract_collection___Iterator___next_t)CALL(variable[17],COLOR_abstract_collection___Iterator___next))(variable[17]) /*Iterator::next*/;
2936 }
2937 break_87: while(0);
2938 variable[18] = NEW_AArrayExpr_parser_prod___AArrayExpr___init_aarrayexpr( variable[16] /*star*/); /*new AArrayExpr*/
2939 variable[17] = variable[18];
2940 variable[18] = ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_array))( variable[1] /*v*/, variable[15] /*par_type*/) /*AbsSyntaxVisitor::type_array*/;
2941 ((typing___AArrayExpr___stype__eq_t)CALL( variable[17] /*aa*/,COLOR_typing___AArrayExpr___stype__eq))( variable[17] /*aa*/, variable[18]) /*AArrayExpr::stype=*/;
2942 variable[14] = variable[17] /*aa*/ /*a=*/;
2943 } else { /*if*/
2944 variable[16] = variable[4] /*raw_args*/;
2945 variable[17] = variable[9] /*arg_idx*/;
2946 variable[19] = TAG_Bool(UNTAG_Int( variable[17] /*index*/)>=UNTAG_Int( TAG_Int(0)));
2947 variable[20] = variable[19];
2948 if (UNTAG_Bool(variable[20])) { /* and */
2949 variable[20] = variable[16];
2950 variable[20] = ATTR_array___AbstractArray____length(variable[20]) /*AbstractArray::_length*/;
2951 variable[20] = TAG_Bool(UNTAG_Int( variable[17] /*index*/)<UNTAG_Int(variable[20]));
2952 }
2953 variable[19] = variable[20];
2954 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);}
2955 variable[19] = variable[16];
2956 variable[19] = ATTR_array___Array____items(variable[19]) /*Array::_items*/;
2957 variable[19] = UNBOX_NativeArray(variable[19])[UNTAG_Int( variable[17] /*index*/)];
2958 variable[18] = variable[19];
2959 goto return_label89;
2960 return_label89: while(false);
2961 variable[16] = variable[18];
2962 variable[14] = variable[16] /*a=*/;
2963 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[14] /*a*/, variable[15] /*par_type*/) /*AbsSyntaxVisitor::check_conform_expr*/;
2964 variable[16] = TAG_Int(UNTAG_Int( variable[9] /*arg_idx*/)+UNTAG_Int( TAG_Int(1)));
2965 variable[9] = variable[16] /*arg_idx=*/;
2966 }
2967 ((array___AbstractArray___add_t)CALL( variable[10] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*args*/, variable[14] /*a*/) /*AbstractArray::add*/;
2968 continue_86: while(0);
2969 ((abstract_collection___Iterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*Iterator::next*/;
2970 }
2971 break_86: while(0);
2972 variable[5] = variable[10] /*args*/;
2973 goto return_label85;
2974 return_label85: while(false);
2975 tracehead = trace.prev;
2976 return variable[5];
2977 }
2978 val_t typing___AAbsSendExpr___process_closures(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) {
2979 struct trace_t trace = {NULL, NULL, 937, LOCATE_typing___AAbsSendExpr___process_closures};
2980 val_t variable[23];
2981 void **closurevariable = NULL;
2982 trace.prev = tracehead; tracehead = &trace;
2983 trace.file = LOCATE_typing;
2984 variable[0] = self;
2985 variable[1] = param0;
2986 variable[2] = param1;
2987 variable[3] = param2;
2988 variable[4] = param3;
2989 variable[7] = ((static_type___MMSignature___return_type_t)CALL( variable[2] /*psig*/,COLOR_static_type___MMSignature___return_type))( variable[2] /*psig*/) /*MMSignature::return_type*/;
2990 variable[6] = variable[7];
2991 variable[8] = ((static_type___MMSignature___closures_t)CALL( variable[2] /*psig*/,COLOR_static_type___MMSignature___closures))( variable[2] /*psig*/) /*MMSignature::closures*/;
2992 variable[7] = variable[8];
2993 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*cd*/ == NIT_NULL /*null*/) || (( variable[4] /*cd*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*cd*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*cd*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*cd*/,COLOR_kernel___Object_____eqeq))( variable[4] /*cd*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2994 if (UNTAG_Bool(variable[8])) { /*if*/
2995 variable[8] = ((array___AbstractArray___length_t)CALL( variable[7] /*cs*/,COLOR_abstract_collection___Collection___length))( variable[7] /*cs*/) /*AbstractArray::length*/;
2996 variable[8] = TAG_Bool((variable[8])==( TAG_Int(0)));
2997 if (UNTAG_Bool(variable[8])) { /*if*/
2998 variable[8] = variable[0];
2999 variable[9] = NEW_String_string___String___init(); /*new String*/
3000 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
3001 variable[11] = variable[10];
3002 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
3003 variable[12] = variable[3] /*name*/;
3004 variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
3005 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
3006 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" does not require blocs."), TAG_Int(24)); /*new String*/
3007 variable[14] = variable[13];
3008 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
3009 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
3010 } else { /*if*/
3011 variable[8] = ((array___AbstractArray___length_t)CALL( variable[7] /*cs*/,COLOR_abstract_collection___Collection___length))( variable[7] /*cs*/) /*AbstractArray::length*/;
3012 variable[9] = ((array___AbstractArray___length_t)CALL( variable[4] /*cd*/,COLOR_abstract_collection___Collection___length))( variable[4] /*cd*/) /*AbstractArray::length*/;
3013 variable[8] = TAG_Bool((variable[8])!=(variable[9]));
3014 if (UNTAG_Bool(variable[8])) { /*if*/
3015 variable[8] = variable[0];
3016 variable[9] = NEW_String_string___String___init(); /*new String*/
3017 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
3018 variable[11] = variable[10];
3019 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
3020 variable[12] = variable[3] /*name*/;
3021 variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
3022 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
3023 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" requires "), TAG_Int(10)); /*new String*/
3024 variable[14] = variable[13];
3025 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
3026 variable[15] = ((array___AbstractArray___length_t)CALL( variable[7] /*cs*/,COLOR_abstract_collection___Collection___length))( variable[7] /*cs*/) /*AbstractArray::length*/;
3027 variable[16] = variable[15];
3028 variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
3029 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
3030 variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" blocs, "), TAG_Int(8)); /*new String*/
3031 variable[18] = variable[17];
3032 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
3033 variable[19] = ((array___AbstractArray___length_t)CALL( variable[4] /*cd*/,COLOR_abstract_collection___Collection___length))( variable[4] /*cd*/) /*AbstractArray::length*/;
3034 variable[20] = variable[19];
3035 variable[20] = ((string___String___to_s_t)CALL(variable[20],COLOR_string___Object___to_s))(variable[20]) /*String::to_s*/;
3036 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[20]) /*String::append*/;
3037 variable[21] = NEW_String_string___String___with_native(BOX_NativeString(" found."), TAG_Int(7)); /*new String*/
3038 variable[22] = variable[21];
3039 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[22]) /*String::append*/;
3040 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
3041 } else { /*if*/
3042 variable[9] = ((typing___TypingVisitor___closure_break_stype_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure_break_stype))( variable[1] /*v*/) /*TypingVisitor::closure_break_stype*/;
3043 variable[8] = variable[9];
3044 variable[10] = ((typing___TypingVisitor___break_list_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___break_list))( variable[1] /*v*/) /*TypingVisitor::break_list*/;
3045 variable[9] = variable[10];
3046 ((typing___TypingVisitor___closure_break_stype__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure_break_stype__eq))( variable[1] /*v*/, variable[6] /*t*/) /*TypingVisitor::closure_break_stype=*/;
3047 variable[10] = NEW_Array_array___Array___init(); /*new Array[ABreakExpr]*/
3048 ((typing___TypingVisitor___break_list__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___break_list__eq))( variable[1] /*v*/, variable[10]) /*TypingVisitor::break_list=*/;
3049 variable[10] = ((array___AbstractArray___length_t)CALL( variable[7] /*cs*/,COLOR_abstract_collection___Collection___length))( variable[7] /*cs*/) /*AbstractArray::length*/;
3050 variable[11] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[10]); /*new Range[Int]*/
3051 variable[10] = variable[11];
3052 variable[10] = ((range___Range___iterator_t)CALL(variable[10],COLOR_abstract_collection___Collection___iterator))(variable[10]) /*Range::iterator*/;
3053 while (true) { /*for*/
3054 variable[11] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*Iterator::is_ok*/;
3055 if (!UNTAG_Bool(variable[11])) break; /*for*/
3056 variable[11] = ((abstract_collection___Iterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*Iterator::item*/;
3057 variable[12] = variable[11];
3058 variable[13] = variable[4] /*cd*/;
3059 variable[14] = variable[12] /*i*/;
3060 variable[16] = TAG_Bool(UNTAG_Int( variable[14] /*index*/)>=UNTAG_Int( TAG_Int(0)));
3061 variable[17] = variable[16];
3062 if (UNTAG_Bool(variable[17])) { /* and */
3063 variable[17] = variable[13];
3064 variable[17] = ATTR_array___AbstractArray____length(variable[17]) /*AbstractArray::_length*/;
3065 variable[17] = TAG_Bool(UNTAG_Int( variable[14] /*index*/)<UNTAG_Int(variable[17]));
3066 }
3067 variable[16] = variable[17];
3068 if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_typing, 229); nit_exit(1);}
3069 variable[16] = variable[13];
3070 variable[16] = ATTR_array___Array____items(variable[16]) /*Array::_items*/;
3071 variable[16] = UNBOX_NativeArray(variable[16])[UNTAG_Int( variable[14] /*index*/)];
3072 variable[15] = variable[16];
3073 goto return_label92;
3074 return_label92: while(false);
3075 variable[13] = variable[15];
3076 variable[14] = variable[7] /*cs*/;
3077 variable[15] = variable[12] /*i*/;
3078 variable[17] = TAG_Bool(UNTAG_Int( variable[15] /*index*/)>=UNTAG_Int( TAG_Int(0)));
3079 variable[18] = variable[17];
3080 if (UNTAG_Bool(variable[18])) { /* and */
3081 variable[18] = variable[14];
3082 variable[18] = ATTR_array___AbstractArray____length(variable[18]) /*AbstractArray::_length*/;
3083 variable[18] = TAG_Bool(UNTAG_Int( variable[15] /*index*/)<UNTAG_Int(variable[18]));
3084 }
3085 variable[17] = variable[18];
3086 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);}
3087 variable[17] = variable[14];
3088 variable[17] = ATTR_array___Array____items(variable[17]) /*Array::_items*/;
3089 variable[17] = UNBOX_NativeArray(variable[17])[UNTAG_Int( variable[15] /*index*/)];
3090 variable[16] = variable[17];
3091 goto return_label93;
3092 return_label93: while(false);
3093 variable[14] = variable[16];
3094 ((typing___PClosureDef___accept_typing2_t)CALL(variable[13],COLOR_typing___PClosureDef___accept_typing2))(variable[13], variable[1] /*v*/, variable[14]) /*PClosureDef::accept_typing2*/;
3095 continue_91: while(0);
3096 ((abstract_collection___Iterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*Iterator::next*/;
3097 }
3098 break_91: while(0);
3099 variable[10] = ((typing___TypingVisitor___break_list_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___break_list))( variable[1] /*v*/) /*TypingVisitor::break_list*/;
3100 variable[10] = ((array___AbstractArray___iterator_t)CALL(variable[10],COLOR_abstract_collection___Collection___iterator))(variable[10]) /*AbstractArray::iterator*/;
3101 while (true) { /*for*/
3102 variable[11] = ((array___ArrayIterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*ArrayIterator::is_ok*/;
3103 if (!UNTAG_Bool(variable[11])) break; /*for*/
3104 variable[11] = ((array___ArrayIterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*ArrayIterator::item*/;
3105 variable[12] = variable[11];
3106 variable[14] = ((typing___PExpr___stype_t)CALL( variable[12] /*n*/,COLOR_syntax_base___PExpr___stype))( variable[12] /*n*/) /*PExpr::stype*/;
3107 variable[13] = variable[14];
3108 variable[14] = TAG_Bool(( variable[6] /*t*/ == NIT_NULL /*null*/) || (( variable[6] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*t*/,COLOR_kernel___Object_____eqeq))( variable[6] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))));
3109 variable[15] = variable[14];
3110 if (!UNTAG_Bool(variable[15])) { /* or */
3111 variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*t*/ == NIT_NULL /*null*/) || (( variable[6] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*t*/,COLOR_kernel___Object_____eqeq))( variable[6] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3112 variable[16] = variable[15];
3113 if (UNTAG_Bool(variable[16])) { /* and */
3114 variable[16] = ((static_type___MMType_____l_t)CALL( variable[6] /*t*/,COLOR_static_type___MMType_____l))( variable[6] /*t*/, variable[13] /*ntype*/) /*MMType::<*/;
3115 }
3116 variable[15] = variable[16];
3117 }
3118 variable[14] = variable[15];
3119 if (UNTAG_Bool(variable[14])) { /*if*/
3120 variable[6] = variable[13] /*ntype*/ /*t=*/;
3121 }
3122 continue_94: while(0);
3123 ((array___ArrayIterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*ArrayIterator::next*/;
3124 }
3125 break_94: while(0);
3126 variable[10] = ((typing___TypingVisitor___break_list_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___break_list))( variable[1] /*v*/) /*TypingVisitor::break_list*/;
3127 variable[10] = ((array___AbstractArray___iterator_t)CALL(variable[10],COLOR_abstract_collection___Collection___iterator))(variable[10]) /*AbstractArray::iterator*/;
3128 while (true) { /*for*/
3129 variable[11] = ((array___ArrayIterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*ArrayIterator::is_ok*/;
3130 if (!UNTAG_Bool(variable[11])) break; /*for*/
3131 variable[11] = ((array___ArrayIterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*ArrayIterator::item*/;
3132 variable[12] = variable[11];
3133 ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[12] /*n*/, variable[6] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
3134 continue_95: while(0);
3135 ((array___ArrayIterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*ArrayIterator::next*/;
3136 }
3137 break_95: while(0);
3138 ((typing___TypingVisitor___closure_break_stype__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure_break_stype__eq))( variable[1] /*v*/, variable[8] /*old_bbst*/) /*TypingVisitor::closure_break_stype=*/;
3139 ((typing___TypingVisitor___break_list__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___break_list__eq))( variable[1] /*v*/, variable[9] /*old_bl*/) /*TypingVisitor::break_list=*/;
3140 }
3141 }
3142 } else { /*if*/
3143 variable[8] = ((array___AbstractArray___length_t)CALL( variable[7] /*cs*/,COLOR_abstract_collection___Collection___length))( variable[7] /*cs*/) /*AbstractArray::length*/;
3144 variable[8] = TAG_Bool((variable[8])!=( TAG_Int(0)));
3145 if (UNTAG_Bool(variable[8])) { /*if*/
3146 variable[8] = variable[0];
3147 variable[9] = NEW_String_string___String___init(); /*new String*/
3148 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
3149 variable[11] = variable[10];
3150 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
3151 variable[12] = variable[3] /*name*/;
3152 variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
3153 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
3154 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" requires "), TAG_Int(10)); /*new String*/
3155 variable[14] = variable[13];
3156 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
3157 variable[15] = ((array___AbstractArray___length_t)CALL( variable[7] /*cs*/,COLOR_abstract_collection___Collection___length))( variable[7] /*cs*/) /*AbstractArray::length*/;
3158 variable[16] = variable[15];
3159 variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
3160 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
3161 variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" blocs."), TAG_Int(7)); /*new String*/
3162 variable[18] = variable[17];
3163 ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
3164 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
3165 }
3166 }
3167 variable[5] = variable[6] /*t*/;
3168 goto return_label90;
3169 return_label90: while(false);
3170 tracehead = trace.prev;
3171 return variable[5];
3172 }
3173 val_t typing___AAbsSendExpr___prop(val_t self) {
3174 struct trace_t trace = {NULL, NULL, 974, LOCATE_typing___AAbsSendExpr___prop};
3175 val_t *variable = NULL;
3176 void **closurevariable = NULL;
3177 trace.prev = tracehead; tracehead = &trace;
3178 trace.file = LOCATE_typing;
3179 tracehead = trace.prev;
3180 return ATTR_typing___AAbsSendExpr____prop( self) /*AAbsSendExpr::_prop*/;
3181 }
3182 val_t typing___AAbsSendExpr___arguments(val_t self) {
3183 struct trace_t trace = {NULL, NULL, 977, LOCATE_typing___AAbsSendExpr___arguments};
3184 val_t *variable = NULL;
3185 void **closurevariable = NULL;
3186 trace.prev = tracehead; tracehead = &trace;
3187 trace.file = LOCATE_typing;
3188 tracehead = trace.prev;
3189 return ATTR_typing___AAbsSendExpr____arguments( self) /*AAbsSendExpr::_arguments*/;
3190 }
3191 val_t typing___AAbsSendExpr___return_type(val_t self) {
3192 struct trace_t trace = {NULL, NULL, 980, LOCATE_typing___AAbsSendExpr___return_type};
3193 val_t *variable = NULL;
3194 void **closurevariable = NULL;
3195 trace.prev = tracehead; tracehead = &trace;
3196 trace.file = LOCATE_typing;
3197 tracehead = trace.prev;
3198 return ATTR_typing___AAbsSendExpr____return_type( self) /*AAbsSendExpr::_return_type*/;
3199 }
3200 void typing___ASuperInitCall___register_super_init_call(val_t self, val_t param0, val_t param1) {
3201 struct trace_t trace = {NULL, NULL, 988, LOCATE_typing___ASuperInitCall___register_super_init_call};
3202 val_t variable[21];
3203 void **closurevariable = NULL;
3204 trace.prev = tracehead; tracehead = &trace;
3205 trace.file = LOCATE_typing;
3206 variable[0] = self;
3207 variable[1] = param0;
3208 variable[2] = param1;
3209 variable[4] = variable[0];
3210 variable[4] = ((parser_prod___PNode___parent_t)CALL(variable[4],COLOR_parser_prod___PNode___parent))(variable[4]) /*PNode::parent*/;
3211 variable[5] = ((typing___TypingVisitor___top_block_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___top_block))( variable[1] /*v*/) /*TypingVisitor::top_block*/;
3212 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == variable[5]) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4],variable[5])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], variable[5]) /*Object::==*/)))))));
3213 variable[5] = variable[4];
3214 if (UNTAG_Bool(variable[5])) { /* and */
3215 variable[5] = variable[0];
3216 variable[6] = ((typing___TypingVisitor___top_block_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___top_block))( variable[1] /*v*/) /*TypingVisitor::top_block*/;
3217 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] == variable[6]) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5],variable[6])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5], variable[6]) /*Object::==*/)))))));
3218 }
3219 variable[4] = variable[5];
3220 if (UNTAG_Bool(variable[4])) { /*if*/
3221 variable[4] = variable[0];
3222 variable[5] = NEW_String_string___String___init(); /*new String*/
3223 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: Constructor invocation "), TAG_Int(30)); /*new String*/
3224 variable[7] = variable[6];
3225 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
3226 variable[8] = variable[2] /*property*/;
3227 variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
3228 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
3229 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" must not be in nested block."), TAG_Int(29)); /*new String*/
3230 variable[10] = variable[9];
3231 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
3232 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
3233 }
3234 variable[5] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
3235 variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[2] /*property*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[2] /*property*/) /*MMLocalProperty::global*/;
3236 variable[6] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[6]) /*MMGlobalProperty::intro*/;
3237 variable[6] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[6]) /*MMLocalProperty::local_class*/;
3238 variable[6] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___global))(variable[6]) /*MMLocalClass::global*/;
3239 variable[5] = ((abstractmetamodel___MMModule_____bra_t)CALL(variable[5],COLOR_abstractmetamodel___MMModule_____bra))(variable[5], variable[6]) /*MMModule::[]*/;
3240 variable[4] = variable[5];
3241 variable[5] = NIT_NULL /*null*/;
3242 variable[6] = ((typing___TypingVisitor___explicit_super_init_calls_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls))( variable[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
3243 variable[6] = ((array___AbstractArray___is_empty_t)CALL(variable[6],COLOR_abstract_collection___Collection___is_empty))(variable[6]) /*AbstractArray::is_empty*/;
3244 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
3245 variable[6] = ((typing___TypingVisitor___explicit_super_init_calls_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls))( variable[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
3246 variable[6] = ((abstract_collection___IndexedCollection___last_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___last))(variable[6]) /*IndexedCollection::last*/;
3247 variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[6]) /*MMLocalProperty::global*/;
3248 variable[6] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[6]) /*MMGlobalProperty::intro*/;
3249 variable[6] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[6]) /*MMLocalProperty::local_class*/;
3250 variable[5] = variable[6] /*prev_class=*/;
3251 }
3252 variable[7] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
3253 variable[7] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[7]) /*MMLocalClass::cshe*/;
3254 variable[7] = ((partial_order___PartialOrderElement___reverse_linear_extension_t)CALL(variable[7],COLOR_partial_order___PartialOrderElement___reverse_linear_extension))(variable[7]) /*PartialOrderElement::reverse_linear_extension*/;
3255 variable[6] = variable[7];
3256 variable[7] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
3257 variable[7] = TAG_Bool(( variable[4] /*cla*/ == variable[7]) || (( variable[4] /*cla*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*cla*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*cla*/,variable[7])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*cla*/,COLOR_kernel___Object_____eqeq))( variable[4] /*cla*/, variable[7]) /*Object::==*/)))));
3258 if (UNTAG_Bool(variable[7])) { /*if*/
3259 ((typing___TypingVisitor___explicit_other_init_call__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___explicit_other_init_call__eq))( variable[1] /*v*/, TAG_Bool(true)) /*TypingVisitor::explicit_other_init_call=*/;
3260 } else { /*if*/
3261 variable[7] = ((array___AbstractArray___has_t)CALL( variable[6] /*order*/,COLOR_abstract_collection___Collection___has))( variable[6] /*order*/, variable[4] /*cla*/) /*AbstractArray::has*/;
3262 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[7])))) { /*if*/
3263 variable[7] = variable[0];
3264 variable[8] = NEW_String_string___String___init(); /*new String*/
3265 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Constructor of class "), TAG_Int(28)); /*new String*/
3266 variable[10] = variable[9];
3267 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
3268 variable[11] = variable[4] /*cla*/;
3269 variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
3270 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
3271 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" must be one in "), TAG_Int(16)); /*new String*/
3272 variable[13] = variable[12];
3273 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
3274 variable[14] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
3275 variable[14] = ((string___Collection___join_t)CALL( variable[6] /*order*/,COLOR_string___Collection___join))( variable[6] /*order*/, variable[14]) /*Collection::join*/;
3276 variable[15] = variable[14];
3277 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[15]) /*String::append*/;
3278 variable[16] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
3279 variable[17] = variable[16];
3280 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[17]) /*String::append*/;
3281 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
3282 } else { /*if*/
3283 variable[7] = TAG_Bool(( variable[4] /*cla*/ == variable[5] /*prev_class*/) || (( variable[4] /*cla*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*cla*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*cla*/, variable[5] /*prev_class*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*cla*/,COLOR_kernel___Object_____eqeq))( variable[4] /*cla*/, variable[5] /*prev_class*/) /*Object::==*/)))));
3284 if (UNTAG_Bool(variable[7])) { /*if*/
3285 variable[7] = variable[0];
3286 variable[8] = NEW_String_string___String___init(); /*new String*/
3287 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Only one super constructor invocation of class "), TAG_Int(54)); /*new String*/
3288 variable[10] = variable[9];
3289 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
3290 variable[11] = variable[4] /*cla*/;
3291 variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
3292 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
3293 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" is allowed."), TAG_Int(12)); /*new String*/
3294 variable[13] = variable[12];
3295 ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
3296 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
3297 } else { /*if*/
3298 variable[8] = TAG_Bool(( variable[5] /*prev_class*/ == NIT_NULL /*null*/) || (( variable[5] /*prev_class*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*prev_class*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*prev_class*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*prev_class*/,COLOR_kernel___Object_____eqeq))( variable[5] /*prev_class*/, NIT_NULL /*null*/) /*Object::==*/)))));
3299 variable[7] = variable[8];
3300 variable[8] = ((array___AbstractArray___iterator_t)CALL( variable[6] /*order*/,COLOR_abstract_collection___Collection___iterator))( variable[6] /*order*/) /*AbstractArray::iterator*/;
3301 while (true) { /*for*/
3302 variable[9] = ((array___ArrayIterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*ArrayIterator::is_ok*/;
3303 if (!UNTAG_Bool(variable[9])) break; /*for*/
3304 variable[9] = ((array___ArrayIterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*ArrayIterator::item*/;
3305 variable[10] = variable[9];
3306 variable[11] = TAG_Bool(( variable[10] /*c*/ == variable[5] /*prev_class*/) || (( variable[10] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*c*/, variable[5] /*prev_class*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*c*/,COLOR_kernel___Object_____eqeq))( variable[10] /*c*/, variable[5] /*prev_class*/) /*Object::==*/)))));
3307 if (UNTAG_Bool(variable[11])) { /*if*/
3308 variable[7] = TAG_Bool(true) /*last_is_found=*/;
3309 } else { /*if*/
3310 variable[11] = TAG_Bool(( variable[10] /*c*/ == variable[4] /*cla*/) || (( variable[10] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*c*/, variable[4] /*cla*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*c*/,COLOR_kernel___Object_____eqeq))( variable[10] /*c*/, variable[4] /*cla*/) /*Object::==*/)))));
3311 if (UNTAG_Bool(variable[11])) { /*if*/
3312 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable[7] /*last_is_found*/)))) { /*if*/
3313 variable[11] = variable[0];
3314 variable[12] = NEW_String_string___String___init(); /*new String*/
3315 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("Error: Constructor of "), TAG_Int(22)); /*new String*/
3316 variable[14] = variable[13];
3317 ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[14]) /*String::append*/;
3318 variable[15] = variable[10] /*c*/;
3319 variable[15] = ((string___String___to_s_t)CALL(variable[15],COLOR_string___Object___to_s))(variable[15]) /*String::to_s*/;
3320 ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[15]) /*String::append*/;
3321 variable[16] = NEW_String_string___String___with_native(BOX_NativeString(" must be invoked before constructor of "), TAG_Int(39)); /*new String*/
3322 variable[17] = variable[16];
3323 ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[17]) /*String::append*/;
3324 variable[18] = variable[5] /*prev_class*/;
3325 variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/;
3326 ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[18]) /*String::append*/;
3327 variable[19] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
3328 variable[20] = variable[19];
3329 ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[20]) /*String::append*/;
3330 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[11], variable[12]) /*AbsSyntaxVisitor::error*/;
3331 }
3332 variable[11] = ((typing___TypingVisitor___explicit_super_init_calls_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls))( variable[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
3333 ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[2] /*property*/) /*AbstractArray::add*/;
3334 goto break_97;
3335 }
3336 }
3337 continue_97: while(0);
3338 ((array___ArrayIterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*ArrayIterator::next*/;
3339 }
3340 break_97: while(0);
3341 }
3342 }
3343 }
3344 return_label96: while(false);
3345 tracehead = trace.prev;
3346 return;
3347 }
3348 void typing___ANewExpr___after_typing(val_t self, val_t param0) {
3349 struct trace_t trace = {NULL, NULL, 1025, LOCATE_typing___ANewExpr___after_typing};
3350 static val_t once_value_99; static int once_bool_99; /* Once value for variable[5]*/
3351 val_t variable[13];
3352 void **closurevariable = NULL;
3353 trace.prev = tracehead; tracehead = &trace;
3354 trace.file = LOCATE_typing;
3355 variable[0] = self;
3356 variable[1] = param0;
3357 variable[4] = variable[0];
3358 variable[4] = ((parser_nodes___ANewExpr___n_type_t)CALL(variable[4],COLOR_parser_nodes___ANewExpr___n_type))(variable[4]) /*ANewExpr::n_type*/;
3359 variable[4] = ((typing___PType___stype_t)CALL(variable[4],COLOR_typing___PType___stype))(variable[4]) /*PType::stype*/;
3360 variable[3] = variable[4];
3361 variable[4] = TAG_Bool(( variable[3] /*t*/ == NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))));
3362 if (UNTAG_Bool(variable[4])) { /*if*/
3363 goto return_label98;
3364 }
3365 variable[4] = ((static_type___MMType___local_class_t)CALL( variable[3] /*t*/,COLOR_static_type___MMType___local_class))( variable[3] /*t*/) /*MMType::local_class*/;
3366 variable[4] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___global))(variable[4]) /*MMLocalClass::global*/;
3367 variable[4] = ((abstractmetamodel___MMGlobalClass___is_abstract_t)CALL(variable[4],COLOR_abstractmetamodel___MMGlobalClass___is_abstract))(variable[4]) /*MMGlobalClass::is_abstract*/;
3368 if (UNTAG_Bool(variable[4])) { /*if*/
3369 variable[4] = variable[0];
3370 variable[5] = NEW_String_string___String___init(); /*new String*/
3371 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to instantiate abstract class "), TAG_Int(41)); /*new String*/
3372 variable[7] = variable[6];
3373 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
3374 variable[8] = ((static_type___MMType___local_class_t)CALL( variable[3] /*t*/,COLOR_static_type___MMType___local_class))( variable[3] /*t*/) /*MMType::local_class*/;
3375 variable[9] = variable[8];
3376 variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
3377 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
3378 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
3379 variable[11] = variable[10];
3380 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
3381 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
3382 goto return_label98;
3383 }
3384 /*variable[4] is variable name*/
3385 variable[5] = variable[0];
3386 variable[5] = ((parser_nodes___ANewExpr___n_id_t)CALL(variable[5],COLOR_parser_nodes___ANewExpr___n_id))(variable[5]) /*ANewExpr::n_id*/;
3387 variable[5] = TAG_Bool((variable[5] == NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5], NIT_NULL /*null*/) /*Object::==*/)))));
3388 if (UNTAG_Bool(variable[5])) { /*if*/
3389 if (once_bool_99) variable[5] = once_value_99;
3390 else {
3391 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
3392 variable[5] = ((symbol___String___to_symbol_t)CALL(variable[5],COLOR_symbol___String___to_symbol))(variable[5]) /*String::to_symbol*/;
3393 once_value_99 = variable[5];
3394 once_bool_99 = true;
3395 }
3396 variable[4] = variable[5] /*name=*/;
3397 } else { /*if*/
3398 variable[5] = variable[0];
3399 variable[5] = ((parser_nodes___ANewExpr___n_id_t)CALL(variable[5],COLOR_parser_nodes___ANewExpr___n_id))(variable[5]) /*ANewExpr::n_id*/;
3400 variable[5] = ((syntax_base___Token___to_symbol_t)CALL(variable[5],COLOR_syntax_base___Token___to_symbol))(variable[5]) /*Token::to_symbol*/;
3401 variable[4] = variable[5] /*name=*/;
3402 }
3403 variable[5] = variable[0];
3404 variable[6] = variable[0];
3405 variable[6] = ((parser_nodes___ANewExpr___n_args_t)CALL(variable[6],COLOR_parser_nodes___ANewExpr___n_args))(variable[6]) /*ANewExpr::n_args*/;
3406 variable[6] = ((array___Collection___to_a_t)CALL(variable[6],COLOR_array___Collection___to_a))(variable[6]) /*Collection::to_a*/;
3407 ((typing___AAbsSendExpr___do_typing_t)CALL(variable[5],COLOR_typing___AAbsSendExpr___do_typing))(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*/;
3408 variable[5] = variable[0];
3409 variable[5] = ((typing___AAbsSendExpr___prop_t)CALL(variable[5],COLOR_typing___AAbsSendExpr___prop))(variable[5]) /*AAbsSendExpr::prop*/;
3410 variable[5] = TAG_Bool((variable[5] == NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5], NIT_NULL /*null*/) /*Object::==*/)))));
3411 if (UNTAG_Bool(variable[5])) { /*if*/
3412 goto return_label98;
3413 }
3414 variable[5] = variable[0];
3415 variable[5] = ((typing___AAbsSendExpr___prop_t)CALL(variable[5],COLOR_typing___AAbsSendExpr___prop))(variable[5]) /*AAbsSendExpr::prop*/;
3416 variable[5] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[5]) /*MMLocalProperty::global*/;
3417 variable[5] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[5]) /*MMGlobalProperty::is_init*/;
3418 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[5])))) { /*if*/
3419 variable[5] = variable[0];
3420 variable[6] = NEW_String_string___String___init(); /*new String*/
3421 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
3422 variable[8] = variable[7];
3423 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
3424 variable[9] = variable[0];
3425 variable[9] = ((typing___AAbsSendExpr___prop_t)CALL(variable[9],COLOR_typing___AAbsSendExpr___prop))(variable[9]) /*AAbsSendExpr::prop*/;
3426 variable[10] = variable[9];
3427 variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
3428 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
3429 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" is not a constructor."), TAG_Int(22)); /*new String*/
3430 variable[12] = variable[11];
3431 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
3432 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
3433 }
3434 variable[5] = variable[0];
3435 ATTR_typing___PExpr____stype(variable[5]) /*PExpr::_stype*/ = variable[3] /*t*/;
3436 return_label98: while(false);
3437 tracehead = trace.prev;
3438 return;
3439 }
3440 void typing___ASendExpr___after_typing(val_t self, val_t param0) {
3441 struct trace_t trace = {NULL, NULL, 1062, LOCATE_typing___ASendExpr___after_typing};
3442 val_t variable[4];
3443 void **closurevariable = NULL;
3444 trace.prev = tracehead; tracehead = &trace;
3445 trace.file = LOCATE_typing;
3446 variable[0] = self;
3447 variable[1] = param0;
3448 variable[3] = variable[0];
3449 ((typing___ASendExpr___do_all_typing_t)CALL(variable[3],COLOR_typing___ASendExpr___do_all_typing))(variable[3], variable[1] /*v*/) /*ASendExpr::do_all_typing*/;
3450 return_label100: while(false);
3451 tracehead = trace.prev;
3452 return;
3453 }
3454 val_t typing___ASendExpr___name(val_t self) {
3455 struct trace_t trace = {NULL, NULL, 1053, LOCATE_typing___ASendExpr___name};
3456 val_t *variable = NULL;
3457 void **closurevariable = NULL;
3458 trace.prev = tracehead; tracehead = &trace;
3459 trace.file = LOCATE_typing;
3460 fprintf(stderr, "Deferred method called");
3461 fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 1053);
3462 nit_exit(1);
3463 tracehead = trace.prev;
3464 return NIT_NULL;
3465 }
3466 val_t typing___ASendExpr___raw_arguments(val_t self) {
3467 struct trace_t trace = {NULL, NULL, 1056, LOCATE_typing___ASendExpr___raw_arguments};
3468 val_t *variable = NULL;
3469 void **closurevariable = NULL;
3470 trace.prev = tracehead; tracehead = &trace;
3471 trace.file = LOCATE_typing;
3472 fprintf(stderr, "Deferred method called");
3473 fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 1056);
3474 nit_exit(1);
3475 tracehead = trace.prev;
3476 return NIT_NULL;
3477 }
3478 val_t typing___ASendExpr___closure_defs(val_t self) {
3479 struct trace_t trace = {NULL, NULL, 1059, LOCATE_typing___ASendExpr___closure_defs};
3480 val_t variable[2];
3481 void **closurevariable = NULL;
3482 trace.prev = tracehead; tracehead = &trace;
3483 trace.file = LOCATE_typing;
3484 variable[0] = self;
3485 variable[1] = NIT_NULL /*null*/;
3486 goto return_label101;
3487 return_label101: while(false);
3488 tracehead = trace.prev;
3489 return variable[1];
3490 }
3491 void typing___ASendExpr___do_all_typing(val_t self, val_t param0) {
3492 struct trace_t trace = {NULL, NULL, 1067, LOCATE_typing___ASendExpr___do_all_typing};
3493 val_t variable[11];
3494 void **closurevariable = NULL;
3495 trace.prev = tracehead; tracehead = &trace;
3496 trace.file = LOCATE_typing;
3497 variable[0] = self;
3498 variable[1] = param0;
3499 variable[3] = variable[0];
3500 variable[3] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___ASendExpr___n_expr))(variable[3]) /*ASendExpr::n_expr*/;
3501 variable[3] = ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_expr))( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::check_expr*/;
3502 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
3503 goto return_label102;
3504 }
3505 variable[3] = variable[0];
3506 variable[4] = variable[0];
3507 variable[4] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ASendExpr___n_expr))(variable[4]) /*ASendExpr::n_expr*/;
3508 variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
3509 variable[5] = variable[0];
3510 variable[5] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___ASendExpr___n_expr))(variable[5]) /*ASendExpr::n_expr*/;
3511 variable[5] = ((typing___PExpr___is_implicit_self_t)CALL(variable[5],COLOR_typing___PExpr___is_implicit_self))(variable[5]) /*PExpr::is_implicit_self*/;
3512 variable[6] = variable[0];
3513 variable[6] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[6],COLOR_parser_nodes___ASendExpr___n_expr))(variable[6]) /*ASendExpr::n_expr*/;
3514 variable[6] = ((typing___PExpr___is_self_t)CALL(variable[6],COLOR_typing___PExpr___is_self))(variable[6]) /*PExpr::is_self*/;
3515 variable[7] = variable[0];
3516 variable[7] = ((typing___ASendExpr___name_t)CALL(variable[7],COLOR_typing___ASendExpr___name))(variable[7]) /*ASendExpr::name*/;
3517 variable[8] = variable[0];
3518 variable[8] = ((typing___ASendExpr___raw_arguments_t)CALL(variable[8],COLOR_typing___ASendExpr___raw_arguments))(variable[8]) /*ASendExpr::raw_arguments*/;
3519 variable[9] = variable[0];
3520 variable[9] = ((typing___ASendExpr___closure_defs_t)CALL(variable[9],COLOR_typing___ASendExpr___closure_defs))(variable[9]) /*ASendExpr::closure_defs*/;
3521 ((typing___AAbsSendExpr___do_typing_t)CALL(variable[3],COLOR_typing___AAbsSendExpr___do_typing))(variable[3], variable[1] /*v*/, variable[4], variable[5], variable[6], variable[7], variable[8], variable[9]) /*AAbsSendExpr::do_typing*/;
3522 variable[3] = variable[0];
3523 variable[3] = ((typing___AAbsSendExpr___prop_t)CALL(variable[3],COLOR_typing___AAbsSendExpr___prop))(variable[3]) /*AAbsSendExpr::prop*/;
3524 variable[3] = TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], NIT_NULL /*null*/) /*Object::==*/)))));
3525 if (UNTAG_Bool(variable[3])) { /*if*/
3526 goto return_label102;
3527 }
3528 variable[3] = variable[0];
3529 variable[3] = ((typing___AAbsSendExpr___prop_t)CALL(variable[3],COLOR_typing___AAbsSendExpr___prop))(variable[3]) /*AAbsSendExpr::prop*/;
3530 variable[3] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[3]) /*MMLocalProperty::global*/;
3531 variable[3] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[3],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[3]) /*MMGlobalProperty::is_init*/;
3532 if (UNTAG_Bool(variable[3])) { /*if*/
3533 variable[3] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
3534 variable[3] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[3]) /*MMLocalProperty::global*/;
3535 variable[3] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[3],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[3]) /*MMGlobalProperty::is_init*/;
3536 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
3537 variable[3] = variable[0];
3538 variable[4] = NEW_String_string___String___init(); /*new String*/
3539 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
3540 variable[6] = variable[5];
3541 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
3542 variable[7] = variable[0];
3543 variable[7] = ((typing___AAbsSendExpr___prop_t)CALL(variable[7],COLOR_typing___AAbsSendExpr___prop))(variable[7]) /*AAbsSendExpr::prop*/;
3544 variable[8] = variable[7];
3545 variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
3546 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
3547 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
3548 variable[10] = variable[9];
3549 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
3550 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
3551 } else { /*if*/
3552 variable[3] = variable[0];
3553 variable[3] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___ASendExpr___n_expr))(variable[3]) /*ASendExpr::n_expr*/;
3554 variable[3] = ((typing___PExpr___is_self_t)CALL(variable[3],COLOR_typing___PExpr___is_self))(variable[3]) /*PExpr::is_self*/;
3555 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
3556 variable[3] = variable[0];
3557 variable[4] = NEW_String_string___String___init(); /*new String*/
3558 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
3559 variable[6] = variable[5];
3560 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
3561 variable[7] = variable[0];
3562 variable[7] = ((typing___AAbsSendExpr___prop_t)CALL(variable[7],COLOR_typing___AAbsSendExpr___prop))(variable[7]) /*AAbsSendExpr::prop*/;
3563 variable[8] = variable[7];
3564 variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
3565 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
3566 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
3567 variable[10] = variable[9];
3568 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
3569 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
3570 } else { /*if*/
3571 variable[3] = variable[0];
3572 variable[4] = variable[0];
3573 variable[4] = ((typing___AAbsSendExpr___prop_t)CALL(variable[4],COLOR_typing___AAbsSendExpr___prop))(variable[4]) /*AAbsSendExpr::prop*/;
3574 ((typing___ASuperInitCall___register_super_init_call_t)CALL(variable[3],COLOR_typing___ASuperInitCall___register_super_init_call))(variable[3], variable[1] /*v*/, variable[4]) /*ASuperInitCall::register_super_init_call*/;
3575 }
3576 }
3577 }
3578 variable[3] = variable[0];
3579 variable[4] = variable[0];
3580 variable[4] = ((typing___AAbsSendExpr___return_type_t)CALL(variable[4],COLOR_typing___AAbsSendExpr___return_type))(variable[4]) /*AAbsSendExpr::return_type*/;
3581 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
3582 return_label102: while(false);
3583 tracehead = trace.prev;
3584 return;
3585 }
3586 void typing___ASendReassignExpr___do_all_typing(val_t self, val_t param0) {
3587 struct trace_t trace = {NULL, NULL, 1091, LOCATE_typing___ASendReassignExpr___do_all_typing};
3588 val_t variable[17];
3589 void **closurevariable = NULL;
3590 trace.prev = tracehead; tracehead = &trace;
3591 trace.file = LOCATE_typing;
3592 variable[0] = self;
3593 variable[1] = param0;
3594 variable[3] = variable[0];
3595 variable[3] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___ASendExpr___n_expr))(variable[3]) /*ASendExpr::n_expr*/;
3596 variable[3] = ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_expr))( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::check_expr*/;
3597 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
3598 goto return_label103;
3599 }
3600 variable[4] = variable[0];
3601 variable[4] = ((typing___ASendExpr___raw_arguments_t)CALL(variable[4],COLOR_typing___ASendExpr___raw_arguments))(variable[4]) /*ASendExpr::raw_arguments*/;
3602 variable[3] = variable[4];
3603 variable[4] = variable[0];
3604 variable[5] = variable[0];
3605 variable[5] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___ASendExpr___n_expr))(variable[5]) /*ASendExpr::n_expr*/;
3606 variable[5] = ((typing___PExpr___stype_t)CALL(variable[5],COLOR_syntax_base___PExpr___stype))(variable[5]) /*PExpr::stype*/;
3607 variable[6] = variable[0];
3608 variable[6] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[6],COLOR_parser_nodes___ASendExpr___n_expr))(variable[6]) /*ASendExpr::n_expr*/;
3609 variable[6] = ((typing___PExpr___is_implicit_self_t)CALL(variable[6],COLOR_typing___PExpr___is_implicit_self))(variable[6]) /*PExpr::is_implicit_self*/;
3610 variable[7] = variable[0];
3611 variable[7] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[7],COLOR_parser_nodes___ASendExpr___n_expr))(variable[7]) /*ASendExpr::n_expr*/;
3612 variable[7] = ((typing___PExpr___is_self_t)CALL(variable[7],COLOR_typing___PExpr___is_self))(variable[7]) /*PExpr::is_self*/;
3613 variable[8] = variable[0];
3614 variable[8] = ((typing___ASendExpr___name_t)CALL(variable[8],COLOR_typing___ASendExpr___name))(variable[8]) /*ASendExpr::name*/;
3615 ((typing___AAbsSendExpr___do_typing_t)CALL(variable[4],COLOR_typing___AAbsSendExpr___do_typing))(variable[4], variable[1] /*v*/, variable[5], variable[6], variable[7], variable[8], variable[3] /*raw_args*/, NIT_NULL /*null*/) /*AAbsSendExpr::do_typing*/;
3616 variable[4] = variable[0];
3617 variable[4] = ((typing___AAbsSendExpr___prop_t)CALL(variable[4],COLOR_typing___AAbsSendExpr___prop))(variable[4]) /*AAbsSendExpr::prop*/;
3618 variable[4] = TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], NIT_NULL /*null*/) /*Object::==*/)))));
3619 if (UNTAG_Bool(variable[4])) { /*if*/
3620 goto return_label103;
3621 }
3622 variable[4] = variable[0];
3623 variable[4] = ((typing___AAbsSendExpr___prop_t)CALL(variable[4],COLOR_typing___AAbsSendExpr___prop))(variable[4]) /*AAbsSendExpr::prop*/;
3624 variable[4] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[4]) /*MMLocalProperty::global*/;
3625 variable[4] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[4],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[4]) /*MMGlobalProperty::is_init*/;
3626 if (UNTAG_Bool(variable[4])) { /*if*/
3627 variable[4] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
3628 variable[4] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[4]) /*MMLocalProperty::global*/;
3629 variable[4] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[4],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[4]) /*MMGlobalProperty::is_init*/;
3630 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/
3631 variable[4] = variable[0];
3632 variable[5] = NEW_String_string___String___init(); /*new String*/
3633 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
3634 variable[7] = variable[6];
3635 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
3636 variable[8] = variable[0];
3637 variable[8] = ((typing___AAbsSendExpr___prop_t)CALL(variable[8],COLOR_typing___AAbsSendExpr___prop))(variable[8]) /*AAbsSendExpr::prop*/;
3638 variable[9] = variable[8];
3639 variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
3640 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
3641 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
3642 variable[11] = variable[10];
3643 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
3644 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
3645 } else { /*if*/
3646 variable[4] = variable[0];
3647 variable[4] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ASendExpr___n_expr))(variable[4]) /*ASendExpr::n_expr*/;
3648 variable[4] = ((typing___PExpr___is_self_t)CALL(variable[4],COLOR_typing___PExpr___is_self))(variable[4]) /*PExpr::is_self*/;
3649 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/
3650 variable[4] = variable[0];
3651 variable[5] = NEW_String_string___String___init(); /*new String*/
3652 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
3653 variable[7] = variable[6];
3654 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
3655 variable[8] = variable[0];
3656 variable[8] = ((typing___AAbsSendExpr___prop_t)CALL(variable[8],COLOR_typing___AAbsSendExpr___prop))(variable[8]) /*AAbsSendExpr::prop*/;
3657 variable[9] = variable[8];
3658 variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
3659 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
3660 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
3661 variable[11] = variable[10];
3662 ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
3663 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
3664 }
3665 }
3666 }
3667 variable[5] = variable[0];
3668 variable[5] = ((typing___AAbsSendExpr___prop_t)CALL(variable[5],COLOR_typing___AAbsSendExpr___prop))(variable[5]) /*AAbsSendExpr::prop*/;
3669 variable[6] = variable[0];
3670 variable[6] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[6],COLOR_parser_nodes___ASendExpr___n_expr))(variable[6]) /*ASendExpr::n_expr*/;
3671 variable[6] = ((typing___PExpr___stype_t)CALL(variable[6],COLOR_syntax_base___PExpr___stype))(variable[6]) /*PExpr::stype*/;
3672 variable[5] = ((static_type___MMLocalProperty___signature_for_t)CALL(variable[5],COLOR_static_type___MMLocalProperty___signature_for))(variable[5], variable[6]) /*MMLocalProperty::signature_for*/;
3673 variable[5] = ((static_type___MMSignature___return_type_t)CALL(variable[5],COLOR_static_type___MMSignature___return_type))(variable[5]) /*MMSignature::return_type*/;
3674 variable[4] = variable[5];
3675 variable[5] = variable[0];
3676 variable[5] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___ASendExpr___n_expr))(variable[5]) /*ASendExpr::n_expr*/;
3677 variable[5] = ((typing___PExpr___is_self_t)CALL(variable[5],COLOR_typing___PExpr___is_self))(variable[5]) /*PExpr::is_self*/;
3678 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[5])))) { /*if*/
3679 variable[5] = ((static_type___MMType___not_for_self_t)CALL( variable[4] /*t*/,COLOR_static_type___MMType___not_for_self))( variable[4] /*t*/) /*MMType::not_for_self*/;
3680 variable[4] = variable[5] /*t=*/;
3681 }
3682 variable[5] = variable[0];
3683 ((typing___AReassignFormExpr___do_lvalue_typing_t)CALL(variable[5],COLOR_typing___AReassignFormExpr___do_lvalue_typing))(variable[5], variable[1] /*v*/, variable[4] /*t*/) /*AReassignFormExpr::do_lvalue_typing*/;
3684 variable[5] = variable[0];
3685 variable[6] = variable[0];
3686 variable[6] = ((typing___AAbsSendExpr___prop_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___prop))(variable[6]) /*AAbsSendExpr::prop*/;
3687 ATTR_typing___ASendReassignExpr____read_prop(variable[5]) /*ASendReassignExpr::_read_prop*/ = variable[6];
3688 variable[6] = variable[0];
3689 variable[6] = ((typing___AAbsSendExpr___arguments_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___arguments))(variable[6]) /*AAbsSendExpr::arguments*/;
3690 variable[5] = variable[6];
3691 variable[6] = variable[0];
3692 variable[6] = ((parser_nodes___AReassignFormExpr___n_value_t)CALL(variable[6],COLOR_parser_nodes___AReassignFormExpr___n_value))(variable[6]) /*AReassignFormExpr::n_value*/;
3693 ((array___AbstractArray___add_t)CALL( variable[3] /*raw_args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*raw_args*/, variable[6]) /*AbstractArray::add*/;
3694 variable[6] = variable[0];
3695 variable[7] = variable[0];
3696 variable[7] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[7],COLOR_parser_nodes___ASendExpr___n_expr))(variable[7]) /*ASendExpr::n_expr*/;
3697 variable[7] = ((typing___PExpr___stype_t)CALL(variable[7],COLOR_syntax_base___PExpr___stype))(variable[7]) /*PExpr::stype*/;
3698 variable[8] = variable[0];
3699 variable[8] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[8],COLOR_parser_nodes___ASendExpr___n_expr))(variable[8]) /*ASendExpr::n_expr*/;
3700 variable[8] = ((typing___PExpr___is_implicit_self_t)CALL(variable[8],COLOR_typing___PExpr___is_implicit_self))(variable[8]) /*PExpr::is_implicit_self*/;
3701 variable[9] = variable[0];
3702 variable[9] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[9],COLOR_parser_nodes___ASendExpr___n_expr))(variable[9]) /*ASendExpr::n_expr*/;
3703 variable[9] = ((typing___PExpr___is_self_t)CALL(variable[9],COLOR_typing___PExpr___is_self))(variable[9]) /*PExpr::is_self*/;
3704 variable[10] = NEW_String_string___String___init(); /*new String*/
3705 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
3706 variable[12] = variable[11];
3707 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
3708 variable[13] = variable[0];
3709 variable[13] = ((typing___ASendExpr___name_t)CALL(variable[13],COLOR_typing___ASendExpr___name))(variable[13]) /*ASendExpr::name*/;
3710 variable[14] = variable[13];
3711 variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
3712 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/;
3713 variable[15] = NEW_String_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
3714 variable[16] = variable[15];
3715 ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/;
3716 variable[10] = ((symbol___String___to_symbol_t)CALL(variable[10],COLOR_symbol___String___to_symbol))(variable[10]) /*String::to_symbol*/;
3717 ((typing___AAbsSendExpr___do_typing_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___do_typing))(variable[6], variable[1] /*v*/, variable[7], variable[8], variable[9], variable[10], variable[3] /*raw_args*/, NIT_NULL /*null*/) /*AAbsSendExpr::do_typing*/;
3718 variable[6] = variable[0];
3719 variable[6] = ((typing___AAbsSendExpr___prop_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___prop))(variable[6]) /*AAbsSendExpr::prop*/;
3720 variable[6] = TAG_Bool((variable[6] == NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6], NIT_NULL /*null*/) /*Object::==*/)))));
3721 if (UNTAG_Bool(variable[6])) { /*if*/
3722 goto return_label103;
3723 }
3724 variable[6] = variable[0];
3725 variable[6] = ((typing___AAbsSendExpr___prop_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___prop))(variable[6]) /*AAbsSendExpr::prop*/;
3726 variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[6]) /*MMLocalProperty::global*/;
3727 variable[6] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[6]) /*MMGlobalProperty::is_init*/;
3728 if (UNTAG_Bool(variable[6])) { /*if*/
3729 variable[6] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
3730 variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[6]) /*MMLocalProperty::global*/;
3731 variable[6] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[6]) /*MMGlobalProperty::is_init*/;
3732 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
3733 variable[6] = variable[0];
3734 variable[7] = NEW_String_string___String___init(); /*new String*/
3735 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
3736 variable[9] = variable[8];
3737 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
3738 variable[10] = variable[0];
3739 variable[10] = ((typing___AAbsSendExpr___prop_t)CALL(variable[10],COLOR_typing___AAbsSendExpr___prop))(variable[10]) /*AAbsSendExpr::prop*/;
3740 variable[11] = variable[10];
3741 variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
3742 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
3743 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
3744 variable[13] = variable[12];
3745 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
3746 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
3747 } else { /*if*/
3748 variable[6] = variable[0];
3749 variable[6] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[6],COLOR_parser_nodes___ASendExpr___n_expr))(variable[6]) /*ASendExpr::n_expr*/;
3750 variable[6] = ((typing___PExpr___is_self_t)CALL(variable[6],COLOR_typing___PExpr___is_self))(variable[6]) /*PExpr::is_self*/;
3751 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
3752 variable[6] = variable[0];
3753 variable[7] = NEW_String_string___String___init(); /*new String*/
3754 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
3755 variable[9] = variable[8];
3756 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
3757 variable[10] = variable[0];
3758 variable[10] = ((typing___AAbsSendExpr___prop_t)CALL(variable[10],COLOR_typing___AAbsSendExpr___prop))(variable[10]) /*AAbsSendExpr::prop*/;
3759 variable[11] = variable[10];
3760 variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
3761 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
3762 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
3763 variable[13] = variable[12];
3764 ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
3765 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
3766 }
3767 }
3768 }
3769 variable[6] = variable[0];
3770 ATTR_typing___AAbsSendExpr____arguments(variable[6]) /*AAbsSendExpr::_arguments*/ = variable[5] /*old_args*/;
3771 return_label103: while(false);
3772 tracehead = trace.prev;
3773 return;
3774 }
3775 val_t typing___ASendReassignExpr___read_prop(val_t self) {
3776 struct trace_t trace = {NULL, NULL, 1090, LOCATE_typing___ASendReassignExpr___read_prop};
3777 val_t *variable = NULL;
3778 void **closurevariable = NULL;
3779 trace.prev = tracehead; tracehead = &trace;
3780 trace.file = LOCATE_typing;
3781 tracehead = trace.prev;
3782 return ATTR_typing___ASendReassignExpr____read_prop( self) /*ASendReassignExpr::_read_prop*/;
3783 }
3784 val_t typing___ABinopExpr___raw_arguments(val_t self) {
3785 struct trace_t trace = {NULL, NULL, 1128, LOCATE_typing___ABinopExpr___raw_arguments};
3786 val_t variable[4];
3787 void **closurevariable = NULL;
3788 trace.prev = tracehead; tracehead = &trace;
3789 trace.file = LOCATE_typing;
3790 variable[0] = self;
3791 variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[PExpr]*/
3792 variable[3] = variable[0];
3793 variable[3] = ((parser_nodes___ABinopExpr___n_expr2_t)CALL(variable[3],COLOR_parser_nodes___ABinopExpr___n_expr2))(variable[3]) /*ABinopExpr::n_expr2*/;
3794 ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
3795 variable[1] = variable[2];
3796 goto return_label104;
3797 return_label104: while(false);
3798 tracehead = trace.prev;
3799 return variable[1];
3800 }
3801 val_t typing___AEqExpr___name(val_t self) {
3802 struct trace_t trace = {NULL, NULL, 1131, LOCATE_typing___AEqExpr___name};
3803 static val_t once_value_106; static int once_bool_106; /* Once value for variable[2]*/
3804 val_t variable[3];
3805 void **closurevariable = NULL;
3806 trace.prev = tracehead; tracehead = &trace;
3807 trace.file = LOCATE_typing;
3808 variable[0] = self;
3809 if (once_bool_106) variable[2] = once_value_106;
3810 else {
3811 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
3812 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
3813 once_value_106 = variable[2];
3814 once_bool_106 = true;
3815 }
3816 variable[1] = variable[2];
3817 goto return_label105;
3818 return_label105: while(false);
3819 tracehead = trace.prev;
3820 return variable[1];
3821 }
3822 val_t typing___ANeExpr___name(val_t self) {
3823 struct trace_t trace = {NULL, NULL, 1134, LOCATE_typing___ANeExpr___name};
3824 static val_t once_value_108; static int once_bool_108; /* Once value for variable[2]*/
3825 val_t variable[3];
3826 void **closurevariable = NULL;
3827 trace.prev = tracehead; tracehead = &trace;
3828 trace.file = LOCATE_typing;
3829 variable[0] = self;
3830 if (once_bool_108) variable[2] = once_value_108;
3831 else {
3832 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
3833 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
3834 once_value_108 = variable[2];
3835 once_bool_108 = true;
3836 }
3837 variable[1] = variable[2];
3838 goto return_label107;
3839 return_label107: while(false);
3840 tracehead = trace.prev;
3841 return variable[1];
3842 }
3843 val_t typing___ALtExpr___name(val_t self) {
3844 struct trace_t trace = {NULL, NULL, 1137, LOCATE_typing___ALtExpr___name};
3845 static val_t once_value_110; static int once_bool_110; /* Once value for variable[2]*/
3846 val_t variable[3];
3847 void **closurevariable = NULL;
3848 trace.prev = tracehead; tracehead = &trace;
3849 trace.file = LOCATE_typing;
3850 variable[0] = self;
3851 if (once_bool_110) variable[2] = once_value_110;
3852 else {
3853 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
3854 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
3855 once_value_110 = variable[2];
3856 once_bool_110 = true;
3857 }
3858 variable[1] = variable[2];
3859 goto return_label109;
3860 return_label109: while(false);
3861 tracehead = trace.prev;
3862 return variable[1];
3863 }
3864 val_t typing___ALeExpr___name(val_t self) {
3865 struct trace_t trace = {NULL, NULL, 1140, LOCATE_typing___ALeExpr___name};
3866 static val_t once_value_112; static int once_bool_112; /* Once value for variable[2]*/
3867 val_t variable[3];
3868 void **closurevariable = NULL;
3869 trace.prev = tracehead; tracehead = &trace;
3870 trace.file = LOCATE_typing;
3871 variable[0] = self;
3872 if (once_bool_112) variable[2] = once_value_112;
3873 else {
3874 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
3875 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
3876 once_value_112 = variable[2];
3877 once_bool_112 = true;
3878 }
3879 variable[1] = variable[2];
3880 goto return_label111;
3881 return_label111: while(false);
3882 tracehead = trace.prev;
3883 return variable[1];
3884 }
3885 val_t typing___AGtExpr___name(val_t self) {
3886 struct trace_t trace = {NULL, NULL, 1143, LOCATE_typing___AGtExpr___name};
3887 static val_t once_value_114; static int once_bool_114; /* Once value for variable[2]*/
3888 val_t variable[3];
3889 void **closurevariable = NULL;
3890 trace.prev = tracehead; tracehead = &trace;
3891 trace.file = LOCATE_typing;
3892 variable[0] = self;
3893 if (once_bool_114) variable[2] = once_value_114;
3894 else {
3895 variable[2] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
3896 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
3897 once_value_114 = variable[2];
3898 once_bool_114 = true;
3899 }
3900 variable[1] = variable[2];
3901 goto return_label113;
3902 return_label113: while(false);
3903 tracehead = trace.prev;
3904 return variable[1];
3905 }
3906 val_t typing___AGeExpr___name(val_t self) {
3907 struct trace_t trace = {NULL, NULL, 1146, LOCATE_typing___AGeExpr___name};
3908 static val_t once_value_116; static int once_bool_116; /* Once value for variable[2]*/
3909 val_t variable[3];
3910 void **closurevariable = NULL;
3911 trace.prev = tracehead; tracehead = &trace;
3912 trace.file = LOCATE_typing;
3913 variable[0] = self;
3914 if (once_bool_116) variable[2] = once_value_116;
3915 else {
3916 variable[2] = NEW_String_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
3917 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
3918 once_value_116 = variable[2];
3919 once_bool_116 = true;
3920 }
3921 variable[1] = variable[2];
3922 goto return_label115;
3923 return_label115: while(false);
3924 tracehead = trace.prev;
3925 return variable[1];
3926 }
3927 val_t typing___APlusExpr___name(val_t self) {
3928 struct trace_t trace = {NULL, NULL, 1149, LOCATE_typing___APlusExpr___name};
3929 static val_t once_value_118; static int once_bool_118; /* Once value for variable[2]*/
3930 val_t variable[3];
3931 void **closurevariable = NULL;
3932 trace.prev = tracehead; tracehead = &trace;
3933 trace.file = LOCATE_typing;
3934 variable[0] = self;
3935 if (once_bool_118) variable[2] = once_value_118;
3936 else {
3937 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
3938 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
3939 once_value_118 = variable[2];
3940 once_bool_118 = true;
3941 }
3942 variable[1] = variable[2];
3943 goto return_label117;
3944 return_label117: while(false);
3945 tracehead = trace.prev;
3946 return variable[1];
3947 }
3948 val_t typing___AMinusExpr___name(val_t self) {
3949 struct trace_t trace = {NULL, NULL, 1152, LOCATE_typing___AMinusExpr___name};
3950 static val_t once_value_120; static int once_bool_120; /* Once value for variable[2]*/
3951 val_t variable[3];
3952 void **closurevariable = NULL;
3953 trace.prev = tracehead; tracehead = &trace;
3954 trace.file = LOCATE_typing;
3955 variable[0] = self;
3956 if (once_bool_120) variable[2] = once_value_120;
3957 else {
3958 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
3959 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
3960 once_value_120 = variable[2];
3961 once_bool_120 = true;
3962 }
3963 variable[1] = variable[2];
3964 goto return_label119;
3965 return_label119: while(false);
3966 tracehead = trace.prev;
3967 return variable[1];
3968 }
3969 val_t typing___AStarshipExpr___name(val_t self) {
3970 struct trace_t trace = {NULL, NULL, 1155, LOCATE_typing___AStarshipExpr___name};
3971 static val_t once_value_122; static int once_bool_122; /* Once value for variable[2]*/
3972 val_t variable[3];
3973 void **closurevariable = NULL;
3974 trace.prev = tracehead; tracehead = &trace;
3975 trace.file = LOCATE_typing;
3976 variable[0] = self;
3977 if (once_bool_122) variable[2] = once_value_122;
3978 else {
3979 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("<=>"), TAG_Int(3)); /*new String*/
3980 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
3981 once_value_122 = variable[2];
3982 once_bool_122 = true;
3983 }
3984 variable[1] = variable[2];
3985 goto return_label121;
3986 return_label121: while(false);
3987 tracehead = trace.prev;
3988 return variable[1];
3989 }
3990 val_t typing___AStarExpr___name(val_t self) {
3991 struct trace_t trace = {NULL, NULL, 1158, LOCATE_typing___AStarExpr___name};
3992 static val_t once_value_124; static int once_bool_124; /* Once value for variable[2]*/
3993 val_t variable[3];
3994 void **closurevariable = NULL;
3995 trace.prev = tracehead; tracehead = &trace;
3996 trace.file = LOCATE_typing;
3997 variable[0] = self;
3998 if (once_bool_124) variable[2] = once_value_124;
3999 else {
4000 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
4001 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
4002 once_value_124 = variable[2];
4003 once_bool_124 = true;
4004 }
4005 variable[1] = variable[2];
4006 goto return_label123;
4007 return_label123: while(false);
4008 tracehead = trace.prev;
4009 return variable[1];
4010 }
4011 val_t typing___ASlashExpr___name(val_t self) {
4012 struct trace_t trace = {NULL, NULL, 1161, LOCATE_typing___ASlashExpr___name};
4013 static val_t once_value_126; static int once_bool_126; /* Once value for variable[2]*/
4014 val_t variable[3];
4015 void **closurevariable = NULL;
4016 trace.prev = tracehead; tracehead = &trace;
4017 trace.file = LOCATE_typing;
4018 variable[0] = self;
4019 if (once_bool_126) variable[2] = once_value_126;
4020 else {
4021 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
4022 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
4023 once_value_126 = variable[2];
4024 once_bool_126 = true;
4025 }
4026 variable[1] = variable[2];
4027 goto return_label125;
4028 return_label125: while(false);
4029 tracehead = trace.prev;
4030 return variable[1];
4031 }
4032 val_t typing___APercentExpr___name(val_t self) {
4033 struct trace_t trace = {NULL, NULL, 1164, LOCATE_typing___APercentExpr___name};
4034 static val_t once_value_128; static int once_bool_128; /* Once value for variable[2]*/
4035 val_t variable[3];
4036 void **closurevariable = NULL;
4037 trace.prev = tracehead; tracehead = &trace;
4038 trace.file = LOCATE_typing;
4039 variable[0] = self;
4040 if (once_bool_128) variable[2] = once_value_128;
4041 else {
4042 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)); /*new String*/
4043 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
4044 once_value_128 = variable[2];
4045 once_bool_128 = true;
4046 }
4047 variable[1] = variable[2];
4048 goto return_label127;
4049 return_label127: while(false);
4050 tracehead = trace.prev;
4051 return variable[1];
4052 }
4053 val_t typing___AUminusExpr___name(val_t self) {
4054 struct trace_t trace = {NULL, NULL, 1168, LOCATE_typing___AUminusExpr___name};
4055 static val_t once_value_130; static int once_bool_130; /* Once value for variable[2]*/
4056 val_t variable[3];
4057 void **closurevariable = NULL;
4058 trace.prev = tracehead; tracehead = &trace;
4059 trace.file = LOCATE_typing;
4060 variable[0] = self;
4061 if (once_bool_130) variable[2] = once_value_130;
4062 else {
4063 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
4064 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
4065 once_value_130 = variable[2];
4066 once_bool_130 = true;
4067 }
4068 variable[1] = variable[2];
4069 goto return_label129;
4070 return_label129: while(false);
4071 tracehead = trace.prev;
4072 return variable[1];
4073 }
4074 val_t typing___AUminusExpr___raw_arguments(val_t self) {
4075 struct trace_t trace = {NULL, NULL, 1169, LOCATE_typing___AUminusExpr___raw_arguments};
4076 val_t variable[2];
4077 void **closurevariable = NULL;
4078 trace.prev = tracehead; tracehead = &trace;
4079 trace.file = LOCATE_typing;
4080 variable[0] = self;
4081 variable[1] = NIT_NULL /*null*/;
4082 goto return_label131;
4083 return_label131: while(false);
4084 tracehead = trace.prev;
4085 return variable[1];
4086 }
4087 void typing___ACallFormExpr___after_typing(val_t self, val_t param0) {
4088 struct trace_t trace = {NULL, NULL, 1173, LOCATE_typing___ACallFormExpr___after_typing};
4089 val_t variable[12];
4090 void **closurevariable = NULL;
4091 trace.prev = tracehead; tracehead = &trace;
4092 trace.file = LOCATE_typing;
4093 variable[0] = self;
4094 variable[1] = param0;
4095 variable[3] = variable[0];
4096 variable[3] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___ASendExpr___n_expr))(variable[3]) /*ASendExpr::n_expr*/;
4097 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
4098 variable[4] = variable[3];
4099 if (UNTAG_Bool(variable[4])) { /* and */
4100 variable[4] = variable[0];
4101 variable[4] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ASendExpr___n_expr))(variable[4]) /*ASendExpr::n_expr*/;
4102 variable[4] = ((typing___PExpr___is_implicit_self_t)CALL(variable[4],COLOR_typing___PExpr___is_implicit_self))(variable[4]) /*PExpr::is_implicit_self*/;
4103 }
4104 variable[3] = variable[4];
4105 if (UNTAG_Bool(variable[3])) { /*if*/
4106 variable[4] = variable[0];
4107 variable[4] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[4],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[4]) /*ACallFormExpr::n_id*/;
4108 variable[4] = ((syntax_base___Token___to_symbol_t)CALL(variable[4],COLOR_syntax_base___Token___to_symbol))(variable[4]) /*Token::to_symbol*/;
4109 variable[3] = variable[4];
4110 variable[5] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
4111 variable[5] = ((typing___VariableContext_____bra_t)CALL(variable[5],COLOR_typing___VariableContext_____bra))(variable[5], variable[3] /*name*/) /*VariableContext::[]*/;
4112 variable[4] = variable[5];
4113 variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*variable*/ == NIT_NULL /*null*/) || (( variable[4] /*variable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*variable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*variable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*variable*/,COLOR_kernel___Object_____eqeq))( variable[4] /*variable*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4114 if (UNTAG_Bool(variable[5])) { /*if*/
4115 variable[5] = TAG_Bool(( variable[4] /*variable*/==NIT_NULL) || VAL_ISA( variable[4] /*variable*/, COLOR_ClosureVariable, ID_ClosureVariable)) /*cast ClosureVariable*/;
4116 if (UNTAG_Bool(variable[5])) { /*if*/
4117 variable[6] = variable[0];
4118 variable[6] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[6],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[6]) /*ACallFormExpr::n_id*/;
4119 variable[7] = variable[0];
4120 variable[7] = ((parser_nodes___ACallFormExpr___n_args_t)CALL(variable[7],COLOR_parser_nodes___ACallFormExpr___n_args))(variable[7]) /*ACallFormExpr::n_args*/;
4121 variable[8] = variable[0];
4122 variable[8] = ((parser_nodes___ASendExpr___n_closure_defs_t)CALL(variable[8],COLOR_parser_nodes___ASendExpr___n_closure_defs))(variable[8]) /*ASendExpr::n_closure_defs*/;
4123 variable[9] = NEW_AClosureCallExpr_parser_nodes___AClosureCallExpr___init(variable[6], variable[7], variable[8]); /*new AClosureCallExpr*/
4124 variable[6] = variable[9];
4125 variable[5] = variable[6];
4126 variable[6] = variable[0];
4127 ((parser_prod___Prod___replace_with_t)CALL(variable[6],COLOR_parser_prod___PNode___replace_with))(variable[6], variable[5] /*n*/) /*Prod::replace_with*/;
4128 ((syntax_base___AClosureCallExpr___variable__eq_t)CALL( variable[5] /*n*/,COLOR_syntax_base___AClosureCallExpr___variable__eq))( variable[5] /*n*/, variable[4] /*variable*/) /*AClosureCallExpr::variable=*/;
4129 ((typing___AClosureCallExpr___after_typing_t)CALL( variable[5] /*n*/,COLOR_typing___PNode___after_typing))( variable[5] /*n*/, variable[1] /*v*/) /*AClosureCallExpr::after_typing*/;
4130 goto return_label132;
4131 } else { /*if*/
4132 variable[5] = variable[0];
4133 variable[5] = ((parser_nodes___ACallFormExpr___n_args_t)CALL(variable[5],COLOR_parser_nodes___ACallFormExpr___n_args))(variable[5]) /*ACallFormExpr::n_args*/;
4134 variable[5] = ((list___List___is_empty_t)CALL(variable[5],COLOR_abstract_collection___Collection___is_empty))(variable[5]) /*List::is_empty*/;
4135 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[5])))) { /*if*/
4136 variable[5] = variable[0];
4137 variable[6] = NEW_String_string___String___init(); /*new String*/
4138 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
4139 variable[8] = variable[7];
4140 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
4141 variable[9] = variable[3] /*name*/;
4142 variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
4143 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
4144 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" is variable, not a function."), TAG_Int(29)); /*new String*/
4145 variable[11] = variable[10];
4146 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
4147 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
4148 }
4149 variable[6] = variable[0];
4150 variable[6] = ((typing___ACallFormExpr___variable_create_t)CALL(variable[6],COLOR_typing___ACallFormExpr___variable_create))(variable[6], variable[4] /*variable*/) /*ACallFormExpr::variable_create*/;
4151 variable[5] = variable[6];
4152 ((syntax_base___AVarFormExpr___variable__eq_t)CALL( variable[5] /*vform*/,COLOR_syntax_base___AVarFormExpr___variable__eq))( variable[5] /*vform*/, variable[4] /*variable*/) /*AVarFormExpr::variable=*/;
4153 variable[6] = variable[0];
4154 ((parser_prod___Prod___replace_with_t)CALL(variable[6],COLOR_parser_prod___PNode___replace_with))(variable[6], variable[5] /*vform*/) /*Prod::replace_with*/;
4155 ((typing___PNode___after_typing_t)CALL( variable[5] /*vform*/,COLOR_typing___PNode___after_typing))( variable[5] /*vform*/, variable[1] /*v*/) /*PNode::after_typing*/;
4156 goto return_label132;
4157 }
4158 }
4159 }
4160 ((typing___ACallFormExpr___after_typing_t)CALL(variable[0],COLOR_SUPER_typing___ACallFormExpr___after_typing))(variable[0], variable[1]) /*super ACallFormExpr::after_typing*/;
4161 return_label132: while(false);
4162 tracehead = trace.prev;
4163 return;
4164 }
4165 val_t typing___ACallFormExpr___closure_defs(val_t self) {
4166 struct trace_t trace = {NULL, NULL, 1200, LOCATE_typing___ACallFormExpr___closure_defs};
4167 val_t variable[4];
4168 void **closurevariable = NULL;
4169 trace.prev = tracehead; tracehead = &trace;
4170 trace.file = LOCATE_typing;
4171 variable[0] = self;
4172 variable[2] = variable[0];
4173 variable[2] = ((parser_nodes___ASendExpr___n_closure_defs_t)CALL(variable[2],COLOR_parser_nodes___ASendExpr___n_closure_defs))(variable[2]) /*ASendExpr::n_closure_defs*/;
4174 variable[2] = TAG_Bool((variable[2] == NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2], NIT_NULL /*null*/) /*Object::==*/)))));
4175 variable[3] = variable[2];
4176 if (!UNTAG_Bool(variable[3])) { /* or */
4177 variable[3] = variable[0];
4178 variable[3] = ((parser_nodes___ASendExpr___n_closure_defs_t)CALL(variable[3],COLOR_parser_nodes___ASendExpr___n_closure_defs))(variable[3]) /*ASendExpr::n_closure_defs*/;
4179 variable[3] = ((list___List___is_empty_t)CALL(variable[3],COLOR_abstract_collection___Collection___is_empty))(variable[3]) /*List::is_empty*/;
4180 }
4181 variable[2] = variable[3];
4182 if (UNTAG_Bool(variable[2])) { /*if*/
4183 variable[1] = NIT_NULL /*null*/;
4184 goto return_label133;
4185 } else { /*if*/
4186 variable[2] = variable[0];
4187 variable[2] = ((parser_nodes___ASendExpr___n_closure_defs_t)CALL(variable[2],COLOR_parser_nodes___ASendExpr___n_closure_defs))(variable[2]) /*ASendExpr::n_closure_defs*/;
4188 variable[2] = ((array___Collection___to_a_t)CALL(variable[2],COLOR_array___Collection___to_a))(variable[2]) /*Collection::to_a*/;
4189 variable[1] = variable[2];
4190 goto return_label133;
4191 }
4192 return_label133: while(false);
4193 tracehead = trace.prev;
4194 return variable[1];
4195 }
4196 val_t typing___ACallFormExpr___variable_create(val_t self, val_t param0) {
4197 struct trace_t trace = {NULL, NULL, 1209, LOCATE_typing___ACallFormExpr___variable_create};
4198 val_t *variable = NULL;
4199 void **closurevariable = NULL;
4200 trace.prev = tracehead; tracehead = &trace;
4201 trace.file = LOCATE_typing;
4202 fprintf(stderr, "Deferred method called");
4203 fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 1209);
4204 nit_exit(1);
4205 tracehead = trace.prev;
4206 return NIT_NULL;
4207 }
4208 val_t typing___ACallExpr___name(val_t self) {
4209 struct trace_t trace = {NULL, NULL, 1219, LOCATE_typing___ACallExpr___name};
4210 val_t variable[3];
4211 void **closurevariable = NULL;
4212 trace.prev = tracehead; tracehead = &trace;
4213 trace.file = LOCATE_typing;
4214 variable[0] = self;
4215 variable[2] = variable[0];
4216 variable[2] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[2],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[2]) /*ACallFormExpr::n_id*/;
4217 variable[2] = ((syntax_base___Token___to_symbol_t)CALL(variable[2],COLOR_syntax_base___Token___to_symbol))(variable[2]) /*Token::to_symbol*/;
4218 variable[1] = variable[2];
4219 goto return_label134;
4220 return_label134: while(false);
4221 tracehead = trace.prev;
4222 return variable[1];
4223 }
4224 val_t typing___ACallExpr___raw_arguments(val_t self) {
4225 struct trace_t trace = {NULL, NULL, 1220, LOCATE_typing___ACallExpr___raw_arguments};
4226 val_t variable[3];
4227 void **closurevariable = NULL;
4228 trace.prev = tracehead; tracehead = &trace;
4229 trace.file = LOCATE_typing;
4230 variable[0] = self;
4231 variable[2] = variable[0];
4232 variable[2] = ((parser_nodes___ACallFormExpr___n_args_t)CALL(variable[2],COLOR_parser_nodes___ACallFormExpr___n_args))(variable[2]) /*ACallFormExpr::n_args*/;
4233 variable[2] = ((array___Collection___to_a_t)CALL(variable[2],COLOR_array___Collection___to_a))(variable[2]) /*Collection::to_a*/;
4234 variable[1] = variable[2];
4235 goto return_label135;
4236 return_label135: while(false);
4237 tracehead = trace.prev;
4238 return variable[1];
4239 }
4240 val_t typing___ACallExpr___variable_create(val_t self, val_t param0) {
4241 struct trace_t trace = {NULL, NULL, 1214, LOCATE_typing___ACallExpr___variable_create};
4242 val_t variable[5];
4243 void **closurevariable = NULL;
4244 trace.prev = tracehead; tracehead = &trace;
4245 trace.file = LOCATE_typing;
4246 variable[0] = self;
4247 variable[1] = param0;
4248 variable[3] = variable[0];
4249 variable[3] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[3],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[3]) /*ACallFormExpr::n_id*/;
4250 variable[4] = NEW_AVarExpr_parser_prod___AVarExpr___init_avarexpr(variable[3]); /*new AVarExpr*/
4251 variable[3] = variable[4];
4252 variable[2] = variable[3];
4253 goto return_label136;
4254 return_label136: while(false);
4255 tracehead = trace.prev;
4256 return variable[2];
4257 }
4258 val_t typing___ACallAssignExpr___name(val_t self) {
4259 struct trace_t trace = {NULL, NULL, 1229, LOCATE_typing___ACallAssignExpr___name};
4260 val_t variable[4];
4261 void **closurevariable = NULL;
4262 trace.prev = tracehead; tracehead = &trace;
4263 trace.file = LOCATE_typing;
4264 variable[0] = self;
4265 variable[2] = variable[0];
4266 variable[2] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[2],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[2]) /*ACallFormExpr::n_id*/;
4267 variable[2] = ((lexer___Token___text_t)CALL(variable[2],COLOR_lexer___Token___text))(variable[2]) /*Token::text*/;
4268 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
4269 variable[2] = ((string___String_____plus_t)CALL(variable[2],COLOR_string___String_____plus))(variable[2], variable[3]) /*String::+*/;
4270 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
4271 variable[1] = variable[2];
4272 goto return_label137;
4273 return_label137: while(false);
4274 tracehead = trace.prev;
4275 return variable[1];
4276 }
4277 val_t typing___ACallAssignExpr___raw_arguments(val_t self) {
4278 struct trace_t trace = {NULL, NULL, 1230, LOCATE_typing___ACallAssignExpr___raw_arguments};
4279 val_t variable[4];
4280 void **closurevariable = NULL;
4281 trace.prev = tracehead; tracehead = &trace;
4282 trace.file = LOCATE_typing;
4283 variable[0] = self;
4284 variable[3] = variable[0];
4285 variable[3] = ((parser_nodes___ACallFormExpr___n_args_t)CALL(variable[3],COLOR_parser_nodes___ACallFormExpr___n_args))(variable[3]) /*ACallFormExpr::n_args*/;
4286 variable[3] = ((array___Collection___to_a_t)CALL(variable[3],COLOR_array___Collection___to_a))(variable[3]) /*Collection::to_a*/;
4287 variable[2] = variable[3];
4288 variable[3] = variable[0];
4289 variable[3] = ((parser_nodes___AAssignFormExpr___n_value_t)CALL(variable[3],COLOR_parser_nodes___AAssignFormExpr___n_value))(variable[3]) /*AAssignFormExpr::n_value*/;
4290 ((array___AbstractArray___add_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*res*/, variable[3]) /*AbstractArray::add*/;
4291 variable[1] = variable[2] /*res*/;
4292 goto return_label138;
4293 return_label138: while(false);
4294 tracehead = trace.prev;
4295 return variable[1];
4296 }
4297 val_t typing___ACallAssignExpr___variable_create(val_t self, val_t param0) {
4298 struct trace_t trace = {NULL, NULL, 1224, LOCATE_typing___ACallAssignExpr___variable_create};
4299 val_t variable[7];
4300 void **closurevariable = NULL;
4301 trace.prev = tracehead; tracehead = &trace;
4302 trace.file = LOCATE_typing;
4303 variable[0] = self;
4304 variable[1] = param0;
4305 variable[3] = variable[0];
4306 variable[3] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[3],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[3]) /*ACallFormExpr::n_id*/;
4307 variable[4] = variable[0];
4308 variable[4] = ((parser_nodes___AAssignFormExpr___n_assign_t)CALL(variable[4],COLOR_parser_nodes___AAssignFormExpr___n_assign))(variable[4]) /*AAssignFormExpr::n_assign*/;
4309 variable[5] = variable[0];
4310 variable[5] = ((parser_nodes___AAssignFormExpr___n_value_t)CALL(variable[5],COLOR_parser_nodes___AAssignFormExpr___n_value))(variable[5]) /*AAssignFormExpr::n_value*/;
4311 variable[6] = NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___init_avarassignexpr(variable[3], variable[4], variable[5]); /*new AVarAssignExpr*/
4312 variable[3] = variable[6];
4313 variable[2] = variable[3];
4314 goto return_label139;
4315 return_label139: while(false);
4316 tracehead = trace.prev;
4317 return variable[2];
4318 }
4319 val_t typing___ACallReassignExpr___name(val_t self) {
4320 struct trace_t trace = {NULL, NULL, 1244, LOCATE_typing___ACallReassignExpr___name};
4321 val_t variable[3];
4322 void **closurevariable = NULL;
4323 trace.prev = tracehead; tracehead = &trace;
4324 trace.file = LOCATE_typing;
4325 variable[0] = self;
4326 variable[2] = variable[0];
4327 variable[2] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[2],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[2]) /*ACallFormExpr::n_id*/;
4328 variable[2] = ((syntax_base___Token___to_symbol_t)CALL(variable[2],COLOR_syntax_base___Token___to_symbol))(variable[2]) /*Token::to_symbol*/;
4329 variable[1] = variable[2];
4330 goto return_label140;
4331 return_label140: while(false);
4332 tracehead = trace.prev;
4333 return variable[1];
4334 }
4335 val_t typing___ACallReassignExpr___raw_arguments(val_t self) {
4336 struct trace_t trace = {NULL, NULL, 1245, LOCATE_typing___ACallReassignExpr___raw_arguments};
4337 val_t variable[3];
4338 void **closurevariable = NULL;
4339 trace.prev = tracehead; tracehead = &trace;
4340 trace.file = LOCATE_typing;
4341 variable[0] = self;
4342 variable[2] = variable[0];
4343 variable[2] = ((parser_nodes___ACallFormExpr___n_args_t)CALL(variable[2],COLOR_parser_nodes___ACallFormExpr___n_args))(variable[2]) /*ACallFormExpr::n_args*/;
4344 variable[2] = ((array___Collection___to_a_t)CALL(variable[2],COLOR_array___Collection___to_a))(variable[2]) /*Collection::to_a*/;
4345 variable[1] = variable[2];
4346 goto return_label141;
4347 return_label141: while(false);
4348 tracehead = trace.prev;
4349 return variable[1];
4350 }
4351 val_t typing___ACallReassignExpr___variable_create(val_t self, val_t param0) {
4352 struct trace_t trace = {NULL, NULL, 1239, LOCATE_typing___ACallReassignExpr___variable_create};
4353 val_t variable[7];
4354 void **closurevariable = NULL;
4355 trace.prev = tracehead; tracehead = &trace;
4356 trace.file = LOCATE_typing;
4357 variable[0] = self;
4358 variable[1] = param0;
4359 variable[3] = variable[0];
4360 variable[3] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[3],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[3]) /*ACallFormExpr::n_id*/;
4361 variable[4] = variable[0];
4362 variable[4] = ((parser_nodes___AReassignFormExpr___n_assign_op_t)CALL(variable[4],COLOR_parser_nodes___AReassignFormExpr___n_assign_op))(variable[4]) /*AReassignFormExpr::n_assign_op*/;
4363 variable[5] = variable[0];
4364 variable[5] = ((parser_nodes___AReassignFormExpr___n_value_t)CALL(variable[5],COLOR_parser_nodes___AReassignFormExpr___n_value))(variable[5]) /*AReassignFormExpr::n_value*/;
4365 variable[6] = NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___init_avarreassignexpr(variable[3], variable[4], variable[5]); /*new AVarReassignExpr*/
4366 variable[3] = variable[6];
4367 variable[2] = variable[3];
4368 goto return_label142;
4369 return_label142: while(false);
4370 tracehead = trace.prev;
4371 return variable[2];
4372 }
4373 val_t typing___ABraExpr___name(val_t self) {
4374 struct trace_t trace = {NULL, NULL, 1249, LOCATE_typing___ABraExpr___name};
4375 static val_t once_value_144; static int once_bool_144; /* Once value for variable[2]*/
4376 val_t variable[3];
4377 void **closurevariable = NULL;
4378 trace.prev = tracehead; tracehead = &trace;
4379 trace.file = LOCATE_typing;
4380 variable[0] = self;
4381 if (once_bool_144) variable[2] = once_value_144;
4382 else {
4383 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
4384 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
4385 once_value_144 = variable[2];
4386 once_bool_144 = true;
4387 }
4388 variable[1] = variable[2];
4389 goto return_label143;
4390 return_label143: while(false);
4391 tracehead = trace.prev;
4392 return variable[1];
4393 }
4394 val_t typing___ABraExpr___raw_arguments(val_t self) {
4395 struct trace_t trace = {NULL, NULL, 1250, LOCATE_typing___ABraExpr___raw_arguments};
4396 val_t variable[3];
4397 void **closurevariable = NULL;
4398 trace.prev = tracehead; tracehead = &trace;
4399 trace.file = LOCATE_typing;
4400 variable[0] = self;
4401 variable[2] = variable[0];
4402 variable[2] = ((parser_nodes___ABraFormExpr___n_args_t)CALL(variable[2],COLOR_parser_nodes___ABraFormExpr___n_args))(variable[2]) /*ABraFormExpr::n_args*/;
4403 variable[2] = ((array___Collection___to_a_t)CALL(variable[2],COLOR_array___Collection___to_a))(variable[2]) /*Collection::to_a*/;
4404 variable[1] = variable[2];
4405 goto return_label145;
4406 return_label145: while(false);
4407 tracehead = trace.prev;
4408 return variable[1];
4409 }
4410 val_t typing___ABraAssignExpr___name(val_t self) {
4411 struct trace_t trace = {NULL, NULL, 1254, LOCATE_typing___ABraAssignExpr___name};
4412 static val_t once_value_147; static int once_bool_147; /* Once value for variable[2]*/
4413 val_t variable[3];
4414 void **closurevariable = NULL;
4415 trace.prev = tracehead; tracehead = &trace;
4416 trace.file = LOCATE_typing;
4417 variable[0] = self;
4418 if (once_bool_147) variable[2] = once_value_147;
4419 else {
4420 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("[]="), TAG_Int(3)); /*new String*/
4421 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
4422 once_value_147 = variable[2];
4423 once_bool_147 = true;
4424 }
4425 variable[1] = variable[2];
4426 goto return_label146;
4427 return_label146: while(false);
4428 tracehead = trace.prev;
4429 return variable[1];
4430 }
4431 val_t typing___ABraAssignExpr___raw_arguments(val_t self) {
4432 struct trace_t trace = {NULL, NULL, 1255, LOCATE_typing___ABraAssignExpr___raw_arguments};
4433 val_t variable[4];
4434 void **closurevariable = NULL;
4435 trace.prev = tracehead; tracehead = &trace;
4436 trace.file = LOCATE_typing;
4437 variable[0] = self;
4438 variable[3] = variable[0];
4439 variable[3] = ((parser_nodes___ABraFormExpr___n_args_t)CALL(variable[3],COLOR_parser_nodes___ABraFormExpr___n_args))(variable[3]) /*ABraFormExpr::n_args*/;
4440 variable[3] = ((array___Collection___to_a_t)CALL(variable[3],COLOR_array___Collection___to_a))(variable[3]) /*Collection::to_a*/;
4441 variable[2] = variable[3];
4442 variable[3] = variable[0];
4443 variable[3] = ((parser_nodes___AAssignFormExpr___n_value_t)CALL(variable[3],COLOR_parser_nodes___AAssignFormExpr___n_value))(variable[3]) /*AAssignFormExpr::n_value*/;
4444 ((array___AbstractArray___add_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*res*/, variable[3]) /*AbstractArray::add*/;
4445 variable[1] = variable[2] /*res*/;
4446 goto return_label148;
4447 return_label148: while(false);
4448 tracehead = trace.prev;
4449 return variable[1];
4450 }
4451 val_t typing___ABraReassignExpr___name(val_t self) {
4452 struct trace_t trace = {NULL, NULL, 1264, LOCATE_typing___ABraReassignExpr___name};
4453 static val_t once_value_150; static int once_bool_150; /* Once value for variable[2]*/
4454 val_t variable[3];
4455 void **closurevariable = NULL;
4456 trace.prev = tracehead; tracehead = &trace;
4457 trace.file = LOCATE_typing;
4458 variable[0] = self;
4459 if (once_bool_150) variable[2] = once_value_150;
4460 else {
4461 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
4462 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
4463 once_value_150 = variable[2];
4464 once_bool_150 = true;
4465 }
4466 variable[1] = variable[2];
4467 goto return_label149;
4468 return_label149: while(false);
4469 tracehead = trace.prev;
4470 return variable[1];
4471 }
4472 val_t typing___ABraReassignExpr___raw_arguments(val_t self) {
4473 struct trace_t trace = {NULL, NULL, 1265, LOCATE_typing___ABraReassignExpr___raw_arguments};
4474 val_t variable[3];
4475 void **closurevariable = NULL;
4476 trace.prev = tracehead; tracehead = &trace;
4477 trace.file = LOCATE_typing;
4478 variable[0] = self;
4479 variable[2] = variable[0];
4480 variable[2] = ((parser_nodes___ABraFormExpr___n_args_t)CALL(variable[2],COLOR_parser_nodes___ABraFormExpr___n_args))(variable[2]) /*ABraFormExpr::n_args*/;
4481 variable[2] = ((array___Collection___to_a_t)CALL(variable[2],COLOR_array___Collection___to_a))(variable[2]) /*Collection::to_a*/;
4482 variable[1] = variable[2];
4483 goto return_label151;
4484 return_label151: while(false);
4485 tracehead = trace.prev;
4486 return variable[1];
4487 }
4488 val_t typing___AInitExpr___name(val_t self) {
4489 struct trace_t trace = {NULL, NULL, 1269, LOCATE_typing___AInitExpr___name};
4490 static val_t once_value_153; static int once_bool_153; /* Once value for variable[2]*/
4491 val_t variable[3];
4492 void **closurevariable = NULL;
4493 trace.prev = tracehead; tracehead = &trace;
4494 trace.file = LOCATE_typing;
4495 variable[0] = self;
4496 if (once_bool_153) variable[2] = once_value_153;
4497 else {
4498 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
4499 variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
4500 once_value_153 = variable[2];
4501 once_bool_153 = true;
4502 }
4503 variable[1] = variable[2];
4504 goto return_label152;
4505 return_label152: while(false);
4506 tracehead = trace.prev;
4507 return variable[1];
4508 }
4509 val_t typing___AInitExpr___raw_arguments(val_t self) {
4510 struct trace_t trace = {NULL, NULL, 1270, LOCATE_typing___AInitExpr___raw_arguments};
4511 val_t variable[3];
4512 void **closurevariable = NULL;
4513 trace.prev = tracehead; tracehead = &trace;
4514 trace.file = LOCATE_typing;
4515 variable[0] = self;
4516 variable[2] = variable[0];
4517 variable[2] = ((parser_nodes___AInitExpr___n_args_t)CALL(variable[2],COLOR_parser_nodes___AInitExpr___n_args))(variable[2]) /*AInitExpr::n_args*/;
4518 variable[2] = ((array___Collection___to_a_t)CALL(variable[2],COLOR_array___Collection___to_a))(variable[2]) /*Collection::to_a*/;
4519 variable[1] = variable[2];
4520 goto return_label154;
4521 return_label154: while(false);
4522 tracehead = trace.prev;
4523 return variable[1];
4524 }
4525 void typing___AClosureCallExpr___after_typing(val_t self, val_t param0) {
4526 struct trace_t trace = {NULL, NULL, 1274, LOCATE_typing___AClosureCallExpr___after_typing};
4527 val_t variable[9];
4528 void **closurevariable = NULL;
4529 trace.prev = tracehead; tracehead = &trace;
4530 trace.file = LOCATE_typing;
4531 variable[0] = self;
4532 variable[1] = param0;
4533 variable[4] = variable[0];
4534 variable[4] = ((syntax_base___AClosureCallExpr___variable_t)CALL(variable[4],COLOR_syntax_base___AClosureCallExpr___variable))(variable[4]) /*AClosureCallExpr::variable*/;
4535 variable[3] = variable[4];
4536 variable[5] = ((syntax_base___ClosureVariable___closure_t)CALL( variable[3] /*va*/,COLOR_syntax_base___ClosureVariable___closure))( variable[3] /*va*/) /*ClosureVariable::closure*/;
4537 variable[5] = ((static_type___MMClosure___signature_t)CALL(variable[5],COLOR_static_type___MMClosure___signature))(variable[5]) /*MMClosure::signature*/;
4538 variable[4] = variable[5];
4539 variable[6] = variable[0];
4540 variable[7] = variable[0];
4541 variable[7] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[7],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[7]) /*ACallFormExpr::n_id*/;
4542 variable[7] = ((syntax_base___Token___to_symbol_t)CALL(variable[7],COLOR_syntax_base___Token___to_symbol))(variable[7]) /*Token::to_symbol*/;
4543 variable[8] = variable[0];
4544 variable[8] = ((parser_nodes___ACallFormExpr___n_args_t)CALL(variable[8],COLOR_parser_nodes___ACallFormExpr___n_args))(variable[8]) /*ACallFormExpr::n_args*/;
4545 variable[8] = ((array___Collection___to_a_t)CALL(variable[8],COLOR_array___Collection___to_a))(variable[8]) /*Collection::to_a*/;
4546 variable[6] = ((typing___AAbsSendExpr___process_signature_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___process_signature))(variable[6], variable[1] /*v*/, variable[4] /*sig*/, variable[7], variable[8]) /*AAbsSendExpr::process_signature*/;
4547 variable[5] = variable[6];
4548 variable[6] = variable[0];
4549 variable[6] = ((typing___ACallFormExpr___closure_defs_t)CALL(variable[6],COLOR_typing___ASendExpr___closure_defs))(variable[6]) /*ACallFormExpr::closure_defs*/;
4550 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] == NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6], NIT_NULL /*null*/) /*Object::==*/)))))));
4551 if (UNTAG_Bool(variable[6])) { /*if*/
4552 variable[6] = variable[0];
4553 variable[7] = variable[0];
4554 variable[7] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[7],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[7]) /*ACallFormExpr::n_id*/;
4555 variable[7] = ((syntax_base___Token___to_symbol_t)CALL(variable[7],COLOR_syntax_base___Token___to_symbol))(variable[7]) /*Token::to_symbol*/;
4556 variable[8] = variable[0];
4557 variable[8] = ((typing___ACallFormExpr___closure_defs_t)CALL(variable[8],COLOR_typing___ASendExpr___closure_defs))(variable[8]) /*ACallFormExpr::closure_defs*/;
4558 ((typing___AAbsSendExpr___process_closures_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___process_closures))(variable[6], variable[1] /*v*/, variable[4] /*sig*/, variable[7], variable[8]) /*AAbsSendExpr::process_closures*/;
4559 }
4560 variable[6] = TAG_Bool(( variable[5] /*args*/ == NIT_NULL /*null*/) || (( variable[5] /*args*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable[5] /*args*/,COLOR_kernel___Object_____eqeq))( variable[5] /*args*/, NIT_NULL /*null*/) /*AbstractArray::==*/)));
4561 if (UNTAG_Bool(variable[6])) { /*if*/
4562 goto return_label155;
4563 }
4564 variable[6] = variable[0];
4565 ATTR_typing___AAbsSendExpr____prop(variable[6]) /*AAbsSendExpr::_prop*/ = NIT_NULL /*null*/;
4566 variable[6] = variable[0];
4567 ATTR_typing___AAbsSendExpr____prop_signature(variable[6]) /*AAbsSendExpr::_prop_signature*/ = variable[4] /*sig*/;
4568 variable[6] = variable[0];
4569 ATTR_typing___AAbsSendExpr____arguments(variable[6]) /*AAbsSendExpr::_arguments*/ = variable[5] /*args*/;
4570 variable[6] = variable[0];
4571 variable[7] = ((static_type___MMSignature___return_type_t)CALL( variable[4] /*sig*/,COLOR_static_type___MMSignature___return_type))( variable[4] /*sig*/) /*MMSignature::return_type*/;
4572 ATTR_typing___PExpr____stype(variable[6]) /*PExpr::_stype*/ = variable[7];
4573 return_label155: while(false);
4574 tracehead = trace.prev;
4575 return;
4576 }
4577 void typing___PClosureDef___accept_typing(val_t self, val_t param0) {
4578 struct trace_t trace = {NULL, NULL, 1292, LOCATE_typing___PClosureDef___accept_typing};
4579 val_t variable[4];
4580 void **closurevariable = NULL;
4581 trace.prev = tracehead; tracehead = &trace;
4582 trace.file = LOCATE_typing;
4583 variable[0] = self;
4584 variable[1] = param0;
4585 variable[3] = variable[0];
4586 variable[3] = ATTR_typing___PClosureDef____accept_typing2(variable[3]) /*PClosureDef::_accept_typing2*/;
4587 if (UNTAG_Bool(variable[3])) { /*if*/
4588 ((typing___PClosureDef___accept_typing_t)CALL(variable[0],COLOR_SUPER_typing___PClosureDef___accept_typing))(variable[0], variable[1]) /*super PClosureDef::accept_typing*/;
4589 }
4590 return_label156: while(false);
4591 tracehead = trace.prev;
4592 return;
4593 }
4594 void typing___PClosureDef___accept_typing2(val_t self, val_t param0, val_t param1) {
4595 struct trace_t trace = {NULL, NULL, 1298, LOCATE_typing___PClosureDef___accept_typing2};
4596 val_t *variable = NULL;
4597 void **closurevariable = NULL;
4598 trace.prev = tracehead; tracehead = &trace;
4599 trace.file = LOCATE_typing;
4600 fprintf(stderr, "Deferred method called");
4601 fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 1298);
4602 nit_exit(1);
4603 tracehead = trace.prev;
4604 return;
4605 }
4606 void typing___AClosureDef___accept_typing2(val_t self, val_t param0, val_t param1) {
4607 struct trace_t trace = {NULL, NULL, 1302, LOCATE_typing___AClosureDef___accept_typing2};
4608 val_t variable[17];
4609 void **closurevariable = NULL;
4610 trace.prev = tracehead; tracehead = &trace;
4611 trace.file = LOCATE_typing;
4612 variable[0] = self;
4613 variable[1] = param0;
4614 variable[2] = param1;
4615 variable[5] = ((static_type___MMClosure___signature_t)CALL( variable[2] /*clos*/,COLOR_static_type___MMClosure___signature))( variable[2] /*clos*/) /*MMClosure::signature*/;
4616 variable[4] = variable[5];
4617 variable[5] = ((static_type___MMSignature___arity_t)CALL( variable[4] /*sig*/,COLOR_static_type___MMSignature___arity))( variable[4] /*sig*/) /*MMSignature::arity*/;
4618 variable[6] = variable[0];
4619 variable[6] = ((parser_nodes___AClosureDef___n_id_t)CALL(variable[6],COLOR_parser_nodes___AClosureDef___n_id))(variable[6]) /*AClosureDef::n_id*/;
4620 variable[6] = ((list___List___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*List::length*/;
4621 variable[5] = TAG_Bool((variable[5])!=(variable[6]));
4622 if (UNTAG_Bool(variable[5])) { /*if*/
4623 variable[5] = variable[0];
4624 variable[6] = NEW_String_string___String___init(); /*new String*/
4625 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
4626 variable[8] = variable[7];
4627 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
4628 variable[9] = ((static_type___MMSignature___arity_t)CALL( variable[4] /*sig*/,COLOR_static_type___MMSignature___arity))( variable[4] /*sig*/) /*MMSignature::arity*/;
4629 variable[10] = variable[9];
4630 variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
4631 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
4632 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" automatic variable names expected, "), TAG_Int(36)); /*new String*/
4633 variable[12] = variable[11];
4634 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
4635 variable[13] = variable[0];
4636 variable[13] = ((parser_nodes___AClosureDef___n_id_t)CALL(variable[13],COLOR_parser_nodes___AClosureDef___n_id))(variable[13]) /*AClosureDef::n_id*/;
4637 variable[13] = ((list___List___length_t)CALL(variable[13],COLOR_abstract_collection___Collection___length))(variable[13]) /*List::length*/;
4638 variable[14] = variable[13];
4639 variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
4640 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
4641 variable[15] = NEW_String_string___String___with_native(BOX_NativeString(" found."), TAG_Int(7)); /*new String*/
4642 variable[16] = variable[15];
4643 ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/;
4644 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
4645 goto return_label157;
4646 }
4647 variable[5] = variable[0];
4648 ((syntax_base___PClosureDef___closure__eq_t)CALL(variable[5],COLOR_syntax_base___PClosureDef___closure__eq))(variable[5], variable[2] /*clos*/) /*PClosureDef::closure=*/;
4649 variable[6] = ((typing___TypingVisitor___closure_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure))( variable[1] /*v*/) /*TypingVisitor::closure*/;
4650 variable[5] = variable[6];
4651 ((typing___TypingVisitor___closure__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure__eq))( variable[1] /*v*/, variable[2] /*clos*/) /*TypingVisitor::closure=*/;
4652 variable[6] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
4653 variable[6] = ((typing___VariableContext___sub_t)CALL(variable[6],COLOR_typing___VariableContext___sub))(variable[6]) /*VariableContext::sub*/;
4654 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[6]) /*TypingVisitor::variable_ctx=*/;
4655 variable[6] = variable[0];
4656 variable[7] = NEW_Array_array___Array___init(); /*new Array[AutoVariable]*/
4657 ((syntax_base___PClosureDef___variables__eq_t)CALL(variable[6],COLOR_syntax_base___PClosureDef___variables__eq))(variable[6], variable[7]) /*PClosureDef::variables=*/;
4658 variable[6] = variable[0];
4659 variable[6] = ((parser_nodes___AClosureDef___n_id_t)CALL(variable[6],COLOR_parser_nodes___AClosureDef___n_id))(variable[6]) /*AClosureDef::n_id*/;
4660 variable[6] = ((list___List___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*List::length*/;
4661 variable[7] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[6]); /*new Range[Int]*/
4662 variable[6] = variable[7];
4663 variable[6] = ((range___Range___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*Range::iterator*/;
4664 while (true) { /*for*/
4665 variable[7] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*Iterator::is_ok*/;
4666 if (!UNTAG_Bool(variable[7])) break; /*for*/
4667 variable[7] = ((abstract_collection___Iterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*Iterator::item*/;
4668 variable[8] = variable[7];
4669 variable[10] = variable[0];
4670 variable[10] = ((parser_nodes___AClosureDef___n_id_t)CALL(variable[10],COLOR_parser_nodes___AClosureDef___n_id))(variable[10]) /*AClosureDef::n_id*/;
4671 variable[10] = ((list___List_____bra_t)CALL(variable[10],COLOR_abstract_collection___Map_____bra))(variable[10], variable[8] /*i*/) /*List::[]*/;
4672 variable[10] = ((syntax_base___Token___to_symbol_t)CALL(variable[10],COLOR_syntax_base___Token___to_symbol))(variable[10]) /*Token::to_symbol*/;
4673 variable[11] = variable[0];
4674 variable[12] = NEW_AutoVariable_syntax_base___AutoVariable___init(variable[10], variable[11]); /*new AutoVariable*/
4675 variable[10] = variable[12];
4676 variable[9] = variable[10];
4677 variable[10] = variable[0];
4678 variable[10] = ((syntax_base___PClosureDef___variables_t)CALL(variable[10],COLOR_syntax_base___PClosureDef___variables))(variable[10]) /*PClosureDef::variables*/;
4679 ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10], variable[9] /*va*/) /*AbstractArray::add*/;
4680 variable[10] = ((static_type___MMSignature_____bra_t)CALL( variable[4] /*sig*/,COLOR_static_type___MMSignature_____bra))( variable[4] /*sig*/, variable[8] /*i*/) /*MMSignature::[]*/;
4681 ((syntax_base___Variable___stype__eq_t)CALL( variable[9] /*va*/,COLOR_syntax_base___Variable___stype__eq))( variable[9] /*va*/, variable[10]) /*Variable::stype=*/;
4682 variable[10] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
4683 ((typing___VariableContext___add_t)CALL(variable[10],COLOR_typing___VariableContext___add))(variable[10], variable[9] /*va*/) /*VariableContext::add*/;
4684 continue_158: while(0);
4685 ((abstract_collection___Iterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*Iterator::next*/;
4686 }
4687 break_158: while(0);
4688 variable[6] = variable[0];
4689 ATTR_typing___PClosureDef____accept_typing2(variable[6]) /*PClosureDef::_accept_typing2*/ = TAG_Bool(true);
4690 variable[6] = variable[0];
4691 ((typing___PClosureDef___accept_typing_t)CALL(variable[6],COLOR_typing___PNode___accept_typing))(variable[6], variable[1] /*v*/) /*PClosureDef::accept_typing*/;
4692 ((typing___TypingVisitor___closure__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure__eq))( variable[1] /*v*/, variable[5] /*old_clos*/) /*TypingVisitor::closure=*/;
4693 return_label157: while(false);
4694 tracehead = trace.prev;
4695 return;
4696 }
4697 void typing___AIsaExpr___after_typing(val_t self, val_t param0) {
4698 struct trace_t trace = {NULL, NULL, 1332, LOCATE_typing___AIsaExpr___after_typing};
4699 val_t variable[7];
4700 void **closurevariable = NULL;
4701 trace.prev = tracehead; tracehead = &trace;
4702 trace.file = LOCATE_typing;
4703 variable[0] = self;
4704 variable[1] = param0;
4705 variable[4] = variable[0];
4706 variable[4] = ((parser_nodes___AIsaExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIsaExpr___n_expr))(variable[4]) /*AIsaExpr::n_expr*/;
4707 variable[4] = ((typing___PExpr___its_variable_t)CALL(variable[4],COLOR_typing___PExpr___its_variable))(variable[4]) /*PExpr::its_variable*/;
4708 variable[3] = variable[4];
4709 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*variable*/ == NIT_NULL /*null*/) || (( variable[3] /*variable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*variable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*variable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*variable*/,COLOR_kernel___Object_____eqeq))( variable[3] /*variable*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4710 if (UNTAG_Bool(variable[4])) { /*if*/
4711 variable[4] = variable[0];
4712 variable[5] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
4713 variable[6] = variable[0];
4714 variable[6] = ((parser_nodes___AIsaExpr___n_type_t)CALL(variable[6],COLOR_parser_nodes___AIsaExpr___n_type))(variable[6]) /*AIsaExpr::n_type*/;
4715 variable[6] = ((typing___PType___stype_t)CALL(variable[6],COLOR_typing___PType___stype))(variable[6]) /*PType::stype*/;
4716 variable[5] = ((typing___VariableContext___sub_with_t)CALL(variable[5],COLOR_typing___VariableContext___sub_with))(variable[5], variable[3] /*variable*/, variable[6]) /*VariableContext::sub_with*/;
4717 ATTR_typing___PExpr____if_true_variable_ctx(variable[4]) /*PExpr::_if_true_variable_ctx*/ = variable[5];
4718 }
4719 variable[4] = variable[0];
4720 variable[5] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
4721 ATTR_typing___PExpr____stype(variable[4]) /*PExpr::_stype*/ = variable[5];
4722 return_label159: while(false);
4723 tracehead = trace.prev;
4724 return;
4725 }
4726 void typing___AAsCastExpr___after_typing(val_t self, val_t param0) {
4727 struct trace_t trace = {NULL, NULL, 1343, LOCATE_typing___AAsCastExpr___after_typing};
4728 val_t variable[5];
4729 void **closurevariable = NULL;
4730 trace.prev = tracehead; tracehead = &trace;
4731 trace.file = LOCATE_typing;
4732 variable[0] = self;
4733 variable[1] = param0;
4734 variable[3] = variable[0];
4735 variable[3] = ((parser_nodes___AAsCastExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AAsCastExpr___n_expr))(variable[3]) /*AAsCastExpr::n_expr*/;
4736 ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_expr))( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::check_expr*/;
4737 variable[3] = variable[0];
4738 variable[4] = variable[0];
4739 variable[4] = ((parser_nodes___AAsCastExpr___n_type_t)CALL(variable[4],COLOR_parser_nodes___AAsCastExpr___n_type))(variable[4]) /*AAsCastExpr::n_type*/;
4740 variable[4] = ((typing___PType___stype_t)CALL(variable[4],COLOR_typing___PType___stype))(variable[4]) /*PType::stype*/;
4741 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
4742 return_label160: while(false);
4743 tracehead = trace.prev;
4744 return;
4745 }
4746 void typing___AProxyExpr___after_typing(val_t self, val_t param0) {
4747 struct trace_t trace = {NULL, NULL, 1351, LOCATE_typing___AProxyExpr___after_typing};
4748 val_t variable[5];
4749 void **closurevariable = NULL;
4750 trace.prev = tracehead; tracehead = &trace;
4751 trace.file = LOCATE_typing;
4752 variable[0] = self;
4753 variable[1] = param0;
4754 variable[3] = variable[0];
4755 variable[4] = variable[0];
4756 variable[4] = ((parser_nodes___AProxyExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AProxyExpr___n_expr))(variable[4]) /*AProxyExpr::n_expr*/;
4757 variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
4758 ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
4759 return_label161: while(false);
4760 tracehead = trace.prev;
4761 return;
4762 }