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