2a38c5fde84ebbf83fc782b86041323a7227217b
[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 variable0;
6 val_t variable1;
7 val_t variable2;
8 trace.prev = tracehead; tracehead = &trace;
9 trace.file = LOCATE_typing;
10 variable0 = param0;
11 variable2 = NEW_typing___TypingVisitor___init( variable0 /*tc*/, self); /*new TypingVisitor*/
12 variable1 = variable2;
13 variable2 = ((syntax_base___MMSrcModule___node_t)CALL( self,COLOR_syntax_base___MMSrcModule___node))( self) /*MMSrcModule::node*/;
14 ((typing___TypingVisitor___visit_t)CALL( variable1 /*tv*/,COLOR_parser_prod___Visitor___visit))( variable1 /*tv*/, variable2) /*TypingVisitor::visit*/;
15 tracehead = trace.prev;
16 return;
17 }
18 void typing___TypingVisitor___visit(val_t self, val_t param0) {
19 struct trace_t trace = {NULL, NULL, 39, LOCATE_typing___TypingVisitor___visit};
20 val_t variable0;
21 val_t variable1;
22 trace.prev = tracehead; tracehead = &trace;
23 trace.file = LOCATE_typing;
24 variable0 = param0;
25 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*n*/ == NIT_NULL /*null*/) || (( variable0 /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*n*/,COLOR_kernel___Object_____eqeq))( variable0 /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
26 if (UNTAG_Bool(variable1)) { /*if*/
27 ((typing___PNode___accept_typing_t)CALL( variable0 /*n*/,COLOR_typing___PNode___accept_typing))( variable0 /*n*/, self) /*PNode::accept_typing*/;
28 }
29 tracehead = trace.prev;
30 return;
31 }
32 val_t typing___TypingVisitor___variable_ctx(val_t self) {
33 struct trace_t trace = {NULL, NULL, 44, LOCATE_typing___TypingVisitor___variable_ctx};
34 trace.prev = tracehead; tracehead = &trace;
35 trace.file = LOCATE_typing;
36 tracehead = trace.prev;
37 return ATTR_typing___TypingVisitor____variable_ctx( self) /*TypingVisitor::_variable_ctx*/;
38 }
39 void typing___TypingVisitor___variable_ctx__eq(val_t self, val_t param0) {
40 struct trace_t trace = {NULL, NULL, 44, LOCATE_typing___TypingVisitor___variable_ctx__eq};
41 trace.prev = tracehead; tracehead = &trace;
42 trace.file = LOCATE_typing;
43 ATTR_typing___TypingVisitor____variable_ctx( self) /*TypingVisitor::_variable_ctx*/ = param0;
44 tracehead = trace.prev;
45 return;
46 }
47 val_t typing___TypingVisitor___self_type(val_t self) {
48 struct trace_t trace = {NULL, NULL, 47, LOCATE_typing___TypingVisitor___self_type};
49 trace.prev = tracehead; tracehead = &trace;
50 trace.file = LOCATE_typing;
51 tracehead = trace.prev;
52 return ATTR_typing___TypingVisitor____self_type( self) /*TypingVisitor::_self_type*/;
53 }
54 void typing___TypingVisitor___self_type__eq(val_t self, val_t param0) {
55 struct trace_t trace = {NULL, NULL, 47, LOCATE_typing___TypingVisitor___self_type__eq};
56 trace.prev = tracehead; tracehead = &trace;
57 trace.file = LOCATE_typing;
58 ATTR_typing___TypingVisitor____self_type( self) /*TypingVisitor::_self_type*/ = param0;
59 tracehead = trace.prev;
60 return;
61 }
62 val_t typing___TypingVisitor___top_block(val_t self) {
63 struct trace_t trace = {NULL, NULL, 50, LOCATE_typing___TypingVisitor___top_block};
64 trace.prev = tracehead; tracehead = &trace;
65 trace.file = LOCATE_typing;
66 tracehead = trace.prev;
67 return ATTR_typing___TypingVisitor____top_block( self) /*TypingVisitor::_top_block*/;
68 }
69 void typing___TypingVisitor___top_block__eq(val_t self, val_t param0) {
70 struct trace_t trace = {NULL, NULL, 50, LOCATE_typing___TypingVisitor___top_block__eq};
71 trace.prev = tracehead; tracehead = &trace;
72 trace.file = LOCATE_typing;
73 ATTR_typing___TypingVisitor____top_block( self) /*TypingVisitor::_top_block*/ = param0;
74 tracehead = trace.prev;
75 return;
76 }
77 val_t typing___TypingVisitor___explicit_super_init_calls(val_t self) {
78 struct trace_t trace = {NULL, NULL, 53, LOCATE_typing___TypingVisitor___explicit_super_init_calls};
79 trace.prev = tracehead; tracehead = &trace;
80 trace.file = LOCATE_typing;
81 tracehead = trace.prev;
82 return ATTR_typing___TypingVisitor____explicit_super_init_calls( self) /*TypingVisitor::_explicit_super_init_calls*/;
83 }
84 void typing___TypingVisitor___explicit_super_init_calls__eq(val_t self, val_t param0) {
85 struct trace_t trace = {NULL, NULL, 53, LOCATE_typing___TypingVisitor___explicit_super_init_calls__eq};
86 trace.prev = tracehead; tracehead = &trace;
87 trace.file = LOCATE_typing;
88 ATTR_typing___TypingVisitor____explicit_super_init_calls( self) /*TypingVisitor::_explicit_super_init_calls*/ = param0;
89 tracehead = trace.prev;
90 return;
91 }
92 val_t typing___TypingVisitor___explicit_other_init_call(val_t self) {
93 struct trace_t trace = {NULL, NULL, 56, LOCATE_typing___TypingVisitor___explicit_other_init_call};
94 trace.prev = tracehead; tracehead = &trace;
95 trace.file = LOCATE_typing;
96 tracehead = trace.prev;
97 return ATTR_typing___TypingVisitor____explicit_other_init_call( self) /*TypingVisitor::_explicit_other_init_call*/;
98 }
99 void typing___TypingVisitor___explicit_other_init_call__eq(val_t self, val_t param0) {
100 struct trace_t trace = {NULL, NULL, 56, LOCATE_typing___TypingVisitor___explicit_other_init_call__eq};
101 trace.prev = tracehead; tracehead = &trace;
102 trace.file = LOCATE_typing;
103 ATTR_typing___TypingVisitor____explicit_other_init_call( self) /*TypingVisitor::_explicit_other_init_call*/ = param0;
104 tracehead = trace.prev;
105 return;
106 }
107 void typing___TypingVisitor___init(val_t self, val_t param0, val_t param1, int* init_table) {
108 struct trace_t trace = {NULL, NULL, 59, LOCATE_typing___TypingVisitor___init};
109 val_t variable0;
110 val_t variable1;
111 trace.prev = tracehead; tracehead = &trace;
112 trace.file = LOCATE_typing;
113 variable0 = param0;
114 variable1 = param1;
115 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TypingVisitor].i]) return;
116 ((syntax_base___AbsSyntaxVisitor___init_t)CALL( self,COLOR_syntax_base___AbsSyntaxVisitor___init))( self, param0, param1, init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
117 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_TypingVisitor].i] = 1;
118 tracehead = trace.prev;
119 return;
120 }
121 val_t typing___TypingVisitor___get_default_constructor_for(val_t self, val_t param0, val_t param1, val_t param2) {
122 struct trace_t trace = {NULL, NULL, 61, LOCATE_typing___TypingVisitor___get_default_constructor_for};
123 val_t variable0;
124 val_t variable1;
125 val_t variable2;
126 val_t variable3;
127 val_t variable4;
128 val_t variable5;
129 val_t variable6;
130 val_t variable7;
131 val_t variable8;
132 val_t variable9;
133 val_t variable10;
134 val_t variable11;
135 val_t variable12;
136 val_t variable13;
137 val_t variable14;
138 val_t variable15;
139 val_t variable16;
140 trace.prev = tracehead; tracehead = &trace;
141 trace.file = LOCATE_typing;
142 variable0 = param0;
143 variable1 = param1;
144 variable2 = param2;
145 variable3 = self;
146 variable5 = NEW_array___Array___init(); /*new Array[E]*/
147 variable4 = variable5;
148 variable6 = NEW_array___Array___init(); /*new Array[E]*/
149 variable5 = variable6;
150 variable7 = ((static_type___MMLocalProperty___signature_t)CALL( variable2 /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable2 /*prop*/) /*MMLocalProperty::signature*/;
151 variable7 = ((static_type___MMSignature___arity_t)CALL(variable7,COLOR_static_type___MMSignature___arity))(variable7) /*MMSignature::arity*/;
152 variable6 = variable7;
153 variable7 = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable1 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable1 /*c*/) /*MMLocalClass::global_properties*/;
154 variable7 = ((abstract_collection___Collection___iterator_t)CALL(variable7,COLOR_abstract_collection___Collection___iterator))(variable7) /*Collection::iterator*/;
155 while (true) { /*for*/
156 variable8 = ((abstract_collection___Iterator___is_ok_t)CALL(variable7,COLOR_abstract_collection___Iterator___is_ok))(variable7) /*Iterator::is_ok*/;
157 if (!UNTAG_Bool(variable8)) break; /*for*/
158 variable8 = ((abstract_collection___Iterator___item_t)CALL(variable7,COLOR_abstract_collection___Iterator___item))(variable7) /*Iterator::item*/;
159 variable9 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable8 /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable8 /*g*/) /*MMGlobalProperty::is_init*/;
160 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable9)))) { /*if*/
161 goto continue_4;
162 }
163 variable9 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable8 /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable8 /*g*/) /*MMGlobalProperty::intro*/;
164 variable9 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable9,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable9) /*MMLocalProperty::local_class*/;
165 variable9 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable9 == variable1 /*c*/) || ((variable9 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable9,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable9, variable1 /*c*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable9,COLOR_kernel___Object_____eqeq))(variable9, variable1 /*c*/) /*Object::==*/)))))));
166 if (UNTAG_Bool(variable9)) { /*if*/
167 goto continue_4;
168 }
169 variable10 = ((inheritance___MMLocalClass_____bra_t)CALL( variable1 /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable1 /*c*/, variable8 /*g*/) /*MMLocalClass::[]*/;
170 variable9 = variable10;
171 variable10 = TAG_Bool(( variable9 /*gp*/==NIT_NULL) || VAL_ISA( variable9 /*gp*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
172 if (!UNTAG_Bool(variable10)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___TypingVisitor___get_default_constructor_for, LOCATE_typing, 73); nit_exit(1);}
173 variable11 = ((static_type___MMLocalProperty___signature_t)CALL( variable9 /*gp*/,COLOR_static_type___MMLocalProperty___signature))( variable9 /*gp*/) /*MMLocalProperty::signature*/;
174 variable11 = ((static_type___MMSignature___arity_t)CALL(variable11,COLOR_static_type___MMSignature___arity))(variable11) /*MMSignature::arity*/;
175 variable10 = variable11;
176 variable11 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*prop*/ == NIT_NULL /*null*/) || (( variable2 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*prop*/,COLOR_kernel___Object_____eqeq))( variable2 /*prop*/, NIT_NULL /*null*/) /*Object::==*/)))))));
177 variable12 = variable11;
178 if (UNTAG_Bool(variable12)) { /* and */
179 variable12 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable8 /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable8 /*g*/) /*MMGlobalProperty::intro*/;
180 variable12 = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable12,COLOR_abstractmetamodel___MMLocalProperty___name))(variable12) /*MMLocalProperty::name*/;
181 variable13 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable2 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable2 /*prop*/) /*MMLocalProperty::name*/;
182 variable12 = TAG_Bool((variable12 == variable13) || ((variable12 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable12,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable12,variable13)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable12,COLOR_kernel___Object_____eqeq))(variable12, variable13) /*Object::==*/)))));
183 }
184 variable11 = variable12;
185 if (UNTAG_Bool(variable11)) { /*if*/
186 variable11 = TAG_Bool(( variable10 /*garity*/)==( TAG_Int(0)));
187 variable12 = variable11;
188 if (!UNTAG_Bool(variable12)) { /* or */
189 variable12 = ((static_type___MMLocalProperty___signature_t)CALL( variable2 /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable2 /*prop*/) /*MMLocalProperty::signature*/;
190 variable13 = ((static_type___MMLocalProperty___signature_t)CALL( variable9 /*gp*/,COLOR_static_type___MMLocalProperty___signature))( variable9 /*gp*/) /*MMLocalProperty::signature*/;
191 variable12 = ((static_type___MMSignature_____l_t)CALL(variable12,COLOR_static_type___MMSignature_____l))(variable12, variable13) /*MMSignature::<*/;
192 }
193 variable11 = variable12;
194 if (UNTAG_Bool(variable11)) { /*if*/
195 variable3 = variable9 /*gp*/;
196 goto return_label3;
197 } else { /*if*/
198 ((array___AbstractArray___add_t)CALL( variable5 /*false_candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*false_candidates*/, variable9 /*gp*/) /*AbstractArray::add*/;
199 }
200 } else { /*if*/
201 variable11 = TAG_Bool(( variable10 /*garity*/)==( TAG_Int(0)));
202 if (UNTAG_Bool(variable11)) { /*if*/
203 ((array___AbstractArray___add_t)CALL( variable4 /*candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable4 /*candidates*/, variable9 /*gp*/) /*AbstractArray::add*/;
204 ((array___AbstractArray___add_t)CALL( variable5 /*false_candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*false_candidates*/, variable9 /*gp*/) /*AbstractArray::add*/;
205 } else { /*if*/
206 ((array___AbstractArray___add_t)CALL( variable5 /*false_candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable5 /*false_candidates*/, variable9 /*gp*/) /*AbstractArray::add*/;
207 }
208 }
209 continue_4: while(0);
210 ((abstract_collection___Iterator___next_t)CALL(variable7,COLOR_abstract_collection___Iterator___next))(variable7) /*Iterator::next*/;
211 }
212 break_4: while(0);
213 variable7 = ((array___AbstractArray___length_t)CALL( variable4 /*candidates*/,COLOR_abstract_collection___Collection___length))( variable4 /*candidates*/) /*AbstractArray::length*/;
214 variable7 = TAG_Bool((variable7)==( TAG_Int(1)));
215 if (UNTAG_Bool(variable7)) { /*if*/
216 variable7 = ((abstract_collection___IndexedCollection___first_t)CALL( variable4 /*candidates*/,COLOR_abstract_collection___Collection___first))( variable4 /*candidates*/) /*IndexedCollection::first*/;
217 variable3 = variable7;
218 goto return_label3;
219 } else { /*if*/
220 variable7 = ((array___AbstractArray___length_t)CALL( variable4 /*candidates*/,COLOR_abstract_collection___Collection___length))( variable4 /*candidates*/) /*AbstractArray::length*/;
221 variable7 = TAG_Bool(UNTAG_Int(variable7)>UNTAG_Int( TAG_Int(0)));
222 if (UNTAG_Bool(variable7)) { /*if*/
223 variable7 = NEW_string___String___init(); /*new String*/
224 variable8 = NEW_string___String___with_native(BOX_NativeString("Error: Conflicting default constructor to call for "), TAG_Int(51)); /*new String*/
225 variable9 = variable8;
226 ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
227 variable10 = variable1 /*c*/;
228 variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
229 ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable10) /*String::append*/;
230 variable11 = NEW_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
231 variable12 = variable11;
232 ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable12) /*String::append*/;
233 variable13 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
234 variable13 = ((string___Collection___join_t)CALL( variable4 /*candidates*/,COLOR_string___Collection___join))( variable4 /*candidates*/, variable13) /*Collection::join*/;
235 variable14 = variable13;
236 ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable14) /*String::append*/;
237 variable15 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
238 variable16 = variable15;
239 ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable16) /*String::append*/;
240 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable3 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable3 /*v*/, variable0 /*n*/, variable7) /*AbsSyntaxVisitor::error*/;
241 variable3 = NIT_NULL /*null*/;
242 goto return_label3;
243 } else { /*if*/
244 variable7 = ((array___AbstractArray___length_t)CALL( variable5 /*false_candidates*/,COLOR_abstract_collection___Collection___length))( variable5 /*false_candidates*/) /*AbstractArray::length*/;
245 variable7 = TAG_Bool(UNTAG_Int(variable7)>UNTAG_Int( TAG_Int(0)));
246 if (UNTAG_Bool(variable7)) { /*if*/
247 variable7 = NEW_string___String___init(); /*new String*/
248 variable8 = NEW_string___String___with_native(BOX_NativeString("Error: there is no available compatible constrctor in "), TAG_Int(54)); /*new String*/
249 variable9 = variable8;
250 ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
251 variable10 = variable1 /*c*/;
252 variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
253 ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable10) /*String::append*/;
254 variable11 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
255 variable12 = variable11;
256 ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable12) /*String::append*/;
257 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable3 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable3 /*v*/, variable0 /*n*/, variable7) /*AbsSyntaxVisitor::error*/;
258 variable3 = NIT_NULL /*null*/;
259 goto return_label3;
260 } else { /*if*/
261 variable7 = NEW_string___String___init(); /*new String*/
262 variable8 = NEW_string___String___with_native(BOX_NativeString("Error: there is no available compatible constrctor in "), TAG_Int(54)); /*new String*/
263 variable9 = variable8;
264 ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
265 variable10 = variable1 /*c*/;
266 variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
267 ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable10) /*String::append*/;
268 variable11 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
269 variable12 = variable11;
270 ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable12) /*String::append*/;
271 ((syntax_base___AbsSyntaxVisitor___warning_t)CALL( variable3 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___warning))( variable3 /*v*/, variable0 /*n*/, variable7) /*AbsSyntaxVisitor::warning*/;
272 variable3 = NIT_NULL /*null*/;
273 goto return_label3;
274 }
275 }
276 }
277 return_label3: while(false);
278 tracehead = trace.prev;
279 return variable3;
280 }
281 val_t typing___VariableContext_____bra(val_t self, val_t param0) {
282 struct trace_t trace = {NULL, NULL, 106, LOCATE_typing___VariableContext_____bra};
283 val_t variable0;
284 val_t variable1;
285 trace.prev = tracehead; tracehead = &trace;
286 trace.file = LOCATE_typing;
287 variable0 = param0;
288 variable1 = ATTR_typing___VariableContext____dico( self) /*VariableContext::_dico*/;
289 variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable0 /*s*/) /*Map::has_key*/;
290 if (UNTAG_Bool(variable1)) { /*if*/
291 variable1 = ATTR_typing___VariableContext____dico( self) /*VariableContext::_dico*/;
292 variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1, variable0 /*s*/) /*Map::[]*/;
293 goto return_label5;
294 } else { /*if*/
295 variable1 = NIT_NULL /*null*/;
296 goto return_label5;
297 }
298 return_label5: while(false);
299 tracehead = trace.prev;
300 return variable1;
301 }
302 void typing___VariableContext___add(val_t self, val_t param0) {
303 struct trace_t trace = {NULL, NULL, 117, LOCATE_typing___VariableContext___add};
304 val_t variable0;
305 val_t variable1;
306 val_t variable2;
307 trace.prev = tracehead; tracehead = &trace;
308 trace.file = LOCATE_typing;
309 variable0 = param0;
310 variable1 = ATTR_typing___VariableContext____dico( self) /*VariableContext::_dico*/;
311 variable2 = ((syntax_base___Variable___name_t)CALL( variable0 /*v*/,COLOR_syntax_base___Variable___name))( variable0 /*v*/) /*Variable::name*/;
312 ((abstract_collection___Map_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1, variable2, variable0 /*v*/) /*Map::[]=*/;
313 tracehead = trace.prev;
314 return;
315 }
316 val_t typing___VariableContext___stype(val_t self, val_t param0) {
317 struct trace_t trace = {NULL, NULL, 124, LOCATE_typing___VariableContext___stype};
318 val_t variable0;
319 val_t variable1;
320 trace.prev = tracehead; tracehead = &trace;
321 trace.file = LOCATE_typing;
322 variable0 = param0;
323 variable1 = ((syntax_base___Variable___stype_t)CALL( variable0 /*v*/,COLOR_syntax_base___Variable___stype))( variable0 /*v*/) /*Variable::stype*/;
324 goto return_label7;
325 return_label7: while(false);
326 tracehead = trace.prev;
327 return variable1;
328 }
329 val_t typing___VariableContext___sub(val_t self) {
330 struct trace_t trace = {NULL, NULL, 134, LOCATE_typing___VariableContext___sub};
331 val_t variable0;
332 trace.prev = tracehead; tracehead = &trace;
333 trace.file = LOCATE_typing;
334 variable0 = NEW_typing___SubVariableContext___with( self, NIT_NULL /*null*/, NIT_NULL /*null*/); /*new SubVariableContext*/
335 goto return_label8;
336 return_label8: while(false);
337 tracehead = trace.prev;
338 return variable0;
339 }
340 val_t typing___VariableContext___sub_with(val_t self, val_t param0, val_t param1) {
341 struct trace_t trace = {NULL, NULL, 140, LOCATE_typing___VariableContext___sub_with};
342 val_t variable0;
343 val_t variable1;
344 val_t variable2;
345 trace.prev = tracehead; tracehead = &trace;
346 trace.file = LOCATE_typing;
347 variable0 = param0;
348 variable1 = param1;
349 variable2 = NEW_typing___SubVariableContext___with( self, variable0 /*v*/, variable1 /*t*/); /*new SubVariableContext*/
350 goto return_label9;
351 return_label9: while(false);
352 tracehead = trace.prev;
353 return variable2;
354 }
355 void typing___VariableContext___init(val_t self, int* init_table) {
356 struct trace_t trace = {NULL, NULL, 146, LOCATE_typing___VariableContext___init};
357 val_t variable0;
358 trace.prev = tracehead; tracehead = &trace;
359 trace.file = LOCATE_typing;
360 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_VariableContext].i]) return;
361 variable0 = NEW_hash___HashMap___init(); /*new HashMap[K, V]*/
362 ATTR_typing___VariableContext____dico( self) /*VariableContext::_dico*/ = variable0;
363 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_VariableContext].i] = 1;
364 tracehead = trace.prev;
365 return;
366 }
367 val_t typing___SubVariableContext___prev(val_t self) {
368 struct trace_t trace = {NULL, NULL, 154, LOCATE_typing___SubVariableContext___prev};
369 trace.prev = tracehead; tracehead = &trace;
370 trace.file = LOCATE_typing;
371 tracehead = trace.prev;
372 return ATTR_typing___SubVariableContext____prev( self) /*SubVariableContext::_prev*/;
373 }
374 val_t typing___SubVariableContext_____bra(val_t self, val_t param0) {
375 struct trace_t trace = {NULL, NULL, 158, LOCATE_typing___SubVariableContext_____bra};
376 val_t variable0;
377 val_t variable1;
378 trace.prev = tracehead; tracehead = &trace;
379 trace.file = LOCATE_typing;
380 variable0 = param0;
381 variable1 = ATTR_typing___VariableContext____dico( self) /*VariableContext::_dico*/;
382 variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable0 /*s*/) /*Map::has_key*/;
383 if (UNTAG_Bool(variable1)) { /*if*/
384 variable1 = ATTR_typing___VariableContext____dico( self) /*VariableContext::_dico*/;
385 variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1, variable0 /*s*/) /*Map::[]*/;
386 goto return_label11;
387 } else { /*if*/
388 variable1 = ((typing___SubVariableContext___prev_t)CALL( self,COLOR_typing___SubVariableContext___prev))( self) /*SubVariableContext::prev*/;
389 variable1 = ((typing___VariableContext_____bra_t)CALL(variable1,COLOR_typing___VariableContext_____bra))(variable1, variable0 /*s*/) /*VariableContext::[]*/;
390 goto return_label11;
391 }
392 return_label11: while(false);
393 tracehead = trace.prev;
394 return variable1;
395 }
396 val_t typing___SubVariableContext___stype(val_t self, val_t param0) {
397 struct trace_t trace = {NULL, NULL, 167, LOCATE_typing___SubVariableContext___stype};
398 val_t variable0;
399 val_t variable1;
400 trace.prev = tracehead; tracehead = &trace;
401 trace.file = LOCATE_typing;
402 variable0 = param0;
403 variable1 = ATTR_typing___SubVariableContext____variable( self) /*SubVariableContext::_variable*/;
404 variable1 = TAG_Bool((variable1 == variable0 /*v*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*v*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, variable0 /*v*/) /*Object::==*/)))));
405 if (UNTAG_Bool(variable1)) { /*if*/
406 variable1 = ATTR_typing___SubVariableContext____var_type( self) /*SubVariableContext::_var_type*/;
407 goto return_label12;
408 }
409 variable1 = ((typing___SubVariableContext___prev_t)CALL( self,COLOR_typing___SubVariableContext___prev))( self) /*SubVariableContext::prev*/;
410 variable1 = ((typing___VariableContext___stype_t)CALL(variable1,COLOR_typing___VariableContext___stype))(variable1, variable0 /*v*/) /*VariableContext::stype*/;
411 goto return_label12;
412 return_label12: while(false);
413 tracehead = trace.prev;
414 return variable1;
415 }
416 void typing___SubVariableContext___with(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
417 struct trace_t trace = {NULL, NULL, 175, LOCATE_typing___SubVariableContext___with};
418 val_t variable0;
419 val_t variable1;
420 val_t variable2;
421 trace.prev = tracehead; tracehead = &trace;
422 trace.file = LOCATE_typing;
423 variable0 = param0;
424 variable1 = param1;
425 variable2 = param2;
426 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_SubVariableContext].i]) return;
427 ((typing___VariableContext___init_t)CALL( self,COLOR_typing___VariableContext___init))( self, init_table /*YYY*/) /*VariableContext::init*/;
428 ATTR_typing___SubVariableContext____prev( self) /*SubVariableContext::_prev*/ = variable0 /*p*/;
429 ATTR_typing___SubVariableContext____variable( self) /*SubVariableContext::_variable*/ = variable1 /*v*/;
430 ATTR_typing___SubVariableContext____var_type( self) /*SubVariableContext::_var_type*/ = variable2 /*t*/;
431 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_SubVariableContext].i] = 1;
432 tracehead = trace.prev;
433 return;
434 }
435 void typing___PNode___accept_typing(val_t self, val_t param0) {
436 struct trace_t trace = {NULL, NULL, 188, LOCATE_typing___PNode___accept_typing};
437 val_t variable0;
438 trace.prev = tracehead; tracehead = &trace;
439 trace.file = LOCATE_typing;
440 variable0 = param0;
441 ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL( self,COLOR_syntax_base___PNode___accept_abs_syntax_visitor))( self, variable0 /*v*/) /*PNode::accept_abs_syntax_visitor*/;
442 ((typing___PNode___after_typing_t)CALL( self,COLOR_typing___PNode___after_typing))( self, variable0 /*v*/) /*PNode::after_typing*/;
443 tracehead = trace.prev;
444 return;
445 }
446 void typing___PNode___after_typing(val_t self, val_t param0) {
447 struct trace_t trace = {NULL, NULL, 193, LOCATE_typing___PNode___after_typing};
448 val_t variable0;
449 trace.prev = tracehead; tracehead = &trace;
450 trace.file = LOCATE_typing;
451 variable0 = param0;
452 tracehead = trace.prev;
453 return;
454 }
455 void typing___PClassdef___accept_typing(val_t self, val_t param0) {
456 struct trace_t trace = {NULL, NULL, 197, LOCATE_typing___PClassdef___accept_typing};
457 val_t variable0;
458 val_t variable1;
459 trace.prev = tracehead; tracehead = &trace;
460 trace.file = LOCATE_typing;
461 variable0 = param0;
462 variable1 = ((syntax_base___PClassdef___local_class_t)CALL( self,COLOR_syntax_base___PClassdef___local_class))( self) /*PClassdef::local_class*/;
463 variable1 = ((genericity___MMLocalClass___get_type_t)CALL(variable1,COLOR_static_type___MMLocalClass___get_type))(variable1) /*MMLocalClass::get_type*/;
464 ((typing___TypingVisitor___self_type__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___self_type__eq))( variable0 /*v*/, variable1) /*TypingVisitor::self_type=*/;
465 ((typing___PClassdef___accept_typing_t)CALL( self,COLOR_SUPER_typing___PClassdef___accept_typing))( self, param0) /*super PClassdef::accept_typing*/;
466 tracehead = trace.prev;
467 return;
468 }
469 void typing___AAttrPropdef___accept_typing(val_t self, val_t param0) {
470 struct trace_t trace = {NULL, NULL, 205, LOCATE_typing___AAttrPropdef___accept_typing};
471 val_t variable0;
472 val_t variable1;
473 val_t variable2;
474 val_t variable3;
475 trace.prev = tracehead; tracehead = &trace;
476 trace.file = LOCATE_typing;
477 variable0 = param0;
478 ((typing___AAttrPropdef___accept_typing_t)CALL( self,COLOR_SUPER_typing___AAttrPropdef___accept_typing))( self, param0) /*super AAttrPropdef::accept_typing*/;
479 variable1 = ((parser_nodes___AAttrPropdef___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_expr))( self) /*AAttrPropdef::n_expr*/;
480 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))))));
481 if (UNTAG_Bool(variable1)) { /*if*/
482 variable1 = ((parser_nodes___AAttrPropdef___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_expr))( self) /*AAttrPropdef::n_expr*/;
483 variable2 = ((parser_nodes___AAttrPropdef___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrPropdef___n_expr))( self) /*AAttrPropdef::n_expr*/;
484 variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
485 variable3 = ((syntax_base___AAttrPropdef___prop_t)CALL( self,COLOR_syntax_base___AAttrPropdef___prop))( self) /*AAttrPropdef::prop*/;
486 variable3 = ((static_type___MMLocalProperty___signature_t)CALL(variable3,COLOR_static_type___MMLocalProperty___signature))(variable3) /*MMLocalProperty::signature*/;
487 variable3 = ((static_type___MMSignature___return_type_t)CALL(variable3,COLOR_static_type___MMSignature___return_type))(variable3) /*MMSignature::return_type*/;
488 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, variable1, variable2, variable3) /*AbsSyntaxVisitor::check_conform*/;
489 }
490 tracehead = trace.prev;
491 return;
492 }
493 void typing___AMethPropdef___accept_typing(val_t self, val_t param0) {
494 struct trace_t trace = {NULL, NULL, 215, LOCATE_typing___AMethPropdef___accept_typing};
495 val_t variable0;
496 val_t variable1;
497 trace.prev = tracehead; tracehead = &trace;
498 trace.file = LOCATE_typing;
499 variable0 = param0;
500 variable1 = NEW_typing___VariableContext___init(); /*new VariableContext*/
501 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable1) /*TypingVisitor::variable_ctx=*/;
502 ((typing___AMethPropdef___accept_typing_t)CALL( self,COLOR_SUPER_typing___AMethPropdef___accept_typing))( self, param0) /*super AMethPropdef::accept_typing*/;
503 tracehead = trace.prev;
504 return;
505 }
506 val_t typing___AConcreteInitPropdef___super_init_calls(val_t self) {
507 struct trace_t trace = {NULL, NULL, 223, LOCATE_typing___AConcreteInitPropdef___super_init_calls};
508 trace.prev = tracehead; tracehead = &trace;
509 trace.file = LOCATE_typing;
510 tracehead = trace.prev;
511 return ATTR_typing___AConcreteInitPropdef____super_init_calls( self) /*AConcreteInitPropdef::_super_init_calls*/;
512 }
513 val_t typing___AConcreteInitPropdef___explicit_super_init_calls(val_t self) {
514 struct trace_t trace = {NULL, NULL, 224, LOCATE_typing___AConcreteInitPropdef___explicit_super_init_calls};
515 trace.prev = tracehead; tracehead = &trace;
516 trace.file = LOCATE_typing;
517 tracehead = trace.prev;
518 return ATTR_typing___AConcreteInitPropdef____explicit_super_init_calls( self) /*AConcreteInitPropdef::_explicit_super_init_calls*/;
519 }
520 void typing___AConcreteInitPropdef___accept_typing(val_t self, val_t param0) {
521 struct trace_t trace = {NULL, NULL, 225, LOCATE_typing___AConcreteInitPropdef___accept_typing};
522 val_t variable0;
523 val_t variable1;
524 val_t variable2;
525 val_t variable3;
526 val_t variable4;
527 val_t variable5;
528 val_t variable6;
529 val_t variable7;
530 val_t variable8;
531 val_t variable9;
532 val_t variable10;
533 trace.prev = tracehead; tracehead = &trace;
534 trace.file = LOCATE_typing;
535 variable0 = param0;
536 variable1 = ((parser_nodes___AConcreteMethPropdef___n_block_t)CALL( self,COLOR_parser_nodes___AConcreteMethPropdef___n_block))( self) /*AConcreteMethPropdef::n_block*/;
537 ((typing___TypingVisitor___top_block__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___top_block__eq))( variable0 /*v*/, variable1) /*TypingVisitor::top_block=*/;
538 variable1 = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL( self,COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))( self) /*AConcreteInitPropdef::explicit_super_init_calls*/;
539 ((typing___TypingVisitor___explicit_super_init_calls__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls__eq))( variable0 /*v*/, variable1) /*TypingVisitor::explicit_super_init_calls=*/;
540 ((typing___TypingVisitor___explicit_other_init_call__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___explicit_other_init_call__eq))( variable0 /*v*/, TAG_Bool(false)) /*TypingVisitor::explicit_other_init_call=*/;
541 ((typing___AConcreteInitPropdef___accept_typing_t)CALL( self,COLOR_SUPER_typing___AConcreteInitPropdef___accept_typing))( self, param0) /*super AConcreteInitPropdef::accept_typing*/;
542 variable1 = ((typing___TypingVisitor___explicit_other_init_call_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___explicit_other_init_call))( variable0 /*v*/) /*TypingVisitor::explicit_other_init_call*/;
543 if (UNTAG_Bool(variable1)) { /*if*/
544 } else { /*if*/
545 variable1 = TAG_Int(0);
546 variable3 = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL( self,COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))( self) /*AConcreteInitPropdef::explicit_super_init_calls*/;
547 variable3 = ((array___AbstractArray___length_t)CALL(variable3,COLOR_abstract_collection___Collection___length))(variable3) /*AbstractArray::length*/;
548 variable2 = variable3;
549 variable3 = NIT_NULL /*null*/;
550 variable4 = NIT_NULL /*null*/;
551 variable5 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int( variable2 /*l*/));
552 if (UNTAG_Bool(variable5)) { /*if*/
553 variable5 = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL( self,COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))( self) /*AConcreteInitPropdef::explicit_super_init_calls*/;
554 variable6 = variable1 /*i*/;
555 variable7 = TAG_Bool(UNTAG_Int( variable6 /*index*/)>=UNTAG_Int( TAG_Int(0)));
556 variable8 = variable7;
557 if (UNTAG_Bool(variable8)) { /* and */
558 variable8 = variable5;
559 variable8 = ATTR_array___AbstractArray____length(variable8) /*AbstractArray::_length*/;
560 variable8 = TAG_Bool(UNTAG_Int( variable6 /*index*/)<UNTAG_Int(variable8));
561 }
562 variable7 = variable8;
563 if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_typing, 229); nit_exit(1);}
564 variable7 = variable5;
565 variable7 = ATTR_array___Array____items(variable7) /*Array::_items*/;
566 variable7 = UNBOX_NativeArray(variable7)[UNTAG_Int( variable6 /*index*/)];
567 goto return_label20;
568 return_label20: while(false);
569 variable5 = variable7;
570 variable3 = variable5 /*cur_m=*/;
571 variable5 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable3 /*cur_m*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable3 /*cur_m*/) /*MMLocalProperty::global*/;
572 variable5 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable5,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable5) /*MMGlobalProperty::intro*/;
573 variable5 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable5) /*MMLocalProperty::local_class*/;
574 variable4 = variable5 /*cur_c=*/;
575 }
576 variable5 = TAG_Int(0);
577 while (true) { /*while*/
578 variable6 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*AbsSyntaxVisitor::local_class*/;
579 variable6 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable6,COLOR_abstractmetamodel___MMLocalClass___cshe))(variable6) /*MMLocalClass::cshe*/;
580 variable6 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable6,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable6) /*PartialOrderElement::direct_greaters*/;
581 variable6 = ((array___AbstractArray___length_t)CALL(variable6,COLOR_abstract_collection___Collection___length))(variable6) /*AbstractArray::length*/;
582 variable6 = TAG_Bool(UNTAG_Int( variable5 /*j*/)<UNTAG_Int(variable6));
583 if (!UNTAG_Bool(variable6)) break; /* while*/
584 variable7 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*AbsSyntaxVisitor::local_class*/;
585 variable7 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable7,COLOR_abstractmetamodel___MMLocalClass___cshe))(variable7) /*MMLocalClass::cshe*/;
586 variable7 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable7,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable7) /*PartialOrderElement::direct_greaters*/;
587 variable8 = variable5 /*j*/;
588 variable9 = TAG_Bool(UNTAG_Int( variable8 /*index*/)>=UNTAG_Int( TAG_Int(0)));
589 variable10 = variable9;
590 if (UNTAG_Bool(variable10)) { /* and */
591 variable10 = variable7;
592 variable10 = ATTR_array___AbstractArray____length(variable10) /*AbstractArray::_length*/;
593 variable10 = TAG_Bool(UNTAG_Int( variable8 /*index*/)<UNTAG_Int(variable10));
594 }
595 variable9 = variable10;
596 if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_typing, 229); nit_exit(1);}
597 variable9 = variable7;
598 variable9 = ATTR_array___Array____items(variable9) /*Array::_items*/;
599 variable9 = UNBOX_NativeArray(variable9)[UNTAG_Int( variable8 /*index*/)];
600 goto return_label22;
601 return_label22: while(false);
602 variable7 = variable9;
603 variable6 = variable7;
604 variable7 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable6 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable6 /*c*/) /*MMLocalClass::global*/;
605 variable7 = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL(variable7,COLOR_abstractmetamodel___MMGlobalClass___is_interface))(variable7) /*MMGlobalClass::is_interface*/;
606 variable8 = variable7;
607 if (!UNTAG_Bool(variable8)) { /* or */
608 variable8 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable6 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable6 /*c*/) /*MMLocalClass::global*/;
609 variable8 = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL(variable8,COLOR_abstractmetamodel___MMGlobalClass___is_universal))(variable8) /*MMGlobalClass::is_universal*/;
610 }
611 variable7 = variable8;
612 if (UNTAG_Bool(variable7)) { /*if*/
613 variable5 = TAG_Int(UNTAG_Int(variable5)+UNTAG_Int( TAG_Int(1))) /*j*/;
614 } else { /*if*/
615 variable7 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*cur_c*/ == NIT_NULL /*null*/) || (( variable4 /*cur_c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*cur_c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*cur_c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*cur_c*/,COLOR_kernel___Object_____eqeq))( variable4 /*cur_c*/, NIT_NULL /*null*/) /*Object::==*/)))))));
616 variable8 = variable7;
617 if (UNTAG_Bool(variable8)) { /* and */
618 variable8 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable6 /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable6 /*c*/) /*MMLocalClass::cshe*/;
619 variable8 = ((partial_order___PartialOrderElement_____leq_t)CALL(variable8,COLOR_partial_order___PartialOrderElement_____leq))(variable8, variable4 /*cur_c*/) /*PartialOrderElement::<=*/;
620 }
621 variable7 = variable8;
622 if (UNTAG_Bool(variable7)) { /*if*/
623 variable7 = TAG_Bool(( variable6 /*c*/ == variable4 /*cur_c*/) || (( variable6 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*c*/, variable4 /*cur_c*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*c*/,COLOR_kernel___Object_____eqeq))( variable6 /*c*/, variable4 /*cur_c*/) /*Object::==*/)))));
624 if (UNTAG_Bool(variable7)) { /*if*/
625 variable5 = TAG_Int(UNTAG_Int(variable5)+UNTAG_Int( TAG_Int(1))) /*j*/;
626 }
627 variable7 = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL( self,COLOR_typing___AConcreteInitPropdef___super_init_calls))( self) /*AConcreteInitPropdef::super_init_calls*/;
628 ((array___AbstractArray___add_t)CALL(variable7,COLOR_abstract_collection___SimpleCollection___add))(variable7, variable3 /*cur_m*/) /*AbstractArray::add*/;
629 variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
630 variable7 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int( variable2 /*l*/));
631 if (UNTAG_Bool(variable7)) { /*if*/
632 variable7 = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL( self,COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))( self) /*AConcreteInitPropdef::explicit_super_init_calls*/;
633 variable8 = variable1 /*i*/;
634 variable9 = TAG_Bool(UNTAG_Int( variable8 /*index*/)>=UNTAG_Int( TAG_Int(0)));
635 variable10 = variable9;
636 if (UNTAG_Bool(variable10)) { /* and */
637 variable10 = variable7;
638 variable10 = ATTR_array___AbstractArray____length(variable10) /*AbstractArray::_length*/;
639 variable10 = TAG_Bool(UNTAG_Int( variable8 /*index*/)<UNTAG_Int(variable10));
640 }
641 variable9 = variable10;
642 if (!UNTAG_Bool(variable9)) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_typing, 229); nit_exit(1);}
643 variable9 = variable7;
644 variable9 = ATTR_array___Array____items(variable9) /*Array::_items*/;
645 variable9 = UNBOX_NativeArray(variable9)[UNTAG_Int( variable8 /*index*/)];
646 goto return_label23;
647 return_label23: while(false);
648 variable7 = variable9;
649 variable3 = variable7 /*cur_m=*/;
650 variable7 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable3 /*cur_m*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable3 /*cur_m*/) /*MMLocalProperty::global*/;
651 variable7 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable7,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable7) /*MMGlobalProperty::intro*/;
652 variable7 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable7,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable7) /*MMLocalProperty::local_class*/;
653 variable4 = variable7 /*cur_c=*/;
654 } else { /*if*/
655 variable3 = NIT_NULL /*null*/ /*cur_m=*/;
656 variable4 = NIT_NULL /*null*/ /*cur_c=*/;
657 }
658 } else { /*if*/
659 variable8 = ((syntax_base___AMethPropdef___method_t)CALL( self,COLOR_syntax_base___AMethPropdef___method))( self) /*AMethPropdef::method*/;
660 variable8 = ((typing___TypingVisitor___get_default_constructor_for_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___get_default_constructor_for))( variable0 /*v*/, self, variable6 /*c*/, variable8) /*TypingVisitor::get_default_constructor_for*/;
661 variable7 = variable8;
662 variable8 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable7 /*p*/ == NIT_NULL /*null*/) || (( variable7 /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*p*/,COLOR_kernel___Object_____eqeq))( variable7 /*p*/, NIT_NULL /*null*/) /*Object::==*/)))))));
663 if (UNTAG_Bool(variable8)) { /*if*/
664 variable8 = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL( self,COLOR_typing___AConcreteInitPropdef___super_init_calls))( self) /*AConcreteInitPropdef::super_init_calls*/;
665 ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8, variable7 /*p*/) /*AbstractArray::add*/;
666 }
667 variable5 = TAG_Int(UNTAG_Int(variable5)+UNTAG_Int( TAG_Int(1))) /*j*/;
668 }
669 }
670 continue_21: while(0);
671 }
672 break_21: while(0);
673 }
674 tracehead = trace.prev;
675 return;
676 }
677 void typing___PParam___after_typing(val_t self, val_t param0) {
678 struct trace_t trace = {NULL, NULL, 271, LOCATE_typing___PParam___after_typing};
679 val_t variable0;
680 val_t variable1;
681 val_t variable2;
682 trace.prev = tracehead; tracehead = &trace;
683 trace.file = LOCATE_typing;
684 variable0 = param0;
685 variable1 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
686 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))))));
687 if (UNTAG_Bool(variable1)) { /*if*/
688 variable1 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
689 variable2 = ((syntax_base___PParam___variable_t)CALL( self,COLOR_syntax_base___PParam___variable))( self) /*PParam::variable*/;
690 ((typing___VariableContext___add_t)CALL(variable1,COLOR_typing___VariableContext___add))(variable1, variable2) /*VariableContext::add*/;
691 }
692 tracehead = trace.prev;
693 return;
694 }
695 val_t typing___PType___stype(val_t self) {
696 struct trace_t trace = {NULL, NULL, 280, LOCATE_typing___PType___stype};
697 trace.prev = tracehead; tracehead = &trace;
698 trace.file = LOCATE_typing;
699 tracehead = trace.prev;
700 return ATTR_typing___PType____stype( self) /*PType::_stype*/;
701 }
702 void typing___PType___after_typing(val_t self, val_t param0) {
703 struct trace_t trace = {NULL, NULL, 281, LOCATE_typing___PType___after_typing};
704 val_t variable0;
705 val_t variable1;
706 trace.prev = tracehead; tracehead = &trace;
707 trace.file = LOCATE_typing;
708 variable0 = param0;
709 variable1 = ((syntax_base___PType___get_stype_t)CALL( self,COLOR_syntax_base___PType___get_stype))( self, variable0 /*v*/) /*PType::get_stype*/;
710 ATTR_typing___PType____stype( self) /*PType::_stype*/ = variable1;
711 tracehead = trace.prev;
712 return;
713 }
714 val_t typing___PExpr___stype(val_t self) {
715 struct trace_t trace = {NULL, NULL, 288, LOCATE_typing___PExpr___stype};
716 trace.prev = tracehead; tracehead = &trace;
717 trace.file = LOCATE_typing;
718 tracehead = trace.prev;
719 return ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/;
720 }
721 val_t typing___PExpr___is_implicit_self(val_t self) {
722 struct trace_t trace = {NULL, NULL, 290, LOCATE_typing___PExpr___is_implicit_self};
723 val_t variable0;
724 trace.prev = tracehead; tracehead = &trace;
725 trace.file = LOCATE_typing;
726 variable0 = TAG_Bool(false);
727 goto return_label26;
728 return_label26: while(false);
729 tracehead = trace.prev;
730 return variable0;
731 }
732 val_t typing___PExpr___is_self(val_t self) {
733 struct trace_t trace = {NULL, NULL, 293, LOCATE_typing___PExpr___is_self};
734 val_t variable0;
735 trace.prev = tracehead; tracehead = &trace;
736 trace.file = LOCATE_typing;
737 variable0 = TAG_Bool(false);
738 goto return_label27;
739 return_label27: while(false);
740 tracehead = trace.prev;
741 return variable0;
742 }
743 val_t typing___PExpr___is_variable(val_t self) {
744 struct trace_t trace = {NULL, NULL, 296, LOCATE_typing___PExpr___is_variable};
745 val_t variable0;
746 trace.prev = tracehead; tracehead = &trace;
747 trace.file = LOCATE_typing;
748 variable0 = TAG_Bool(false);
749 goto return_label28;
750 return_label28: while(false);
751 tracehead = trace.prev;
752 return variable0;
753 }
754 val_t typing___PExpr___if_true_variable_ctx(val_t self) {
755 struct trace_t trace = {NULL, NULL, 299, LOCATE_typing___PExpr___if_true_variable_ctx};
756 trace.prev = tracehead; tracehead = &trace;
757 trace.file = LOCATE_typing;
758 tracehead = trace.prev;
759 return ATTR_typing___PExpr____if_true_variable_ctx( self) /*PExpr::_if_true_variable_ctx*/;
760 }
761 void typing___AVardeclExpr___after_typing(val_t self, val_t param0) {
762 struct trace_t trace = {NULL, NULL, 304, LOCATE_typing___AVardeclExpr___after_typing};
763 val_t variable0;
764 val_t variable1;
765 val_t variable2;
766 val_t variable3;
767 trace.prev = tracehead; tracehead = &trace;
768 trace.file = LOCATE_typing;
769 variable0 = param0;
770 variable2 = ((parser_nodes___AVardeclExpr___n_id_t)CALL( self,COLOR_parser_nodes___AVardeclExpr___n_id))( self) /*AVardeclExpr::n_id*/;
771 variable2 = ((syntax_base___Token___to_symbol_t)CALL(variable2,COLOR_syntax_base___Token___to_symbol))(variable2) /*Token::to_symbol*/;
772 variable3 = NEW_syntax_base___Variable___init(variable2, self); /*new Variable*/
773 variable2 = variable3;
774 variable1 = variable2;
775 ((syntax_base___AVardeclExpr___variable__eq_t)CALL( self,COLOR_syntax_base___AVardeclExpr___variable__eq))( self, variable1 /*va*/) /*AVardeclExpr::variable=*/;
776 variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
777 ((typing___VariableContext___add_t)CALL(variable2,COLOR_typing___VariableContext___add))(variable2, variable1 /*va*/) /*VariableContext::add*/;
778 variable2 = ((parser_nodes___AVardeclExpr___n_type_t)CALL( self,COLOR_parser_nodes___AVardeclExpr___n_type))( self) /*AVardeclExpr::n_type*/;
779 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))))));
780 if (UNTAG_Bool(variable2)) { /*if*/
781 variable2 = ((parser_nodes___AVardeclExpr___n_type_t)CALL( self,COLOR_parser_nodes___AVardeclExpr___n_type))( self) /*AVardeclExpr::n_type*/;
782 variable2 = ((typing___PType___stype_t)CALL(variable2,COLOR_typing___PType___stype))(variable2) /*PType::stype*/;
783 ((syntax_base___Variable___stype__eq_t)CALL( variable1 /*va*/,COLOR_syntax_base___Variable___stype__eq))( variable1 /*va*/, variable2) /*Variable::stype=*/;
784 variable2 = ((parser_nodes___AVardeclExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AVardeclExpr___n_expr))( self) /*AVardeclExpr::n_expr*/;
785 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))))));
786 if (UNTAG_Bool(variable2)) { /*if*/
787 variable2 = ((parser_nodes___AVardeclExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AVardeclExpr___n_expr))( self) /*AVardeclExpr::n_expr*/;
788 variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
789 variable3 = ((syntax_base___Variable___stype_t)CALL( variable1 /*va*/,COLOR_syntax_base___Variable___stype))( variable1 /*va*/) /*Variable::stype*/;
790 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable2, variable3) /*AbsSyntaxVisitor::check_conform*/;
791 }
792 } else { /*if*/
793 variable2 = ((parser_nodes___AVardeclExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AVardeclExpr___n_expr))( self) /*AVardeclExpr::n_expr*/;
794 variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
795 ((syntax_base___Variable___stype__eq_t)CALL( variable1 /*va*/,COLOR_syntax_base___Variable___stype__eq))( variable1 /*va*/, variable2) /*Variable::stype=*/;
796 }
797 tracehead = trace.prev;
798 return;
799 }
800 void typing___ABlockExpr___accept_typing(val_t self, val_t param0) {
801 struct trace_t trace = {NULL, NULL, 322, LOCATE_typing___ABlockExpr___accept_typing};
802 val_t variable0;
803 val_t variable1;
804 val_t variable2;
805 trace.prev = tracehead; tracehead = &trace;
806 trace.file = LOCATE_typing;
807 variable0 = param0;
808 variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
809 variable1 = variable2;
810 variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
811 variable2 = ((typing___VariableContext___sub_t)CALL(variable2,COLOR_typing___VariableContext___sub))(variable2) /*VariableContext::sub*/;
812 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable2) /*TypingVisitor::variable_ctx=*/;
813 ((typing___ABlockExpr___accept_typing_t)CALL( self,COLOR_SUPER_typing___ABlockExpr___accept_typing))( self, param0) /*super ABlockExpr::accept_typing*/;
814 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable1 /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
815 tracehead = trace.prev;
816 return;
817 }
818 void typing___AReturnExpr___after_typing(val_t self, val_t param0) {
819 struct trace_t trace = {NULL, NULL, 334, LOCATE_typing___AReturnExpr___after_typing};
820 val_t variable0;
821 val_t variable1;
822 val_t variable2;
823 val_t variable3;
824 trace.prev = tracehead; tracehead = &trace;
825 trace.file = LOCATE_typing;
826 variable0 = param0;
827 variable2 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*AbsSyntaxVisitor::local_property*/;
828 variable2 = ((static_type___MMLocalProperty___signature_t)CALL(variable2,COLOR_static_type___MMLocalProperty___signature))(variable2) /*MMLocalProperty::signature*/;
829 variable2 = ((static_type___MMSignature___return_type_t)CALL(variable2,COLOR_static_type___MMSignature___return_type))(variable2) /*MMSignature::return_type*/;
830 variable1 = variable2;
831 variable2 = ((parser_nodes___AReturnExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AReturnExpr___n_expr))( self) /*AReturnExpr::n_expr*/;
832 variable2 = TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))));
833 variable3 = variable2;
834 if (UNTAG_Bool(variable3)) { /* and */
835 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ == NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
836 }
837 variable2 = variable3;
838 if (UNTAG_Bool(variable2)) { /*if*/
839 variable2 = NEW_string___String___with_native(BOX_NativeString("Error: Return without value in a function."), TAG_Int(42)); /*new String*/
840 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable2) /*AbsSyntaxVisitor::error*/;
841 } else { /*if*/
842 variable2 = ((parser_nodes___AReturnExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AReturnExpr___n_expr))( self) /*AReturnExpr::n_expr*/;
843 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))))));
844 variable3 = variable2;
845 if (UNTAG_Bool(variable3)) { /* and */
846 variable3 = TAG_Bool(( variable1 /*t*/ == NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/, NIT_NULL /*null*/) /*Object::==*/)))));
847 }
848 variable2 = variable3;
849 if (UNTAG_Bool(variable2)) { /*if*/
850 variable2 = NEW_string___String___with_native(BOX_NativeString("Error: Return with value in a procedure."), TAG_Int(40)); /*new String*/
851 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable2) /*AbsSyntaxVisitor::error*/;
852 } else { /*if*/
853 variable2 = ((parser_nodes___AReturnExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AReturnExpr___n_expr))( self) /*AReturnExpr::n_expr*/;
854 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))))));
855 variable3 = variable2;
856 if (UNTAG_Bool(variable3)) { /* and */
857 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ == NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
858 }
859 variable2 = variable3;
860 if (UNTAG_Bool(variable2)) { /*if*/
861 variable2 = ((parser_nodes___AReturnExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AReturnExpr___n_expr))( self) /*AReturnExpr::n_expr*/;
862 variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
863 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable2, variable1 /*t*/) /*AbsSyntaxVisitor::check_conform*/;
864 }
865 }
866 }
867 tracehead = trace.prev;
868 return;
869 }
870 void typing___AIfExpr___accept_typing(val_t self, val_t param0) {
871 struct trace_t trace = {NULL, NULL, 348, LOCATE_typing___AIfExpr___accept_typing};
872 val_t variable0;
873 val_t variable1;
874 val_t variable2;
875 val_t variable3;
876 trace.prev = tracehead; tracehead = &trace;
877 trace.file = LOCATE_typing;
878 variable0 = param0;
879 variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
880 variable1 = variable2;
881 variable2 = ((parser_nodes___AIfExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_expr))( self) /*AIfExpr::n_expr*/;
882 ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
883 variable2 = ((parser_nodes___AIfExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_expr))( self) /*AIfExpr::n_expr*/;
884 variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
885 variable3 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*AbsSyntaxVisitor::type_bool*/;
886 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable2, variable3) /*AbsSyntaxVisitor::check_conform*/;
887 variable2 = ((parser_nodes___AIfExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_expr))( self) /*AIfExpr::n_expr*/;
888 variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
889 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))))));
890 if (UNTAG_Bool(variable2)) { /*if*/
891 variable2 = ((parser_nodes___AIfExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_expr))( self) /*AIfExpr::n_expr*/;
892 variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
893 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable2) /*TypingVisitor::variable_ctx=*/;
894 }
895 variable2 = ((parser_nodes___AIfExpr___n_then_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_then))( self) /*AIfExpr::n_then*/;
896 ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
897 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable1 /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
898 variable2 = ((parser_nodes___AIfExpr___n_else_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_else))( self) /*AIfExpr::n_else*/;
899 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))))));
900 if (UNTAG_Bool(variable2)) { /*if*/
901 variable2 = ((parser_nodes___AIfExpr___n_else_t)CALL( self,COLOR_parser_nodes___AIfExpr___n_else))( self) /*AIfExpr::n_else*/;
902 ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
903 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable1 /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
904 }
905 tracehead = trace.prev;
906 return;
907 }
908 void typing___AWhileExpr___after_typing(val_t self, val_t param0) {
909 struct trace_t trace = {NULL, NULL, 370, LOCATE_typing___AWhileExpr___after_typing};
910 val_t variable0;
911 val_t variable1;
912 val_t variable2;
913 trace.prev = tracehead; tracehead = &trace;
914 trace.file = LOCATE_typing;
915 variable0 = param0;
916 variable1 = ((parser_nodes___AWhileExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AWhileExpr___n_expr))( self) /*AWhileExpr::n_expr*/;
917 variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
918 variable2 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*AbsSyntaxVisitor::type_bool*/;
919 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable1, variable2) /*AbsSyntaxVisitor::check_conform*/;
920 tracehead = trace.prev;
921 return;
922 }
923 void typing___AForExpr___after_typing(val_t self, val_t param0) {
924 struct trace_t trace = {NULL, NULL, 377, LOCATE_typing___AForExpr___after_typing};
925 val_t variable0;
926 val_t variable1;
927 val_t variable2;
928 trace.prev = tracehead; tracehead = &trace;
929 trace.file = LOCATE_typing;
930 variable0 = param0;
931 variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
932 variable1 = variable2;
933 variable2 = TAG_Bool(( variable1 /*varctx*/==NIT_NULL) || VAL_ISA( variable1 /*varctx*/, COLOR_SubVariableContext, ID_SubVariableContext)) /*cast SubVariableContext*/;
934 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___AForExpr___after_typing, LOCATE_typing, 381); nit_exit(1);}
935 variable2 = ((typing___SubVariableContext___prev_t)CALL( variable1 /*varctx*/,COLOR_typing___SubVariableContext___prev))( variable1 /*varctx*/) /*SubVariableContext::prev*/;
936 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable2) /*TypingVisitor::variable_ctx=*/;
937 tracehead = trace.prev;
938 return;
939 }
940 void typing___AForVardeclExpr___after_typing(val_t self, val_t param0) {
941 struct trace_t trace = {NULL, NULL, 387, LOCATE_typing___AForVardeclExpr___after_typing};
942 val_t variable0;
943 val_t variable1;
944 val_t variable2;
945 val_t variable3;
946 val_t variable4;
947 val_t variable5;
948 static val_t once_value_variable5_36; static int once_bool_variable5_36;
949 val_t variable6;
950 val_t variable7;
951 static val_t once_value_variable7_37; static int once_bool_variable7_37;
952 val_t variable8;
953 val_t variable9;
954 val_t variable10;
955 val_t variable11;
956 trace.prev = tracehead; tracehead = &trace;
957 trace.file = LOCATE_typing;
958 variable0 = param0;
959 variable1 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
960 variable1 = ((typing___VariableContext___sub_t)CALL(variable1,COLOR_typing___VariableContext___sub))(variable1) /*VariableContext::sub*/;
961 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable1) /*TypingVisitor::variable_ctx=*/;
962 variable2 = ((parser_nodes___AForVardeclExpr___n_id_t)CALL( self,COLOR_parser_nodes___AForVardeclExpr___n_id))( self) /*AForVardeclExpr::n_id*/;
963 variable2 = ((syntax_base___Token___to_symbol_t)CALL(variable2,COLOR_syntax_base___Token___to_symbol))(variable2) /*Token::to_symbol*/;
964 variable3 = NEW_syntax_base___Variable___init(variable2, self); /*new Variable*/
965 variable2 = variable3;
966 variable1 = variable2;
967 ((syntax_base___AForVardeclExpr___variable__eq_t)CALL( self,COLOR_syntax_base___AForVardeclExpr___variable__eq))( self, variable1 /*va*/) /*AForVardeclExpr::variable=*/;
968 variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
969 ((typing___VariableContext___add_t)CALL(variable2,COLOR_typing___VariableContext___add))(variable2, variable1 /*va*/) /*VariableContext::add*/;
970 variable3 = ((parser_nodes___AForVardeclExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AForVardeclExpr___n_expr))( self) /*AForVardeclExpr::n_expr*/;
971 variable3 = ((typing___PExpr___stype_t)CALL(variable3,COLOR_syntax_base___PExpr___stype))(variable3) /*PExpr::stype*/;
972 variable2 = variable3;
973 variable3 = ((syntax_base___AbsSyntaxVisitor___type_collection_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_collection))( variable0 /*v*/) /*AbsSyntaxVisitor::type_collection*/;
974 variable3 = ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable2 /*expr_type*/, variable3) /*AbsSyntaxVisitor::check_conform*/;
975 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
976 goto return_label35;
977 }
978 variable4 = ((static_type___MMType___local_class_t)CALL( variable2 /*expr_type*/,COLOR_static_type___MMType___local_class))( variable2 /*expr_type*/) /*MMType::local_class*/;
979 if (once_bool_variable5_36) variable5 = once_value_variable5_36;
980 else {
981 variable5 = NEW_string___String___with_native(BOX_NativeString("iterator"), TAG_Int(8)); /*new String*/
982 variable5 = ((symbol___String___to_symbol_t)CALL(variable5,COLOR_symbol___String___to_symbol))(variable5) /*String::to_symbol*/;
983 once_value_variable5_36 = variable5;
984 once_bool_variable5_36 = true;
985 }
986 variable4 = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalClass___select_method))(variable4, variable5) /*MMLocalClass::select_method*/;
987 variable3 = variable4;
988 variable4 = TAG_Bool(( variable3 /*prop*/ == NIT_NULL /*null*/) || (( variable3 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*prop*/,COLOR_kernel___Object_____eqeq))( variable3 /*prop*/, NIT_NULL /*null*/) /*Object::==*/)))));
989 if (UNTAG_Bool(variable4)) { /*if*/
990 variable4 = NEW_string___String___with_native(BOX_NativeString("Error: Collection MUST have an iterate method"), TAG_Int(45)); /*new String*/
991 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable4) /*AbsSyntaxVisitor::error*/;
992 goto return_label35;
993 }
994 variable5 = ((static_type___MMLocalProperty___signature_for_t)CALL( variable3 /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable3 /*prop*/, variable2 /*expr_type*/) /*MMLocalProperty::signature_for*/;
995 variable5 = ((static_type___MMSignature___return_type_t)CALL(variable5,COLOR_static_type___MMSignature___return_type))(variable5) /*MMSignature::return_type*/;
996 variable4 = variable5;
997 variable6 = ((static_type___MMType___local_class_t)CALL( variable4 /*iter_type*/,COLOR_static_type___MMType___local_class))( variable4 /*iter_type*/) /*MMType::local_class*/;
998 if (once_bool_variable7_37) variable7 = once_value_variable7_37;
999 else {
1000 variable7 = NEW_string___String___with_native(BOX_NativeString("item"), TAG_Int(4)); /*new String*/
1001 variable7 = ((symbol___String___to_symbol_t)CALL(variable7,COLOR_symbol___String___to_symbol))(variable7) /*String::to_symbol*/;
1002 once_value_variable7_37 = variable7;
1003 once_bool_variable7_37 = true;
1004 }
1005 variable6 = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable6,COLOR_abstractmetamodel___MMLocalClass___select_method))(variable6, variable7) /*MMLocalClass::select_method*/;
1006 variable5 = variable6;
1007 variable6 = TAG_Bool(( variable5 /*prop2*/ == NIT_NULL /*null*/) || (( variable5 /*prop2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable5 /*prop2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable5 /*prop2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable5 /*prop2*/,COLOR_kernel___Object_____eqeq))( variable5 /*prop2*/, NIT_NULL /*null*/) /*Object::==*/)))));
1008 if (UNTAG_Bool(variable6)) { /*if*/
1009 variable6 = NEW_string___String___init(); /*new String*/
1010 variable7 = NEW_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
1011 variable8 = variable7;
1012 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
1013 variable9 = variable4 /*iter_type*/;
1014 variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
1015 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
1016 variable10 = NEW_string___String___with_native(BOX_NativeString(" MUST have an item method"), TAG_Int(25)); /*new String*/
1017 variable11 = variable10;
1018 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
1019 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable6) /*AbsSyntaxVisitor::error*/;
1020 goto return_label35;
1021 }
1022 variable7 = ((static_type___MMLocalProperty___signature_for_t)CALL( variable5 /*prop2*/,COLOR_static_type___MMLocalProperty___signature_for))( variable5 /*prop2*/, variable4 /*iter_type*/) /*MMLocalProperty::signature_for*/;
1023 variable7 = ((static_type___MMSignature___return_type_t)CALL(variable7,COLOR_static_type___MMSignature___return_type))(variable7) /*MMSignature::return_type*/;
1024 variable6 = variable7;
1025 variable7 = ((parser_nodes___AForVardeclExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AForVardeclExpr___n_expr))( self) /*AForVardeclExpr::n_expr*/;
1026 variable7 = ((typing___PExpr___is_self_t)CALL(variable7,COLOR_typing___PExpr___is_self))(variable7) /*PExpr::is_self*/;
1027 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable7)))) { /*if*/
1028 variable7 = ((static_type___MMType___not_for_self_t)CALL( variable6 /*t*/,COLOR_static_type___MMType___not_for_self))( variable6 /*t*/) /*MMType::not_for_self*/;
1029 variable6 = variable7 /*t=*/;
1030 }
1031 ((syntax_base___Variable___stype__eq_t)CALL( variable1 /*va*/,COLOR_syntax_base___Variable___stype__eq))( variable1 /*va*/, variable6 /*t*/) /*Variable::stype=*/;
1032 return_label35: while(false);
1033 tracehead = trace.prev;
1034 return;
1035 }
1036 void typing___AAssertExpr___after_typing(val_t self, val_t param0) {
1037 struct trace_t trace = {NULL, NULL, 416, LOCATE_typing___AAssertExpr___after_typing};
1038 val_t variable0;
1039 val_t variable1;
1040 val_t variable2;
1041 trace.prev = tracehead; tracehead = &trace;
1042 trace.file = LOCATE_typing;
1043 variable0 = param0;
1044 variable1 = ((parser_nodes___AAssertExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAssertExpr___n_expr))( self) /*AAssertExpr::n_expr*/;
1045 variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
1046 variable2 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1047 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable1, variable2) /*AbsSyntaxVisitor::check_conform*/;
1048 variable1 = ((parser_nodes___AAssertExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAssertExpr___n_expr))( self) /*AAssertExpr::n_expr*/;
1049 variable1 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable1,COLOR_typing___PExpr___if_true_variable_ctx))(variable1) /*PExpr::if_true_variable_ctx*/;
1050 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))))));
1051 if (UNTAG_Bool(variable1)) { /*if*/
1052 variable1 = ((parser_nodes___AAssertExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAssertExpr___n_expr))( self) /*AAssertExpr::n_expr*/;
1053 variable1 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable1,COLOR_typing___PExpr___if_true_variable_ctx))(variable1) /*PExpr::if_true_variable_ctx*/;
1054 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable1) /*TypingVisitor::variable_ctx=*/;
1055 }
1056 tracehead = trace.prev;
1057 return;
1058 }
1059 val_t typing___AVarExpr___is_variable(val_t self) {
1060 struct trace_t trace = {NULL, NULL, 424, LOCATE_typing___AVarExpr___is_variable};
1061 val_t variable0;
1062 trace.prev = tracehead; tracehead = &trace;
1063 trace.file = LOCATE_typing;
1064 variable0 = TAG_Bool(true);
1065 goto return_label39;
1066 return_label39: while(false);
1067 tracehead = trace.prev;
1068 return variable0;
1069 }
1070 void typing___AVarExpr___after_typing(val_t self, val_t param0) {
1071 struct trace_t trace = {NULL, NULL, 426, LOCATE_typing___AVarExpr___after_typing};
1072 val_t variable0;
1073 val_t variable1;
1074 val_t variable2;
1075 trace.prev = tracehead; tracehead = &trace;
1076 trace.file = LOCATE_typing;
1077 variable0 = param0;
1078 variable1 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
1079 variable2 = ((syntax_base___AVarFormExpr___variable_t)CALL( self,COLOR_syntax_base___AVarFormExpr___variable))( self) /*AVarFormExpr::variable*/;
1080 variable1 = ((typing___VariableContext___stype_t)CALL(variable1,COLOR_typing___VariableContext___stype))(variable1, variable2) /*VariableContext::stype*/;
1081 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
1082 tracehead = trace.prev;
1083 return;
1084 }
1085 void typing___AVarAssignExpr___after_typing(val_t self, val_t param0) {
1086 struct trace_t trace = {NULL, NULL, 433, LOCATE_typing___AVarAssignExpr___after_typing};
1087 val_t variable0;
1088 val_t variable1;
1089 val_t variable2;
1090 val_t variable3;
1091 trace.prev = tracehead; tracehead = &trace;
1092 trace.file = LOCATE_typing;
1093 variable0 = param0;
1094 variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
1095 variable3 = ((syntax_base___AVarFormExpr___variable_t)CALL( self,COLOR_syntax_base___AVarFormExpr___variable))( self) /*AVarFormExpr::variable*/;
1096 variable2 = ((typing___VariableContext___stype_t)CALL(variable2,COLOR_typing___VariableContext___stype))(variable2, variable3) /*VariableContext::stype*/;
1097 variable1 = variable2;
1098 variable2 = ((parser_nodes___AAssignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AAssignFormExpr___n_value))( self) /*AAssignFormExpr::n_value*/;
1099 variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
1100 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable2, variable1 /*t*/) /*AbsSyntaxVisitor::check_conform*/;
1101 tracehead = trace.prev;
1102 return;
1103 }
1104 void typing___AReassignFormExpr___do_lvalue_typing(val_t self, val_t param0, val_t param1) {
1105 struct trace_t trace = {NULL, NULL, 441, LOCATE_typing___AReassignFormExpr___do_lvalue_typing};
1106 val_t variable0;
1107 val_t variable1;
1108 val_t variable2;
1109 val_t variable3;
1110 val_t variable4;
1111 val_t variable5;
1112 val_t variable6;
1113 val_t variable7;
1114 val_t variable8;
1115 val_t variable9;
1116 val_t variable10;
1117 val_t variable11;
1118 val_t variable12;
1119 trace.prev = tracehead; tracehead = &trace;
1120 trace.file = LOCATE_typing;
1121 variable0 = param0;
1122 variable1 = param1;
1123 variable2 = TAG_Bool(( variable1 /*type_lvalue*/ == NIT_NULL /*null*/) || (( variable1 /*type_lvalue*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*type_lvalue*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*type_lvalue*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*type_lvalue*/,COLOR_kernel___Object_____eqeq))( variable1 /*type_lvalue*/, NIT_NULL /*null*/) /*Object::==*/)))));
1124 if (UNTAG_Bool(variable2)) { /*if*/
1125 goto return_label42;
1126 }
1127 variable3 = ((parser_nodes___AReassignFormExpr___n_assign_op_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_assign_op))( self) /*AReassignFormExpr::n_assign_op*/;
1128 variable3 = ((typing___PAssignOp___method_name_t)CALL(variable3,COLOR_typing___PAssignOp___method_name))(variable3) /*PAssignOp::method_name*/;
1129 variable2 = variable3;
1130 variable4 = ((static_type___MMType___local_class_t)CALL( variable1 /*type_lvalue*/,COLOR_static_type___MMType___local_class))( variable1 /*type_lvalue*/) /*MMType::local_class*/;
1131 variable4 = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalClass___select_method))(variable4, variable2 /*name*/) /*MMLocalClass::select_method*/;
1132 variable3 = variable4;
1133 variable4 = TAG_Bool(( variable3 /*prop*/ == NIT_NULL /*null*/) || (( variable3 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*prop*/,COLOR_kernel___Object_____eqeq))( variable3 /*prop*/, NIT_NULL /*null*/) /*Object::==*/)))));
1134 if (UNTAG_Bool(variable4)) { /*if*/
1135 variable4 = NEW_string___String___init(); /*new String*/
1136 variable5 = NEW_string___String___with_native(BOX_NativeString("Error: Method '"), TAG_Int(15)); /*new String*/
1137 variable6 = variable5;
1138 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
1139 variable7 = variable2 /*name*/;
1140 variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
1141 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
1142 variable8 = NEW_string___String___with_native(BOX_NativeString("' doesn't exists in "), TAG_Int(20)); /*new String*/
1143 variable9 = variable8;
1144 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
1145 variable10 = variable1 /*type_lvalue*/;
1146 variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
1147 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
1148 variable11 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
1149 variable12 = variable11;
1150 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
1151 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable4) /*AbsSyntaxVisitor::error*/;
1152 goto return_label42;
1153 }
1154 variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable3 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable3 /*prop*/) /*MMLocalProperty::global*/;
1155 variable5 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*AbsSyntaxVisitor::module*/;
1156 ((syntax_base___MMGlobalProperty___check_visibility_t)CALL(variable4,COLOR_syntax_base___MMGlobalProperty___check_visibility))(variable4, variable0 /*v*/, self, variable5, TAG_Bool(false)) /*MMGlobalProperty::check_visibility*/;
1157 variable5 = ((static_type___MMLocalProperty___signature_for_t)CALL( variable3 /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable3 /*prop*/, variable1 /*type_lvalue*/) /*MMLocalProperty::signature_for*/;
1158 variable4 = variable5;
1159 ATTR_typing___AReassignFormExpr____assign_method( self) /*AReassignFormExpr::_assign_method*/ = variable3 /*prop*/;
1160 variable5 = ((parser_nodes___AReassignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_value))( self) /*AReassignFormExpr::n_value*/;
1161 variable6 = ((parser_nodes___AReassignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_value))( self) /*AReassignFormExpr::n_value*/;
1162 variable6 = ((typing___PExpr___stype_t)CALL(variable6,COLOR_syntax_base___PExpr___stype))(variable6) /*PExpr::stype*/;
1163 variable7 = ((static_type___MMSignature_____bra_t)CALL( variable4 /*psig*/,COLOR_static_type___MMSignature_____bra))( variable4 /*psig*/, TAG_Int(0)) /*MMSignature::[]*/;
1164 variable7 = ((static_type___MMType___not_for_self_t)CALL(variable7,COLOR_static_type___MMType___not_for_self))(variable7) /*MMType::not_for_self*/;
1165 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, variable5, variable6, variable7) /*AbsSyntaxVisitor::check_conform*/;
1166 variable5 = ((static_type___MMSignature___return_type_t)CALL( variable4 /*psig*/,COLOR_static_type___MMSignature___return_type))( variable4 /*psig*/) /*MMSignature::return_type*/;
1167 variable5 = ((static_type___MMType___not_for_self_t)CALL(variable5,COLOR_static_type___MMType___not_for_self))(variable5) /*MMType::not_for_self*/;
1168 variable6 = ((parser_nodes___AReassignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_value))( self) /*AReassignFormExpr::n_value*/;
1169 variable6 = ((typing___PExpr___stype_t)CALL(variable6,COLOR_syntax_base___PExpr___stype))(variable6) /*PExpr::stype*/;
1170 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable5, variable6) /*AbsSyntaxVisitor::check_conform*/;
1171 return_label42: while(false);
1172 tracehead = trace.prev;
1173 return;
1174 }
1175 val_t typing___AReassignFormExpr___assign_method(val_t self) {
1176 struct trace_t trace = {NULL, NULL, 460, LOCATE_typing___AReassignFormExpr___assign_method};
1177 trace.prev = tracehead; tracehead = &trace;
1178 trace.file = LOCATE_typing;
1179 tracehead = trace.prev;
1180 return ATTR_typing___AReassignFormExpr____assign_method( self) /*AReassignFormExpr::_assign_method*/;
1181 }
1182 void typing___AVarReassignExpr___after_typing(val_t self, val_t param0) {
1183 struct trace_t trace = {NULL, NULL, 465, LOCATE_typing___AVarReassignExpr___after_typing};
1184 val_t variable0;
1185 val_t variable1;
1186 val_t variable2;
1187 val_t variable3;
1188 trace.prev = tracehead; tracehead = &trace;
1189 trace.file = LOCATE_typing;
1190 variable0 = param0;
1191 variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
1192 variable3 = ((syntax_base___AVarFormExpr___variable_t)CALL( self,COLOR_syntax_base___AVarFormExpr___variable))( self) /*AVarFormExpr::variable*/;
1193 variable2 = ((typing___VariableContext___stype_t)CALL(variable2,COLOR_typing___VariableContext___stype))(variable2, variable3) /*VariableContext::stype*/;
1194 variable1 = variable2;
1195 ((typing___AReassignFormExpr___do_lvalue_typing_t)CALL( self,COLOR_typing___AReassignFormExpr___do_lvalue_typing))( self, variable0 /*v*/, variable1 /*t*/) /*AReassignFormExpr::do_lvalue_typing*/;
1196 tracehead = trace.prev;
1197 return;
1198 }
1199 val_t typing___PAssignOp___method_name(val_t self) {
1200 struct trace_t trace = {NULL, NULL, 473, LOCATE_typing___PAssignOp___method_name};
1201 trace.prev = tracehead; tracehead = &trace;
1202 trace.file = LOCATE_typing;
1203 fprintf(stderr, "Deferred method %s called");
1204 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___AVarReassignExpr___after_typing, LOCATE_typing, 473);
1205 nit_exit(1);
1206 tracehead = trace.prev;
1207 return NIT_NULL;
1208 }
1209 val_t typing___APlusAssignOp___method_name(val_t self) {
1210 struct trace_t trace = {NULL, NULL, 476, LOCATE_typing___APlusAssignOp___method_name};
1211 val_t variable0;
1212 static val_t once_value_variable0_45; static int once_bool_variable0_45;
1213 trace.prev = tracehead; tracehead = &trace;
1214 trace.file = LOCATE_typing;
1215 if (once_bool_variable0_45) variable0 = once_value_variable0_45;
1216 else {
1217 variable0 = NEW_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
1218 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
1219 once_value_variable0_45 = variable0;
1220 once_bool_variable0_45 = true;
1221 }
1222 goto return_label44;
1223 return_label44: while(false);
1224 tracehead = trace.prev;
1225 return variable0;
1226 }
1227 val_t typing___AMinusAssignOp___method_name(val_t self) {
1228 struct trace_t trace = {NULL, NULL, 479, LOCATE_typing___AMinusAssignOp___method_name};
1229 val_t variable0;
1230 static val_t once_value_variable0_47; static int once_bool_variable0_47;
1231 trace.prev = tracehead; tracehead = &trace;
1232 trace.file = LOCATE_typing;
1233 if (once_bool_variable0_47) variable0 = once_value_variable0_47;
1234 else {
1235 variable0 = NEW_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
1236 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
1237 once_value_variable0_47 = variable0;
1238 once_bool_variable0_47 = true;
1239 }
1240 goto return_label46;
1241 return_label46: while(false);
1242 tracehead = trace.prev;
1243 return variable0;
1244 }
1245 void typing___ASelfExpr___after_typing(val_t self, val_t param0) {
1246 struct trace_t trace = {NULL, NULL, 483, LOCATE_typing___ASelfExpr___after_typing};
1247 val_t variable0;
1248 val_t variable1;
1249 trace.prev = tracehead; tracehead = &trace;
1250 trace.file = LOCATE_typing;
1251 variable0 = param0;
1252 variable1 = ((typing___TypingVisitor___self_type_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___self_type))( variable0 /*v*/) /*TypingVisitor::self_type*/;
1253 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))))));
1254 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ASelfExpr___after_typing, LOCATE_typing, 485); nit_exit(1);}
1255 variable1 = ((typing___TypingVisitor___self_type_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___self_type))( variable0 /*v*/) /*TypingVisitor::self_type*/;
1256 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
1257 tracehead = trace.prev;
1258 return;
1259 }
1260 val_t typing___ASelfExpr___is_self(val_t self) {
1261 struct trace_t trace = {NULL, NULL, 489, LOCATE_typing___ASelfExpr___is_self};
1262 val_t variable0;
1263 trace.prev = tracehead; tracehead = &trace;
1264 trace.file = LOCATE_typing;
1265 variable0 = TAG_Bool(true);
1266 goto return_label49;
1267 return_label49: while(false);
1268 tracehead = trace.prev;
1269 return variable0;
1270 }
1271 val_t typing___AImplicitSelfExpr___is_implicit_self(val_t self) {
1272 struct trace_t trace = {NULL, NULL, 493, LOCATE_typing___AImplicitSelfExpr___is_implicit_self};
1273 val_t variable0;
1274 trace.prev = tracehead; tracehead = &trace;
1275 trace.file = LOCATE_typing;
1276 variable0 = TAG_Bool(true);
1277 goto return_label50;
1278 return_label50: while(false);
1279 tracehead = trace.prev;
1280 return variable0;
1281 }
1282 void typing___AIfexprExpr___accept_typing(val_t self, val_t param0) {
1283 struct trace_t trace = {NULL, NULL, 497, LOCATE_typing___AIfexprExpr___accept_typing};
1284 val_t variable0;
1285 val_t variable1;
1286 val_t variable2;
1287 val_t variable3;
1288 val_t variable4;
1289 val_t variable5;
1290 val_t variable6;
1291 val_t variable7;
1292 val_t variable8;
1293 val_t variable9;
1294 val_t variable10;
1295 val_t variable11;
1296 val_t variable12;
1297 trace.prev = tracehead; tracehead = &trace;
1298 trace.file = LOCATE_typing;
1299 variable0 = param0;
1300 variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
1301 variable1 = variable2;
1302 variable2 = ((parser_nodes___AIfexprExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_expr))( self) /*AIfexprExpr::n_expr*/;
1303 ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
1304 variable2 = ((parser_nodes___AIfexprExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_expr))( self) /*AIfexprExpr::n_expr*/;
1305 variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
1306 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))))));
1307 if (UNTAG_Bool(variable2)) { /*if*/
1308 variable2 = ((parser_nodes___AIfexprExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_expr))( self) /*AIfexprExpr::n_expr*/;
1309 variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
1310 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable2) /*TypingVisitor::variable_ctx=*/;
1311 }
1312 variable2 = ((parser_nodes___AIfexprExpr___n_then_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_then))( self) /*AIfexprExpr::n_then*/;
1313 ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
1314 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable1 /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
1315 variable2 = ((parser_nodes___AIfexprExpr___n_else_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_else))( self) /*AIfexprExpr::n_else*/;
1316 ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
1317 variable2 = ((parser_nodes___AIfexprExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_expr))( self) /*AIfexprExpr::n_expr*/;
1318 variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
1319 variable3 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1320 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable2, variable3) /*AbsSyntaxVisitor::check_conform*/;
1321 variable3 = ((parser_nodes___AIfexprExpr___n_then_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_then))( self) /*AIfexprExpr::n_then*/;
1322 variable3 = ((typing___PExpr___stype_t)CALL(variable3,COLOR_syntax_base___PExpr___stype))(variable3) /*PExpr::stype*/;
1323 variable2 = variable3;
1324 variable4 = ((parser_nodes___AIfexprExpr___n_else_t)CALL( self,COLOR_parser_nodes___AIfexprExpr___n_else))( self) /*AIfexprExpr::n_else*/;
1325 variable4 = ((typing___PExpr___stype_t)CALL(variable4,COLOR_syntax_base___PExpr___stype))(variable4) /*PExpr::stype*/;
1326 variable3 = variable4;
1327 variable4 = ((static_type___MMType_____l_t)CALL( variable2 /*t*/,COLOR_static_type___MMType_____l))( variable2 /*t*/, variable3 /*te*/) /*MMType::<*/;
1328 if (UNTAG_Bool(variable4)) { /*if*/
1329 variable2 = variable3 /*te*/ /*t=*/;
1330 } else { /*if*/
1331 variable4 = ((static_type___MMType_____l_t)CALL( variable3 /*te*/,COLOR_static_type___MMType_____l))( variable3 /*te*/, variable2 /*t*/) /*MMType::<*/;
1332 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable4)))) { /*if*/
1333 variable4 = NEW_string___String___init(); /*new String*/
1334 variable5 = NEW_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)); /*new String*/
1335 variable6 = variable5;
1336 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
1337 variable7 = variable3 /*te*/;
1338 variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
1339 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
1340 variable8 = NEW_string___String___with_native(BOX_NativeString(" is not a subtype of "), TAG_Int(21)); /*new String*/
1341 variable9 = variable8;
1342 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
1343 variable10 = variable2 /*t*/;
1344 variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
1345 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
1346 variable11 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
1347 variable12 = variable11;
1348 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
1349 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable4) /*AbsSyntaxVisitor::error*/;
1350 goto return_label51;
1351 }
1352 }
1353 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable2 /*t*/;
1354 return_label51: while(false);
1355 tracehead = trace.prev;
1356 return;
1357 }
1358 void typing___ABoolExpr___after_typing(val_t self, val_t param0) {
1359 struct trace_t trace = {NULL, NULL, 523, LOCATE_typing___ABoolExpr___after_typing};
1360 val_t variable0;
1361 val_t variable1;
1362 trace.prev = tracehead; tracehead = &trace;
1363 trace.file = LOCATE_typing;
1364 variable0 = param0;
1365 variable1 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1366 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
1367 tracehead = trace.prev;
1368 return;
1369 }
1370 void typing___AOrExpr___after_typing(val_t self, val_t param0) {
1371 struct trace_t trace = {NULL, NULL, 530, LOCATE_typing___AOrExpr___after_typing};
1372 val_t variable0;
1373 val_t variable1;
1374 val_t variable2;
1375 trace.prev = tracehead; tracehead = &trace;
1376 trace.file = LOCATE_typing;
1377 variable0 = param0;
1378 variable1 = ((parser_nodes___AOrExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AOrExpr___n_expr))( self) /*AOrExpr::n_expr*/;
1379 variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
1380 variable2 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1381 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable1, variable2) /*AbsSyntaxVisitor::check_conform*/;
1382 variable1 = ((parser_nodes___AOrExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___AOrExpr___n_expr2))( self) /*AOrExpr::n_expr2*/;
1383 variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
1384 variable2 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1385 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable1, variable2) /*AbsSyntaxVisitor::check_conform*/;
1386 variable1 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1387 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
1388 tracehead = trace.prev;
1389 return;
1390 }
1391 void typing___AAndExpr___accept_typing(val_t self, val_t param0) {
1392 struct trace_t trace = {NULL, NULL, 539, LOCATE_typing___AAndExpr___accept_typing};
1393 val_t variable0;
1394 val_t variable1;
1395 val_t variable2;
1396 val_t variable3;
1397 trace.prev = tracehead; tracehead = &trace;
1398 trace.file = LOCATE_typing;
1399 variable0 = param0;
1400 variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
1401 variable1 = variable2;
1402 variable2 = ((parser_nodes___AAndExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr))( self) /*AAndExpr::n_expr*/;
1403 ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
1404 variable2 = ((parser_nodes___AAndExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr))( self) /*AAndExpr::n_expr*/;
1405 variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
1406 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))))));
1407 if (UNTAG_Bool(variable2)) { /*if*/
1408 variable2 = ((parser_nodes___AAndExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr))( self) /*AAndExpr::n_expr*/;
1409 variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
1410 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable2) /*TypingVisitor::variable_ctx=*/;
1411 }
1412 variable2 = ((parser_nodes___AAndExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr2))( self) /*AAndExpr::n_expr2*/;
1413 ((typing___TypingVisitor___visit_t)CALL( variable0 /*v*/,COLOR_parser_prod___Visitor___visit))( variable0 /*v*/, variable2) /*TypingVisitor::visit*/;
1414 variable2 = ((parser_nodes___AAndExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr2))( self) /*AAndExpr::n_expr2*/;
1415 variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
1416 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))))));
1417 if (UNTAG_Bool(variable2)) { /*if*/
1418 variable2 = ((parser_nodes___AAndExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr2))( self) /*AAndExpr::n_expr2*/;
1419 variable2 = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable2,COLOR_typing___PExpr___if_true_variable_ctx))(variable2) /*PExpr::if_true_variable_ctx*/;
1420 ATTR_typing___PExpr____if_true_variable_ctx( self) /*PExpr::_if_true_variable_ctx*/ = variable2;
1421 } else { /*if*/
1422 variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
1423 ATTR_typing___PExpr____if_true_variable_ctx( self) /*PExpr::_if_true_variable_ctx*/ = variable2;
1424 }
1425 ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable0 /*v*/, variable1 /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
1426 variable2 = ((parser_nodes___AAndExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr))( self) /*AAndExpr::n_expr*/;
1427 variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
1428 variable3 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1429 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable2, variable3) /*AbsSyntaxVisitor::check_conform*/;
1430 variable2 = ((parser_nodes___AAndExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___AAndExpr___n_expr2))( self) /*AAndExpr::n_expr2*/;
1431 variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
1432 variable3 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1433 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable2, variable3) /*AbsSyntaxVisitor::check_conform*/;
1434 variable2 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1435 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable2;
1436 tracehead = trace.prev;
1437 return;
1438 }
1439 void typing___ANotExpr___after_typing(val_t self, val_t param0) {
1440 struct trace_t trace = {NULL, NULL, 562, LOCATE_typing___ANotExpr___after_typing};
1441 val_t variable0;
1442 val_t variable1;
1443 val_t variable2;
1444 trace.prev = tracehead; tracehead = &trace;
1445 trace.file = LOCATE_typing;
1446 variable0 = param0;
1447 variable1 = ((parser_nodes___ANotExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ANotExpr___n_expr))( self) /*ANotExpr::n_expr*/;
1448 variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
1449 variable2 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1450 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable1, variable2) /*AbsSyntaxVisitor::check_conform*/;
1451 variable1 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1452 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
1453 tracehead = trace.prev;
1454 return;
1455 }
1456 void typing___AIntExpr___after_typing(val_t self, val_t param0) {
1457 struct trace_t trace = {NULL, NULL, 570, LOCATE_typing___AIntExpr___after_typing};
1458 val_t variable0;
1459 val_t variable1;
1460 trace.prev = tracehead; tracehead = &trace;
1461 trace.file = LOCATE_typing;
1462 variable0 = param0;
1463 variable1 = ((syntax_base___AbsSyntaxVisitor___type_int_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_int))( variable0 /*v*/) /*AbsSyntaxVisitor::type_int*/;
1464 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
1465 tracehead = trace.prev;
1466 return;
1467 }
1468 void typing___AFloatExpr___after_typing(val_t self, val_t param0) {
1469 struct trace_t trace = {NULL, NULL, 578, LOCATE_typing___AFloatExpr___after_typing};
1470 val_t variable0;
1471 val_t variable1;
1472 trace.prev = tracehead; tracehead = &trace;
1473 trace.file = LOCATE_typing;
1474 variable0 = param0;
1475 variable1 = ((syntax_base___AbsSyntaxVisitor___type_float_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_float))( variable0 /*v*/) /*AbsSyntaxVisitor::type_float*/;
1476 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
1477 tracehead = trace.prev;
1478 return;
1479 }
1480 void typing___ACharExpr___after_typing(val_t self, val_t param0) {
1481 struct trace_t trace = {NULL, NULL, 585, LOCATE_typing___ACharExpr___after_typing};
1482 val_t variable0;
1483 val_t variable1;
1484 trace.prev = tracehead; tracehead = &trace;
1485 trace.file = LOCATE_typing;
1486 variable0 = param0;
1487 variable1 = ((syntax_base___AbsSyntaxVisitor___type_char_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_char))( variable0 /*v*/) /*AbsSyntaxVisitor::type_char*/;
1488 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
1489 tracehead = trace.prev;
1490 return;
1491 }
1492 void typing___AStringFormExpr___after_typing(val_t self, val_t param0) {
1493 struct trace_t trace = {NULL, NULL, 592, LOCATE_typing___AStringFormExpr___after_typing};
1494 val_t variable0;
1495 val_t variable1;
1496 trace.prev = tracehead; tracehead = &trace;
1497 trace.file = LOCATE_typing;
1498 variable0 = param0;
1499 variable1 = ((syntax_base___AbsSyntaxVisitor___type_string_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_string))( variable0 /*v*/) /*AbsSyntaxVisitor::type_string*/;
1500 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
1501 tracehead = trace.prev;
1502 return;
1503 }
1504 void typing___ASuperstringExpr___after_typing(val_t self, val_t param0) {
1505 struct trace_t trace = {NULL, NULL, 599, LOCATE_typing___ASuperstringExpr___after_typing};
1506 val_t variable0;
1507 val_t variable1;
1508 trace.prev = tracehead; tracehead = &trace;
1509 trace.file = LOCATE_typing;
1510 variable0 = param0;
1511 variable1 = ((syntax_base___AbsSyntaxVisitor___type_string_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_string))( variable0 /*v*/) /*AbsSyntaxVisitor::type_string*/;
1512 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
1513 tracehead = trace.prev;
1514 return;
1515 }
1516 void typing___ANullExpr___after_typing(val_t self, val_t param0) {
1517 struct trace_t trace = {NULL, NULL, 606, LOCATE_typing___ANullExpr___after_typing};
1518 val_t variable0;
1519 val_t variable1;
1520 trace.prev = tracehead; tracehead = &trace;
1521 trace.file = LOCATE_typing;
1522 variable0 = param0;
1523 variable1 = ((syntax_base___AbsSyntaxVisitor___type_none_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_none))( variable0 /*v*/) /*AbsSyntaxVisitor::type_none*/;
1524 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
1525 tracehead = trace.prev;
1526 return;
1527 }
1528 void typing___AArrayExpr___stype__eq(val_t self, val_t param0) {
1529 struct trace_t trace = {NULL, NULL, 613, LOCATE_typing___AArrayExpr___stype__eq};
1530 val_t variable0;
1531 trace.prev = tracehead; tracehead = &trace;
1532 trace.file = LOCATE_typing;
1533 variable0 = param0;
1534 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable0 /*t*/;
1535 tracehead = trace.prev;
1536 return;
1537 }
1538 void typing___AArrayExpr___after_typing(val_t self, val_t param0) {
1539 struct trace_t trace = {NULL, NULL, 615, LOCATE_typing___AArrayExpr___after_typing};
1540 val_t variable0;
1541 val_t variable1;
1542 val_t variable2;
1543 val_t variable3;
1544 val_t variable4;
1545 val_t variable5;
1546 val_t variable6;
1547 val_t variable7;
1548 trace.prev = tracehead; tracehead = &trace;
1549 trace.file = LOCATE_typing;
1550 variable0 = param0;
1551 variable1 = NIT_NULL /*null*/;
1552 variable2 = ((parser_nodes___AArrayExpr___n_exprs_t)CALL( self,COLOR_parser_nodes___AArrayExpr___n_exprs))( self) /*AArrayExpr::n_exprs*/;
1553 variable2 = ((list___List___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*List::iterator*/;
1554 while (true) { /*for*/
1555 variable3 = ((list___ListIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ListIterator::is_ok*/;
1556 if (!UNTAG_Bool(variable3)) break; /*for*/
1557 variable3 = ((list___ListIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ListIterator::item*/;
1558 variable5 = ((typing___PExpr___stype_t)CALL( variable3 /*n*/,COLOR_syntax_base___PExpr___stype))( variable3 /*n*/) /*PExpr::stype*/;
1559 variable4 = variable5;
1560 variable5 = TAG_Bool(( variable1 /*stype*/ == NIT_NULL /*null*/) || (( variable1 /*stype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*stype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*stype*/,COLOR_kernel___Object_____eqeq))( variable1 /*stype*/, NIT_NULL /*null*/) /*Object::==*/)))));
1561 variable6 = variable5;
1562 if (!UNTAG_Bool(variable6)) { /* or */
1563 variable6 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable4 /*ntype*/ == NIT_NULL /*null*/) || (( variable4 /*ntype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*ntype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*ntype*/,COLOR_kernel___Object_____eqeq))( variable4 /*ntype*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1564 variable7 = variable6;
1565 if (UNTAG_Bool(variable7)) { /* and */
1566 variable7 = ((static_type___MMType_____l_t)CALL( variable1 /*stype*/,COLOR_static_type___MMType_____l))( variable1 /*stype*/, variable4 /*ntype*/) /*MMType::<*/;
1567 }
1568 variable6 = variable7;
1569 }
1570 variable5 = variable6;
1571 if (UNTAG_Bool(variable5)) { /*if*/
1572 variable1 = variable4 /*ntype*/ /*stype=*/;
1573 }
1574 continue_64: while(0);
1575 ((list___ListIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ListIterator::next*/;
1576 }
1577 break_64: while(0);
1578 variable2 = ((parser_nodes___AArrayExpr___n_exprs_t)CALL( self,COLOR_parser_nodes___AArrayExpr___n_exprs))( self) /*AArrayExpr::n_exprs*/;
1579 variable2 = ((list___List___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*List::iterator*/;
1580 while (true) { /*for*/
1581 variable3 = ((list___ListIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ListIterator::is_ok*/;
1582 if (!UNTAG_Bool(variable3)) break; /*for*/
1583 variable3 = ((list___ListIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ListIterator::item*/;
1584 variable4 = ((typing___PExpr___stype_t)CALL( variable3 /*n*/,COLOR_syntax_base___PExpr___stype))( variable3 /*n*/) /*PExpr::stype*/;
1585 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable4, variable1 /*stype*/) /*AbsSyntaxVisitor::check_conform*/;
1586 continue_65: while(0);
1587 ((list___ListIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ListIterator::next*/;
1588 }
1589 break_65: while(0);
1590 variable2 = ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_array))( variable0 /*v*/, variable1 /*stype*/) /*AbsSyntaxVisitor::type_array*/;
1591 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable2;
1592 tracehead = trace.prev;
1593 return;
1594 }
1595 void typing___ARangeExpr___after_typing(val_t self, val_t param0) {
1596 struct trace_t trace = {NULL, NULL, 632, LOCATE_typing___ARangeExpr___after_typing};
1597 val_t variable0;
1598 val_t variable1;
1599 val_t variable2;
1600 val_t variable3;
1601 val_t variable4;
1602 val_t variable5;
1603 val_t variable6;
1604 val_t variable7;
1605 val_t variable8;
1606 val_t variable9;
1607 val_t variable10;
1608 val_t variable11;
1609 trace.prev = tracehead; tracehead = &trace;
1610 trace.file = LOCATE_typing;
1611 variable0 = param0;
1612 variable2 = ((parser_nodes___ARangeExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ARangeExpr___n_expr))( self) /*ARangeExpr::n_expr*/;
1613 variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
1614 variable1 = variable2;
1615 variable3 = ((parser_nodes___ARangeExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___ARangeExpr___n_expr2))( self) /*ARangeExpr::n_expr2*/;
1616 variable3 = ((typing___PExpr___stype_t)CALL(variable3,COLOR_syntax_base___PExpr___stype))(variable3) /*PExpr::stype*/;
1617 variable2 = variable3;
1618 variable3 = TAG_Bool(( variable1 /*ntype*/ == NIT_NULL /*null*/) || (( variable1 /*ntype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*ntype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*ntype*/,COLOR_kernel___Object_____eqeq))( variable1 /*ntype*/, NIT_NULL /*null*/) /*Object::==*/)))));
1619 variable4 = variable3;
1620 if (!UNTAG_Bool(variable4)) { /* or */
1621 variable4 = TAG_Bool(( variable1 /*ntype*/ == NIT_NULL /*null*/) || (( variable1 /*ntype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*ntype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*ntype*/,COLOR_kernel___Object_____eqeq))( variable1 /*ntype*/, NIT_NULL /*null*/) /*Object::==*/)))));
1622 }
1623 variable3 = variable4;
1624 if (UNTAG_Bool(variable3)) { /*if*/
1625 goto return_label66;
1626 }
1627 variable3 = ((static_type___MMType_____l_t)CALL( variable1 /*ntype*/,COLOR_static_type___MMType_____l))( variable1 /*ntype*/, variable2 /*ntype2*/) /*MMType::<*/;
1628 if (UNTAG_Bool(variable3)) { /*if*/
1629 variable1 = variable2 /*ntype2*/ /*ntype=*/;
1630 } else { /*if*/
1631 variable3 = ((static_type___MMType_____l_t)CALL( variable2 /*ntype2*/,COLOR_static_type___MMType_____l))( variable2 /*ntype2*/, variable1 /*ntype*/) /*MMType::<*/;
1632 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
1633 variable3 = NEW_string___String___init(); /*new String*/
1634 variable4 = NEW_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)); /*new String*/
1635 variable5 = variable4;
1636 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
1637 variable6 = variable1 /*ntype*/;
1638 variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
1639 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
1640 variable7 = NEW_string___String___with_native(BOX_NativeString(" incompatible with "), TAG_Int(19)); /*new String*/
1641 variable8 = variable7;
1642 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
1643 variable9 = variable2 /*ntype2*/;
1644 variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
1645 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
1646 variable10 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
1647 variable11 = variable10;
1648 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable11) /*String::append*/;
1649 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable3) /*AbsSyntaxVisitor::error*/;
1650 goto return_label66;
1651 }
1652 }
1653 variable4 = ((syntax_base___AbsSyntaxVisitor___type_discrete_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_discrete))( variable0 /*v*/) /*AbsSyntaxVisitor::type_discrete*/;
1654 variable3 = variable4;
1655 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable1 /*ntype*/, variable3 /*dtype*/) /*AbsSyntaxVisitor::check_conform*/;
1656 variable4 = ((syntax_base___AbsSyntaxVisitor___type_range_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_range))( variable0 /*v*/, variable1 /*ntype*/) /*AbsSyntaxVisitor::type_range*/;
1657 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable4;
1658 return_label66: while(false);
1659 tracehead = trace.prev;
1660 return;
1661 }
1662 val_t typing___ASuperExpr___init_in_superclass(val_t self) {
1663 struct trace_t trace = {NULL, NULL, 653, LOCATE_typing___ASuperExpr___init_in_superclass};
1664 trace.prev = tracehead; tracehead = &trace;
1665 trace.file = LOCATE_typing;
1666 tracehead = trace.prev;
1667 return ATTR_typing___ASuperExpr____init_in_superclass( self) /*ASuperExpr::_init_in_superclass*/;
1668 }
1669 void typing___ASuperExpr___after_typing(val_t self, val_t param0) {
1670 struct trace_t trace = {NULL, NULL, 655, LOCATE_typing___ASuperExpr___after_typing};
1671 val_t variable0;
1672 val_t variable1;
1673 val_t variable2;
1674 val_t variable3;
1675 val_t variable4;
1676 val_t variable5;
1677 val_t variable6;
1678 val_t variable7;
1679 val_t variable8;
1680 val_t variable9;
1681 val_t variable10;
1682 val_t variable11;
1683 val_t variable12;
1684 val_t variable13;
1685 val_t variable14;
1686 trace.prev = tracehead; tracehead = &trace;
1687 trace.file = LOCATE_typing;
1688 variable0 = param0;
1689 variable2 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*AbsSyntaxVisitor::local_property*/;
1690 variable2 = ((abstractmetamodel___MMLocalProperty___prhe_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalProperty___prhe))(variable2) /*MMLocalProperty::prhe*/;
1691 variable2 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable2,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable2) /*PartialOrderElement::direct_greaters*/;
1692 variable1 = variable2;
1693 variable2 = ((array___AbstractArray___is_empty_t)CALL( variable1 /*precs*/,COLOR_abstract_collection___Collection___is_empty))( variable1 /*precs*/) /*AbstractArray::is_empty*/;
1694 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2)))) { /*if*/
1695 variable2 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*AbsSyntaxVisitor::local_property*/;
1696 ((abstractmetamodel___MMLocalProperty___need_super__eq_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalProperty___need_super__eq))(variable2, TAG_Bool(true)) /*MMLocalProperty::need_super=*/;
1697 } else { /*if*/
1698 variable2 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*AbsSyntaxVisitor::local_property*/;
1699 variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalProperty___global))(variable2) /*MMLocalProperty::global*/;
1700 variable2 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable2,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable2) /*MMGlobalProperty::is_init*/;
1701 if (UNTAG_Bool(variable2)) { /*if*/
1702 variable3 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*AbsSyntaxVisitor::local_class*/;
1703 variable4 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*AbsSyntaxVisitor::local_property*/;
1704 variable4 = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___name))(variable4) /*MMLocalProperty::name*/;
1705 variable3 = ((abstractmetamodel___MMLocalClass___super_methods_named_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___super_methods_named))(variable3, variable4) /*MMLocalClass::super_methods_named*/;
1706 variable2 = variable3;
1707 variable3 = ((array___AbstractArray___iterator_t)CALL( variable2 /*base_precs*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*base_precs*/) /*AbstractArray::iterator*/;
1708 while (true) { /*for*/
1709 variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
1710 if (!UNTAG_Bool(variable4)) break; /*for*/
1711 variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
1712 variable5 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable4 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable4 /*p*/) /*MMLocalProperty::global*/;
1713 variable5 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable5,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable5) /*MMGlobalProperty::is_init*/;
1714 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable5)))) { /*if*/
1715 variable5 = NEW_string___String___init(); /*new String*/
1716 variable6 = NEW_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
1717 variable7 = variable6;
1718 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
1719 variable8 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable4 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable4 /*p*/) /*MMLocalProperty::local_class*/;
1720 variable9 = variable8;
1721 variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
1722 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable9) /*String::append*/;
1723 variable10 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
1724 variable11 = variable10;
1725 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
1726 variable12 = variable4 /*p*/;
1727 variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
1728 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable12) /*String::append*/;
1729 variable13 = NEW_string___String___with_native(BOX_NativeString(" is not a constructor."), TAG_Int(22)); /*new String*/
1730 variable14 = variable13;
1731 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable14) /*String::append*/;
1732 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable5) /*AbsSyntaxVisitor::error*/;
1733 } else { /*if*/
1734 variable5 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*AbsSyntaxVisitor::local_class*/;
1735 variable6 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable4 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable4 /*p*/) /*MMLocalProperty::global*/;
1736 variable5 = ((inheritance___MMLocalClass_____bra_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass_____bra))(variable5, variable6) /*MMLocalClass::[]*/;
1737 ((array___AbstractArray___add_t)CALL( variable1 /*precs*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*precs*/, variable5) /*AbstractArray::add*/;
1738 }
1739 continue_68: while(0);
1740 ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
1741 }
1742 break_68: while(0);
1743 variable3 = ((array___AbstractArray___is_empty_t)CALL( variable1 /*precs*/,COLOR_abstract_collection___Collection___is_empty))( variable1 /*precs*/) /*AbstractArray::is_empty*/;
1744 if (UNTAG_Bool(variable3)) { /*if*/
1745 variable3 = NEW_string___String___init(); /*new String*/
1746 variable4 = NEW_string___String___with_native(BOX_NativeString("Error: No contructor named "), TAG_Int(27)); /*new String*/
1747 variable5 = variable4;
1748 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
1749 variable6 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*AbsSyntaxVisitor::local_property*/;
1750 variable6 = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable6,COLOR_abstractmetamodel___MMLocalProperty___name))(variable6) /*MMLocalProperty::name*/;
1751 variable7 = variable6;
1752 variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
1753 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
1754 variable8 = NEW_string___String___with_native(BOX_NativeString(" in superclasses."), TAG_Int(17)); /*new String*/
1755 variable9 = variable8;
1756 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
1757 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable3) /*AbsSyntaxVisitor::error*/;
1758 goto return_label67;
1759 } else { /*if*/
1760 variable3 = ((array___AbstractArray___length_t)CALL( variable1 /*precs*/,COLOR_abstract_collection___Collection___length))( variable1 /*precs*/) /*AbstractArray::length*/;
1761 variable3 = TAG_Bool(UNTAG_Int(variable3)>UNTAG_Int( TAG_Int(1)));
1762 if (UNTAG_Bool(variable3)) { /*if*/
1763 variable3 = NEW_string___String___init(); /*new String*/
1764 variable4 = NEW_string___String___with_native(BOX_NativeString("Error: Conflicting contructors named "), TAG_Int(37)); /*new String*/
1765 variable5 = variable4;
1766 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
1767 variable6 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*AbsSyntaxVisitor::local_property*/;
1768 variable6 = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable6,COLOR_abstractmetamodel___MMLocalProperty___name))(variable6) /*MMLocalProperty::name*/;
1769 variable7 = variable6;
1770 variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
1771 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
1772 variable8 = NEW_string___String___with_native(BOX_NativeString(" in superclasses: "), TAG_Int(18)); /*new String*/
1773 variable9 = variable8;
1774 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
1775 variable10 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
1776 variable10 = ((string___Collection___join_t)CALL( variable1 /*precs*/,COLOR_string___Collection___join))( variable1 /*precs*/, variable10) /*Collection::join*/;
1777 variable11 = variable10;
1778 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable11) /*String::append*/;
1779 variable12 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
1780 variable13 = variable12;
1781 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable13) /*String::append*/;
1782 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable3) /*AbsSyntaxVisitor::error*/;
1783 goto return_label67;
1784 }
1785 }
1786 variable4 = ((abstract_collection___IndexedCollection___first_t)CALL( variable2 /*base_precs*/,COLOR_abstract_collection___Collection___first))( variable2 /*base_precs*/) /*IndexedCollection::first*/;
1787 variable3 = variable4;
1788 variable4 = TAG_Bool(( variable3 /*p*/==NIT_NULL) || VAL_ISA( variable3 /*p*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
1789 if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing, LOCATE_typing, 677); nit_exit(1);}
1790 ATTR_typing___ASuperExpr____init_in_superclass( self) /*ASuperExpr::_init_in_superclass*/ = variable3 /*p*/;
1791 ((typing___ASuperInitCall___register_super_init_call_t)CALL( self,COLOR_typing___ASuperInitCall___register_super_init_call))( self, variable0 /*v*/, variable3 /*p*/) /*ASuperInitCall::register_super_init_call*/;
1792 variable4 = ((parser_nodes___ASuperExpr___n_args_t)CALL( self,COLOR_parser_nodes___ASuperExpr___n_args))( self) /*ASuperExpr::n_args*/;
1793 variable4 = ((list___List___length_t)CALL(variable4,COLOR_abstract_collection___Collection___length))(variable4) /*List::length*/;
1794 variable4 = TAG_Bool(UNTAG_Int(variable4)>UNTAG_Int( TAG_Int(0)));
1795 if (UNTAG_Bool(variable4)) { /*if*/
1796 variable4 = ((typing___TypingVisitor___self_type_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___self_type))( variable0 /*v*/) /*TypingVisitor::self_type*/;
1797 variable5 = ((parser_nodes___ASuperExpr___n_args_t)CALL( self,COLOR_parser_nodes___ASuperExpr___n_args))( self) /*ASuperExpr::n_args*/;
1798 variable5 = ((array___Collection___to_a_t)CALL(variable5,COLOR_array___Collection___to_a))(variable5) /*Collection::to_a*/;
1799 variable4 = ((typing___AAbsSendExpr___process_signature_t)CALL( self,COLOR_typing___AAbsSendExpr___process_signature))( self, variable0 /*v*/, variable4, variable3 /*p*/, TAG_Bool(true), variable5) /*AAbsSendExpr::process_signature*/;
1800 ATTR_typing___AAbsSendExpr____arguments( self) /*AAbsSendExpr::_arguments*/ = variable4;
1801 }
1802 } else { /*if*/
1803 variable2 = NEW_string___String___init(); /*new String*/
1804 variable3 = NEW_string___String___with_native(BOX_NativeString("Error: No super method to call for "), TAG_Int(35)); /*new String*/
1805 variable4 = variable3;
1806 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
1807 variable5 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*AbsSyntaxVisitor::local_property*/;
1808 variable6 = variable5;
1809 variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
1810 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
1811 variable7 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
1812 variable8 = variable7;
1813 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
1814 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable2) /*AbsSyntaxVisitor::error*/;
1815 goto return_label67;
1816 }
1817 }
1818 variable2 = ((abstract_collection___IndexedCollection___first_t)CALL( variable1 /*precs*/,COLOR_abstract_collection___Collection___first))( variable1 /*precs*/) /*IndexedCollection::first*/;
1819 variable3 = ((typing___TypingVisitor___self_type_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___self_type))( variable0 /*v*/) /*TypingVisitor::self_type*/;
1820 variable2 = ((static_type___MMLocalProperty___signature_for_t)CALL(variable2,COLOR_static_type___MMLocalProperty___signature_for))(variable2, variable3) /*MMLocalProperty::signature_for*/;
1821 variable2 = ((static_type___MMSignature___return_type_t)CALL(variable2,COLOR_static_type___MMSignature___return_type))(variable2) /*MMSignature::return_type*/;
1822 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))))));
1823 if (UNTAG_Bool(variable2)) { /*if*/
1824 variable3 = NEW_array___Array___init(); /*new Array[E]*/
1825 variable2 = variable3;
1826 variable3 = NIT_NULL /*null*/;
1827 variable4 = ((array___AbstractArray___iterator_t)CALL( variable1 /*precs*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*precs*/) /*AbstractArray::iterator*/;
1828 while (true) { /*for*/
1829 variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
1830 if (!UNTAG_Bool(variable5)) break; /*for*/
1831 variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
1832 variable6 = TAG_Bool(( variable5 /*prop*/==NIT_NULL) || VAL_ISA( variable5 /*prop*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
1833 if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing, LOCATE_typing, 692); nit_exit(1);}
1834 variable7 = ((typing___TypingVisitor___self_type_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___self_type))( variable0 /*v*/) /*TypingVisitor::self_type*/;
1835 variable7 = ((static_type___MMLocalProperty___signature_for_t)CALL( variable5 /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable5 /*prop*/, variable7) /*MMLocalProperty::signature_for*/;
1836 variable7 = ((static_type___MMSignature___return_type_t)CALL(variable7,COLOR_static_type___MMSignature___return_type))(variable7) /*MMSignature::return_type*/;
1837 variable8 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*AbsSyntaxVisitor::module*/;
1838 variable7 = ((static_type___MMType___for_module_t)CALL(variable7,COLOR_static_type___MMType___for_module))(variable7, variable8) /*MMType::for_module*/;
1839 variable8 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*AbsSyntaxVisitor::local_property*/;
1840 variable8 = ((static_type___MMLocalProperty___signature_t)CALL(variable8,COLOR_static_type___MMLocalProperty___signature))(variable8) /*MMLocalProperty::signature*/;
1841 variable8 = ((static_type___MMSignature___recv_t)CALL(variable8,COLOR_static_type___MMSignature___recv))(variable8) /*MMSignature::recv*/;
1842 variable7 = ((static_type___MMType___adapt_to_t)CALL(variable7,COLOR_static_type___MMType___adapt_to))(variable7, variable8) /*MMType::adapt_to*/;
1843 variable6 = variable7;
1844 ((array___AbstractArray___add_t)CALL( variable2 /*stypes*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*stypes*/, variable6 /*t*/) /*AbstractArray::add*/;
1845 variable7 = TAG_Bool(( variable3 /*stype*/ == NIT_NULL /*null*/) || (( variable3 /*stype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*stype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*stype*/,COLOR_kernel___Object_____eqeq))( variable3 /*stype*/, NIT_NULL /*null*/) /*Object::==*/)))));
1846 variable8 = variable7;
1847 if (!UNTAG_Bool(variable8)) { /* or */
1848 variable8 = ((static_type___MMType_____l_t)CALL( variable3 /*stype*/,COLOR_static_type___MMType_____l))( variable3 /*stype*/, variable6 /*t*/) /*MMType::<*/;
1849 }
1850 variable7 = variable8;
1851 if (UNTAG_Bool(variable7)) { /*if*/
1852 variable3 = variable6 /*t*/ /*stype=*/;
1853 }
1854 continue_69: while(0);
1855 ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
1856 }
1857 break_69: while(0);
1858 variable4 = ((array___AbstractArray___iterator_t)CALL( variable2 /*stypes*/,COLOR_abstract_collection___Collection___iterator))( variable2 /*stypes*/) /*AbstractArray::iterator*/;
1859 while (true) { /*for*/
1860 variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
1861 if (!UNTAG_Bool(variable5)) break; /*for*/
1862 variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
1863 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable5 /*t*/, variable3 /*stype*/) /*AbsSyntaxVisitor::check_conform*/;
1864 continue_70: while(0);
1865 ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
1866 }
1867 break_70: while(0);
1868 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable3 /*stype*/;
1869 }
1870 variable3 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*AbsSyntaxVisitor::local_property*/;
1871 variable2 = variable3;
1872 variable3 = TAG_Bool(( variable2 /*p*/==NIT_NULL) || VAL_ISA( variable2 /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
1873 if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing, LOCATE_typing, 705); nit_exit(1);}
1874 ATTR_typing___AAbsSendExpr____prop( self) /*AAbsSendExpr::_prop*/ = variable2 /*p*/;
1875 return_label67: while(false);
1876 tracehead = trace.prev;
1877 return;
1878 }
1879 val_t typing___AAttrFormExpr___prop(val_t self) {
1880 struct trace_t trace = {NULL, NULL, 711, LOCATE_typing___AAttrFormExpr___prop};
1881 trace.prev = tracehead; tracehead = &trace;
1882 trace.file = LOCATE_typing;
1883 tracehead = trace.prev;
1884 return ATTR_typing___AAttrFormExpr____prop( self) /*AAttrFormExpr::_prop*/;
1885 }
1886 val_t typing___AAttrFormExpr___attr_type(val_t self) {
1887 struct trace_t trace = {NULL, NULL, 714, LOCATE_typing___AAttrFormExpr___attr_type};
1888 trace.prev = tracehead; tracehead = &trace;
1889 trace.file = LOCATE_typing;
1890 tracehead = trace.prev;
1891 return ATTR_typing___AAttrFormExpr____attr_type( self) /*AAttrFormExpr::_attr_type*/;
1892 }
1893 void typing___AAttrFormExpr___do_typing(val_t self, val_t param0) {
1894 struct trace_t trace = {NULL, NULL, 717, LOCATE_typing___AAttrFormExpr___do_typing};
1895 val_t variable0;
1896 val_t variable1;
1897 val_t variable2;
1898 val_t variable3;
1899 val_t variable4;
1900 val_t variable5;
1901 val_t variable6;
1902 val_t variable7;
1903 val_t variable8;
1904 val_t variable9;
1905 val_t variable10;
1906 val_t variable11;
1907 val_t variable12;
1908 val_t variable13;
1909 val_t variable14;
1910 val_t variable15;
1911 val_t variable16;
1912 val_t variable17;
1913 trace.prev = tracehead; tracehead = &trace;
1914 trace.file = LOCATE_typing;
1915 variable0 = param0;
1916 variable2 = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrFormExpr___n_expr))( self) /*AAttrFormExpr::n_expr*/;
1917 variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
1918 variable1 = variable2;
1919 variable2 = TAG_Bool(( variable1 /*type_recv*/ == NIT_NULL /*null*/) || (( variable1 /*type_recv*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*type_recv*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*type_recv*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*type_recv*/,COLOR_kernel___Object_____eqeq))( variable1 /*type_recv*/, NIT_NULL /*null*/) /*Object::==*/)))));
1920 if (UNTAG_Bool(variable2)) { /*if*/
1921 goto return_label71;
1922 }
1923 variable3 = ((parser_nodes___AAttrFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___AAttrFormExpr___n_id))( self) /*AAttrFormExpr::n_id*/;
1924 variable3 = ((syntax_base___Token___to_symbol_t)CALL(variable3,COLOR_syntax_base___Token___to_symbol))(variable3) /*Token::to_symbol*/;
1925 variable2 = variable3;
1926 variable4 = ((static_type___MMType___local_class_t)CALL( variable1 /*type_recv*/,COLOR_static_type___MMType___local_class))( variable1 /*type_recv*/) /*MMType::local_class*/;
1927 variable4 = ((abstractmetamodel___MMLocalClass___select_attribute_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalClass___select_attribute))(variable4, variable2 /*name*/) /*MMLocalClass::select_attribute*/;
1928 variable3 = variable4;
1929 variable4 = TAG_Bool(( variable3 /*prop*/ == NIT_NULL /*null*/) || (( variable3 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*prop*/,COLOR_kernel___Object_____eqeq))( variable3 /*prop*/, NIT_NULL /*null*/) /*Object::==*/)))));
1930 if (UNTAG_Bool(variable4)) { /*if*/
1931 variable4 = NEW_string___String___init(); /*new String*/
1932 variable5 = NEW_string___String___with_native(BOX_NativeString("Error: Attribute "), TAG_Int(17)); /*new String*/
1933 variable6 = variable5;
1934 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
1935 variable7 = variable2 /*name*/;
1936 variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
1937 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
1938 variable8 = NEW_string___String___with_native(BOX_NativeString(" doesn't exists in "), TAG_Int(19)); /*new String*/
1939 variable9 = variable8;
1940 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
1941 variable10 = variable1 /*type_recv*/;
1942 variable10 = ((string___String___to_s_t)CALL(variable10,COLOR_string___Object___to_s))(variable10) /*String::to_s*/;
1943 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
1944 variable11 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
1945 variable12 = variable11;
1946 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable12) /*String::append*/;
1947 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable4) /*AbsSyntaxVisitor::error*/;
1948 goto return_label71;
1949 } else { /*if*/
1950 variable4 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*AbsSyntaxVisitor::module*/;
1951 variable5 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable3 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable3 /*prop*/) /*MMLocalProperty::global*/;
1952 variable5 = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL(variable5,COLOR_abstractmetamodel___MMGlobalProperty___local_class))(variable5) /*MMGlobalProperty::local_class*/;
1953 variable5 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___module))(variable5) /*MMLocalClass::module*/;
1954 variable4 = ((abstractmetamodel___MMModule___visibility_for_t)CALL(variable4,COLOR_abstractmetamodel___MMModule___visibility_for))(variable4, variable5) /*MMModule::visibility_for*/;
1955 variable4 = TAG_Bool(UNTAG_Int(variable4)<UNTAG_Int( TAG_Int(3)));
1956 if (UNTAG_Bool(variable4)) { /*if*/
1957 variable4 = NEW_string___String___init(); /*new String*/
1958 variable5 = NEW_string___String___with_native(BOX_NativeString("Error: Attribute "), TAG_Int(17)); /*new String*/
1959 variable6 = variable5;
1960 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
1961 variable7 = variable2 /*name*/;
1962 variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
1963 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/;
1964 variable8 = NEW_string___String___with_native(BOX_NativeString(" from "), TAG_Int(6)); /*new String*/
1965 variable9 = variable8;
1966 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/;
1967 variable10 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable3 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable3 /*prop*/) /*MMLocalProperty::global*/;
1968 variable10 = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL(variable10,COLOR_abstractmetamodel___MMGlobalProperty___local_class))(variable10) /*MMGlobalProperty::local_class*/;
1969 variable10 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable10,COLOR_abstractmetamodel___MMLocalClass___module))(variable10) /*MMLocalClass::module*/;
1970 variable11 = variable10;
1971 variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
1972 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable11) /*String::append*/;
1973 variable12 = NEW_string___String___with_native(BOX_NativeString(" is invisible in "), TAG_Int(17)); /*new String*/
1974 variable13 = variable12;
1975 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/;
1976 variable14 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*AbsSyntaxVisitor::module*/;
1977 variable15 = variable14;
1978 variable15 = ((string___String___to_s_t)CALL(variable15,COLOR_string___Object___to_s))(variable15) /*String::to_s*/;
1979 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable15) /*String::append*/;
1980 variable16 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1981 variable17 = variable16;
1982 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable17) /*String::append*/;
1983 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable4) /*AbsSyntaxVisitor::error*/;
1984 }
1985 }
1986 ATTR_typing___AAttrFormExpr____prop( self) /*AAttrFormExpr::_prop*/ = variable3 /*prop*/;
1987 variable5 = ((static_type___MMLocalProperty___signature_for_t)CALL( variable3 /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable3 /*prop*/, variable1 /*type_recv*/) /*MMLocalProperty::signature_for*/;
1988 variable5 = ((static_type___MMSignature___return_type_t)CALL(variable5,COLOR_static_type___MMSignature___return_type))(variable5) /*MMSignature::return_type*/;
1989 variable4 = variable5;
1990 variable5 = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAttrFormExpr___n_expr))( self) /*AAttrFormExpr::n_expr*/;
1991 variable5 = ((typing___PExpr___is_self_t)CALL(variable5,COLOR_typing___PExpr___is_self))(variable5) /*PExpr::is_self*/;
1992 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable5)))) { /*if*/
1993 variable5 = ((static_type___MMType___not_for_self_t)CALL( variable4 /*at*/,COLOR_static_type___MMType___not_for_self))( variable4 /*at*/) /*MMType::not_for_self*/;
1994 variable4 = variable5 /*at=*/;
1995 }
1996 ATTR_typing___AAttrFormExpr____attr_type( self) /*AAttrFormExpr::_attr_type*/ = variable4 /*at*/;
1997 return_label71: while(false);
1998 tracehead = trace.prev;
1999 return;
2000 }
2001 void typing___AAttrExpr___after_typing(val_t self, val_t param0) {
2002 struct trace_t trace = {NULL, NULL, 740, LOCATE_typing___AAttrExpr___after_typing};
2003 val_t variable0;
2004 val_t variable1;
2005 trace.prev = tracehead; tracehead = &trace;
2006 trace.file = LOCATE_typing;
2007 variable0 = param0;
2008 ((typing___AAttrFormExpr___do_typing_t)CALL( self,COLOR_typing___AAttrFormExpr___do_typing))( self, variable0 /*v*/) /*AAttrFormExpr::do_typing*/;
2009 variable1 = ((typing___AAttrFormExpr___prop_t)CALL( self,COLOR_typing___AAttrFormExpr___prop))( self) /*AAttrFormExpr::prop*/;
2010 variable1 = TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))));
2011 if (UNTAG_Bool(variable1)) { /*if*/
2012 goto return_label72;
2013 }
2014 variable1 = ((typing___AAttrFormExpr___attr_type_t)CALL( self,COLOR_typing___AAttrFormExpr___attr_type))( self) /*AAttrFormExpr::attr_type*/;
2015 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
2016 return_label72: while(false);
2017 tracehead = trace.prev;
2018 return;
2019 }
2020 void typing___AAttrAssignExpr___after_typing(val_t self, val_t param0) {
2021 struct trace_t trace = {NULL, NULL, 751, LOCATE_typing___AAttrAssignExpr___after_typing};
2022 val_t variable0;
2023 val_t variable1;
2024 val_t variable2;
2025 trace.prev = tracehead; tracehead = &trace;
2026 trace.file = LOCATE_typing;
2027 variable0 = param0;
2028 ((typing___AAttrFormExpr___do_typing_t)CALL( self,COLOR_typing___AAttrFormExpr___do_typing))( self, variable0 /*v*/) /*AAttrFormExpr::do_typing*/;
2029 variable1 = ((typing___AAttrFormExpr___prop_t)CALL( self,COLOR_typing___AAttrFormExpr___prop))( self) /*AAttrFormExpr::prop*/;
2030 variable1 = TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))));
2031 if (UNTAG_Bool(variable1)) { /*if*/
2032 goto return_label73;
2033 }
2034 variable1 = ((parser_nodes___AAssignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AAssignFormExpr___n_value))( self) /*AAssignFormExpr::n_value*/;
2035 variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
2036 variable2 = ((typing___AAttrFormExpr___attr_type_t)CALL( self,COLOR_typing___AAttrFormExpr___attr_type))( self) /*AAttrFormExpr::attr_type*/;
2037 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable1, variable2) /*AbsSyntaxVisitor::check_conform*/;
2038 return_label73: while(false);
2039 tracehead = trace.prev;
2040 return;
2041 }
2042 void typing___AAttrReassignExpr___after_typing(val_t self, val_t param0) {
2043 struct trace_t trace = {NULL, NULL, 762, LOCATE_typing___AAttrReassignExpr___after_typing};
2044 val_t variable0;
2045 val_t variable1;
2046 trace.prev = tracehead; tracehead = &trace;
2047 trace.file = LOCATE_typing;
2048 variable0 = param0;
2049 ((typing___AAttrFormExpr___do_typing_t)CALL( self,COLOR_typing___AAttrFormExpr___do_typing))( self, variable0 /*v*/) /*AAttrFormExpr::do_typing*/;
2050 variable1 = ((typing___AAttrFormExpr___prop_t)CALL( self,COLOR_typing___AAttrFormExpr___prop))( self) /*AAttrFormExpr::prop*/;
2051 variable1 = TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))));
2052 if (UNTAG_Bool(variable1)) { /*if*/
2053 goto return_label74;
2054 }
2055 variable1 = ((typing___AAttrFormExpr___attr_type_t)CALL( self,COLOR_typing___AAttrFormExpr___attr_type))( self) /*AAttrFormExpr::attr_type*/;
2056 ((typing___AReassignFormExpr___do_lvalue_typing_t)CALL( self,COLOR_typing___AReassignFormExpr___do_lvalue_typing))( self, variable0 /*v*/, variable1) /*AReassignFormExpr::do_lvalue_typing*/;
2057 return_label74: while(false);
2058 tracehead = trace.prev;
2059 return;
2060 }
2061 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) {
2062 struct trace_t trace = {NULL, NULL, 774, LOCATE_typing___AAbsSendExpr___do_typing};
2063 val_t variable0;
2064 val_t variable1;
2065 val_t variable2;
2066 val_t variable3;
2067 val_t variable4;
2068 val_t variable5;
2069 val_t variable6;
2070 val_t variable7;
2071 val_t variable8;
2072 trace.prev = tracehead; tracehead = &trace;
2073 trace.file = LOCATE_typing;
2074 variable0 = param0;
2075 variable1 = param1;
2076 variable2 = param2;
2077 variable3 = param3;
2078 variable4 = param4;
2079 variable5 = param5;
2080 variable7 = ((typing___AAbsSendExpr___get_property_t)CALL( self,COLOR_typing___AAbsSendExpr___get_property))( self, variable0 /*v*/, variable1 /*type_recv*/, variable2 /*is_implicit_self*/, variable4 /*name*/) /*AAbsSendExpr::get_property*/;
2081 variable6 = variable7;
2082 variable7 = TAG_Bool(( variable6 /*prop*/ == NIT_NULL /*null*/) || (( variable6 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable6 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable6 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable6 /*prop*/,COLOR_kernel___Object_____eqeq))( variable6 /*prop*/, NIT_NULL /*null*/) /*Object::==*/)))));
2083 if (UNTAG_Bool(variable7)) { /*if*/
2084 goto return_label75;
2085 }
2086 variable8 = ((typing___AAbsSendExpr___process_signature_t)CALL( self,COLOR_typing___AAbsSendExpr___process_signature))( self, variable0 /*v*/, variable1 /*type_recv*/, variable6 /*prop*/, variable3 /*recv_is_self*/, variable5 /*raw_args*/) /*AAbsSendExpr::process_signature*/;
2087 variable7 = variable8;
2088 variable8 = TAG_Bool(( variable7 /*args*/ == NIT_NULL /*null*/) || (( variable7 /*args*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable7 /*args*/,COLOR_kernel___Object_____eqeq))( variable7 /*args*/, NIT_NULL /*null*/) /*AbstractArray::==*/)));
2089 if (UNTAG_Bool(variable8)) { /*if*/
2090 goto return_label75;
2091 }
2092 ATTR_typing___AAbsSendExpr____prop( self) /*AAbsSendExpr::_prop*/ = variable6 /*prop*/;
2093 ATTR_typing___AAbsSendExpr____arguments( self) /*AAbsSendExpr::_arguments*/ = variable7 /*args*/;
2094 return_label75: while(false);
2095 tracehead = trace.prev;
2096 return;
2097 }
2098 val_t typing___AAbsSendExpr___get_property(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) {
2099 struct trace_t trace = {NULL, NULL, 785, LOCATE_typing___AAbsSendExpr___get_property};
2100 val_t variable0;
2101 val_t variable1;
2102 val_t variable2;
2103 val_t variable3;
2104 val_t variable4;
2105 val_t variable5;
2106 val_t variable6;
2107 val_t variable7;
2108 val_t variable8;
2109 val_t variable9;
2110 val_t variable10;
2111 val_t variable11;
2112 val_t variable12;
2113 val_t variable13;
2114 val_t variable14;
2115 val_t variable15;
2116 trace.prev = tracehead; tracehead = &trace;
2117 trace.file = LOCATE_typing;
2118 variable0 = param0;
2119 variable1 = param1;
2120 variable2 = param2;
2121 variable3 = param3;
2122 variable4 = TAG_Bool(( variable1 /*type_recv*/ == NIT_NULL /*null*/) || (( variable1 /*type_recv*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*type_recv*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*type_recv*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*type_recv*/,COLOR_kernel___Object_____eqeq))( variable1 /*type_recv*/, NIT_NULL /*null*/) /*Object::==*/)))));
2123 if (UNTAG_Bool(variable4)) { /*if*/
2124 variable4 = NIT_NULL /*null*/;
2125 goto return_label76;
2126 }
2127 variable5 = ((static_type___MMType___local_class_t)CALL( variable1 /*type_recv*/,COLOR_static_type___MMType___local_class))( variable1 /*type_recv*/) /*MMType::local_class*/;
2128 variable5 = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___select_method))(variable5, variable3 /*name*/) /*MMLocalClass::select_method*/;
2129 variable4 = variable5;
2130 variable5 = TAG_Bool(( variable4 /*prop*/ == NIT_NULL /*null*/) || (( variable4 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*prop*/,COLOR_kernel___Object_____eqeq))( variable4 /*prop*/, NIT_NULL /*null*/) /*Object::==*/)))));
2131 variable6 = variable5;
2132 if (UNTAG_Bool(variable6)) { /* and */
2133 variable6 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*AbsSyntaxVisitor::local_property*/;
2134 variable6 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable6,COLOR_abstractmetamodel___MMLocalProperty___global))(variable6) /*MMLocalProperty::global*/;
2135 variable6 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable6,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable6) /*MMGlobalProperty::is_init*/;
2136 }
2137 variable5 = variable6;
2138 if (UNTAG_Bool(variable5)) { /*if*/
2139 variable6 = ((static_type___MMType___local_class_t)CALL( variable1 /*type_recv*/,COLOR_static_type___MMType___local_class))( variable1 /*type_recv*/) /*MMType::local_class*/;
2140 variable6 = ((abstractmetamodel___MMLocalClass___super_methods_named_t)CALL(variable6,COLOR_abstractmetamodel___MMLocalClass___super_methods_named))(variable6, variable3 /*name*/) /*MMLocalClass::super_methods_named*/;
2141 variable5 = variable6;
2142 variable6 = ((array___AbstractArray___length_t)CALL( variable5 /*props*/,COLOR_abstract_collection___Collection___length))( variable5 /*props*/) /*AbstractArray::length*/;
2143 variable6 = TAG_Bool(UNTAG_Int(variable6)>UNTAG_Int( TAG_Int(1)));
2144 if (UNTAG_Bool(variable6)) { /*if*/
2145 variable6 = NEW_string___String___init(); /*new String*/
2146 variable7 = NEW_string___String___with_native(BOX_NativeString("Error: Ambigous method name '"), TAG_Int(29)); /*new String*/
2147 variable8 = variable7;
2148 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable8) /*String::append*/;
2149 variable9 = variable3 /*name*/;
2150 variable9 = ((string___String___to_s_t)CALL(variable9,COLOR_string___Object___to_s))(variable9) /*String::to_s*/;
2151 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable9) /*String::append*/;
2152 variable10 = NEW_string___String___with_native(BOX_NativeString("' for "), TAG_Int(6)); /*new String*/
2153 variable11 = variable10;
2154 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable11) /*String::append*/;
2155 variable12 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
2156 variable12 = ((string___Collection___join_t)CALL( variable5 /*props*/,COLOR_string___Collection___join))( variable5 /*props*/, variable12) /*Collection::join*/;
2157 variable13 = variable12;
2158 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable13) /*String::append*/;
2159 variable14 = NEW_string___String___with_native(BOX_NativeString(". Use explicit designation."), TAG_Int(27)); /*new String*/
2160 variable15 = variable14;
2161 ((string___String___append_t)CALL(variable6,COLOR_abstract_collection___IndexedCollection___append))(variable6, variable15) /*String::append*/;
2162 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable6) /*AbsSyntaxVisitor::error*/;
2163 variable4 = NIT_NULL /*null*/;
2164 goto return_label76;
2165 } else { /*if*/
2166 variable6 = ((array___AbstractArray___length_t)CALL( variable5 /*props*/,COLOR_abstract_collection___Collection___length))( variable5 /*props*/) /*AbstractArray::length*/;
2167 variable6 = TAG_Bool((variable6)==( TAG_Int(1)));
2168 if (UNTAG_Bool(variable6)) { /*if*/
2169 variable7 = ((static_type___MMType___local_class_t)CALL( variable1 /*type_recv*/,COLOR_static_type___MMType___local_class))( variable1 /*type_recv*/) /*MMType::local_class*/;
2170 variable8 = ((abstract_collection___IndexedCollection___first_t)CALL( variable5 /*props*/,COLOR_abstract_collection___Collection___first))( variable5 /*props*/) /*IndexedCollection::first*/;
2171 variable8 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable8,COLOR_abstractmetamodel___MMLocalProperty___global))(variable8) /*MMLocalProperty::global*/;
2172 variable7 = ((inheritance___MMLocalClass_____bra_t)CALL(variable7,COLOR_abstractmetamodel___MMLocalClass_____bra))(variable7, variable8) /*MMLocalClass::[]*/;
2173 variable6 = variable7;
2174 variable7 = TAG_Bool(( variable6 /*p*/==NIT_NULL) || VAL_ISA( variable6 /*p*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
2175 if (!UNTAG_Bool(variable7)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___AAbsSendExpr___get_property, LOCATE_typing, 796); nit_exit(1);}
2176 variable4 = variable6 /*p*/ /*prop=*/;
2177 }
2178 }
2179 }
2180 variable5 = TAG_Bool(( variable4 /*prop*/ == NIT_NULL /*null*/) || (( variable4 /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*prop*/,COLOR_kernel___Object_____eqeq))( variable4 /*prop*/, NIT_NULL /*null*/) /*Object::==*/)))));
2181 if (UNTAG_Bool(variable5)) { /*if*/
2182 if (UNTAG_Bool( variable2 /*is_implicit_self*/)) { /*if*/
2183 variable5 = NEW_string___String___init(); /*new String*/
2184 variable6 = NEW_string___String___with_native(BOX_NativeString("Error: Method or variable '"), TAG_Int(27)); /*new String*/
2185 variable7 = variable6;
2186 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
2187 variable8 = variable3 /*name*/;
2188 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
2189 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
2190 variable9 = NEW_string___String___with_native(BOX_NativeString("' unknown in "), TAG_Int(13)); /*new String*/
2191 variable10 = variable9;
2192 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
2193 variable11 = variable1 /*type_recv*/;
2194 variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
2195 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
2196 variable12 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
2197 variable13 = variable12;
2198 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
2199 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable5) /*AbsSyntaxVisitor::error*/;
2200 } else { /*if*/
2201 variable5 = NEW_string___String___init(); /*new String*/
2202 variable6 = NEW_string___String___with_native(BOX_NativeString("Error: Method '"), TAG_Int(15)); /*new String*/
2203 variable7 = variable6;
2204 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
2205 variable8 = variable3 /*name*/;
2206 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
2207 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
2208 variable9 = NEW_string___String___with_native(BOX_NativeString("' doesn't exists in "), TAG_Int(20)); /*new String*/
2209 variable10 = variable9;
2210 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
2211 variable11 = variable1 /*type_recv*/;
2212 variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
2213 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable11) /*String::append*/;
2214 variable12 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
2215 variable13 = variable12;
2216 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable13) /*String::append*/;
2217 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable5) /*AbsSyntaxVisitor::error*/;
2218 }
2219 variable4 = NIT_NULL /*null*/;
2220 goto return_label76;
2221 }
2222 variable4 = variable4 /*prop*/;
2223 goto return_label76;
2224 return_label76: while(false);
2225 tracehead = trace.prev;
2226 return variable4;
2227 }
2228 val_t typing___AAbsSendExpr___process_signature(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, val_t param4) {
2229 struct trace_t trace = {NULL, NULL, 812, LOCATE_typing___AAbsSendExpr___process_signature};
2230 val_t variable0;
2231 val_t variable1;
2232 val_t variable2;
2233 val_t variable3;
2234 val_t variable4;
2235 val_t variable5;
2236 val_t variable6;
2237 val_t variable7;
2238 val_t variable8;
2239 val_t variable9;
2240 val_t variable10;
2241 val_t variable11;
2242 val_t variable12;
2243 val_t variable13;
2244 val_t variable14;
2245 val_t variable15;
2246 val_t variable16;
2247 val_t variable17;
2248 val_t variable18;
2249 val_t variable19;
2250 val_t variable20;
2251 trace.prev = tracehead; tracehead = &trace;
2252 trace.file = LOCATE_typing;
2253 variable0 = param0;
2254 variable1 = param1;
2255 variable2 = param2;
2256 variable3 = param3;
2257 variable4 = param4;
2258 variable5 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable2 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable2 /*prop*/) /*MMLocalProperty::global*/;
2259 variable6 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*AbsSyntaxVisitor::module*/;
2260 ((syntax_base___MMGlobalProperty___check_visibility_t)CALL(variable5,COLOR_syntax_base___MMGlobalProperty___check_visibility))(variable5, variable0 /*v*/, self, variable6, variable3 /*recv_is_self*/) /*MMGlobalProperty::check_visibility*/;
2261 variable6 = ((static_type___MMLocalProperty___signature_for_t)CALL( variable2 /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable2 /*prop*/, variable1 /*type_recv*/) /*MMLocalProperty::signature_for*/;
2262 variable5 = variable6;
2263 variable7 = ((vararg___MMSignature___vararg_rank_t)CALL( variable5 /*psig*/,COLOR_vararg___MMSignature___vararg_rank))( variable5 /*psig*/) /*MMSignature::vararg_rank*/;
2264 variable6 = variable7;
2265 variable8 = ((static_type___MMSignature___arity_t)CALL( variable5 /*psig*/,COLOR_static_type___MMSignature___arity))( variable5 /*psig*/) /*MMSignature::arity*/;
2266 variable7 = variable8;
2267 variable8 = TAG_Int((bigint)0) /*decl variable raw_arity*/;
2268 variable9 = TAG_Bool(( variable4 /*raw_args*/ == NIT_NULL /*null*/) || (( variable4 /*raw_args*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable4 /*raw_args*/,COLOR_kernel___Object_____eqeq))( variable4 /*raw_args*/, NIT_NULL /*null*/) /*AbstractArray::==*/)));
2269 if (UNTAG_Bool(variable9)) { /*if*/
2270 variable8 = TAG_Int(0) /*raw_arity=*/;
2271 } else { /*if*/
2272 variable9 = ((array___AbstractArray___length_t)CALL( variable4 /*raw_args*/,COLOR_abstract_collection___Collection___length))( variable4 /*raw_args*/) /*AbstractArray::length*/;
2273 variable8 = variable9 /*raw_arity=*/;
2274 }
2275 variable9 = TAG_Bool(UNTAG_Int( variable7 /*par_arity*/)>UNTAG_Int( variable8 /*raw_arity*/));
2276 variable10 = variable9;
2277 if (!UNTAG_Bool(variable10)) { /* or */
2278 variable10 = TAG_Bool(( variable7 /*par_arity*/)!=( variable8 /*raw_arity*/));
2279 variable11 = variable10;
2280 if (UNTAG_Bool(variable11)) { /* and */
2281 variable11 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
2282 variable11 = TAG_Bool(( variable6 /*par_vararg*/)==(variable11));
2283 }
2284 variable10 = variable11;
2285 }
2286 variable9 = variable10;
2287 if (UNTAG_Bool(variable9)) { /*if*/
2288 variable9 = NEW_string___String___init(); /*new String*/
2289 variable10 = NEW_string___String___with_native(BOX_NativeString("Error: Method '"), TAG_Int(15)); /*new String*/
2290 variable11 = variable10;
2291 ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable11) /*String::append*/;
2292 variable12 = variable2 /*prop*/;
2293 variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
2294 ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable12) /*String::append*/;
2295 variable13 = NEW_string___String___with_native(BOX_NativeString("' arity missmatch."), TAG_Int(18)); /*new String*/
2296 variable14 = variable13;
2297 ((string___String___append_t)CALL(variable9,COLOR_abstract_collection___IndexedCollection___append))(variable9, variable14) /*String::append*/;
2298 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable9) /*AbsSyntaxVisitor::error*/;
2299 variable5 = NIT_NULL /*null*/;
2300 goto return_label77;
2301 }
2302 variable9 = TAG_Int(0);
2303 variable11 = NEW_array___Array___init(); /*new Array[E]*/
2304 variable10 = variable11;
2305 variable11 = NEW_range___Range___without_last( TAG_Int(0), variable7 /*par_arity*/); /*new Range[E]*/
2306 variable11 = ((range___Range___iterator_t)CALL(variable11,COLOR_abstract_collection___Collection___iterator))(variable11) /*Range::iterator*/;
2307 while (true) { /*for*/
2308 variable12 = ((abstract_collection___Iterator___is_ok_t)CALL(variable11,COLOR_abstract_collection___Iterator___is_ok))(variable11) /*Iterator::is_ok*/;
2309 if (!UNTAG_Bool(variable12)) break; /*for*/
2310 variable12 = ((abstract_collection___Iterator___item_t)CALL(variable11,COLOR_abstract_collection___Iterator___item))(variable11) /*Iterator::item*/;
2311 variable13 = NIT_NULL /*decl variable a*/;
2312 variable15 = ((static_type___MMSignature_____bra_t)CALL( variable5 /*psig*/,COLOR_static_type___MMSignature_____bra))( variable5 /*psig*/, variable12 /*par_idx*/) /*MMSignature::[]*/;
2313 variable14 = variable15;
2314 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable3 /*recv_is_self*/)))) { /*if*/
2315 variable15 = ((static_type___MMType___not_for_self_t)CALL( variable14 /*par_type*/,COLOR_static_type___MMType___not_for_self))( variable14 /*par_type*/) /*MMType::not_for_self*/;
2316 variable14 = variable15 /*par_type=*/;
2317 }
2318 variable15 = TAG_Bool(( variable12 /*par_idx*/)==( variable6 /*par_vararg*/));
2319 if (UNTAG_Bool(variable15)) { /*if*/
2320 variable16 = NEW_array___Array___init(); /*new Array[E]*/
2321 variable15 = variable16;
2322 variable16 = TAG_Int(UNTAG_Int( variable8 /*raw_arity*/)-UNTAG_Int( variable7 /*par_arity*/));
2323 variable17 = NEW_range___Range___init( TAG_Int(0), variable16); /*new Range[E]*/
2324 variable16 = variable17;
2325 variable16 = ((range___Range___iterator_t)CALL(variable16,COLOR_abstract_collection___Collection___iterator))(variable16) /*Range::iterator*/;
2326 while (true) { /*for*/
2327 variable17 = ((abstract_collection___Iterator___is_ok_t)CALL(variable16,COLOR_abstract_collection___Iterator___is_ok))(variable16) /*Iterator::is_ok*/;
2328 if (!UNTAG_Bool(variable17)) break; /*for*/
2329 variable17 = ((abstract_collection___Iterator___item_t)CALL(variable16,COLOR_abstract_collection___Iterator___item))(variable16) /*Iterator::item*/;
2330 variable18 = variable9 /*arg_idx*/;
2331 variable19 = TAG_Bool(UNTAG_Int( variable18 /*index*/)>=UNTAG_Int( TAG_Int(0)));
2332 variable20 = variable19;
2333 if (UNTAG_Bool(variable20)) { /* and */
2334 variable20 = ATTR_array___AbstractArray____length( variable4 /*raw_args*/) /*AbstractArray::_length*/;
2335 variable20 = TAG_Bool(UNTAG_Int( variable18 /*index*/)<UNTAG_Int(variable20));
2336 }
2337 variable19 = variable20;
2338 if (!UNTAG_Bool(variable19)) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_typing, 229); nit_exit(1);}
2339 variable19 = ATTR_array___Array____items( variable4 /*raw_args*/) /*Array::_items*/;
2340 variable19 = UNBOX_NativeArray(variable19)[UNTAG_Int( variable18 /*index*/)];
2341 goto return_label80;
2342 return_label80: while(false);
2343 variable18 = variable19;
2344 variable13 = variable18 /*a=*/;
2345 variable18 = ((typing___PExpr___stype_t)CALL( variable13 /*a*/,COLOR_syntax_base___PExpr___stype))( variable13 /*a*/) /*PExpr::stype*/;
2346 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable18, variable14 /*par_type*/) /*AbsSyntaxVisitor::check_conform*/;
2347 ((array___AbstractArray___add_t)CALL( variable15 /*star*/,COLOR_abstract_collection___SimpleCollection___add))( variable15 /*star*/, variable13 /*a*/) /*AbstractArray::add*/;
2348 variable18 = TAG_Int(UNTAG_Int( variable9 /*arg_idx*/)+UNTAG_Int( TAG_Int(1)));
2349 variable9 = variable18 /*arg_idx=*/;
2350 continue_79: while(0);
2351 ((abstract_collection___Iterator___next_t)CALL(variable16,COLOR_abstract_collection___Iterator___next))(variable16) /*Iterator::next*/;
2352 }
2353 break_79: while(0);
2354 variable17 = NEW_parser_prod___AArrayExpr___init_aarrayexpr( variable15 /*star*/); /*new AArrayExpr*/
2355 variable16 = variable17;
2356 variable17 = ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_array))( variable0 /*v*/, variable14 /*par_type*/) /*AbsSyntaxVisitor::type_array*/;
2357 ((typing___AArrayExpr___stype__eq_t)CALL( variable16 /*aa*/,COLOR_typing___AArrayExpr___stype__eq))( variable16 /*aa*/, variable17) /*AArrayExpr::stype=*/;
2358 variable13 = variable16 /*aa*/ /*a=*/;
2359 } else { /*if*/
2360 variable15 = variable9 /*arg_idx*/;
2361 variable16 = TAG_Bool(UNTAG_Int( variable15 /*index*/)>=UNTAG_Int( TAG_Int(0)));
2362 variable17 = variable16;
2363 if (UNTAG_Bool(variable17)) { /* and */
2364 variable17 = ATTR_array___AbstractArray____length( variable4 /*raw_args*/) /*AbstractArray::_length*/;
2365 variable17 = TAG_Bool(UNTAG_Int( variable15 /*index*/)<UNTAG_Int(variable17));
2366 }
2367 variable16 = variable17;
2368 if (!UNTAG_Bool(variable16)) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_typing, 229); nit_exit(1);}
2369 variable16 = ATTR_array___Array____items( variable4 /*raw_args*/) /*Array::_items*/;
2370 variable16 = UNBOX_NativeArray(variable16)[UNTAG_Int( variable15 /*index*/)];
2371 goto return_label81;
2372 return_label81: while(false);
2373 variable15 = variable16;
2374 variable13 = variable15 /*a=*/;
2375 variable15 = ((typing___PExpr___stype_t)CALL( variable13 /*a*/,COLOR_syntax_base___PExpr___stype))( variable13 /*a*/) /*PExpr::stype*/;
2376 ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable0 /*v*/, self, variable15, variable14 /*par_type*/) /*AbsSyntaxVisitor::check_conform*/;
2377 variable15 = TAG_Int(UNTAG_Int( variable9 /*arg_idx*/)+UNTAG_Int( TAG_Int(1)));
2378 variable9 = variable15 /*arg_idx=*/;
2379 }
2380 ((array___AbstractArray___add_t)CALL( variable10 /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable10 /*args*/, variable13 /*a*/) /*AbstractArray::add*/;
2381 continue_78: while(0);
2382 ((abstract_collection___Iterator___next_t)CALL(variable11,COLOR_abstract_collection___Iterator___next))(variable11) /*Iterator::next*/;
2383 }
2384 break_78: while(0);
2385 variable5 = variable10 /*args*/;
2386 goto return_label77;
2387 return_label77: while(false);
2388 tracehead = trace.prev;
2389 return variable5;
2390 }
2391 val_t typing___AAbsSendExpr___prop(val_t self) {
2392 struct trace_t trace = {NULL, NULL, 851, LOCATE_typing___AAbsSendExpr___prop};
2393 trace.prev = tracehead; tracehead = &trace;
2394 trace.file = LOCATE_typing;
2395 tracehead = trace.prev;
2396 return ATTR_typing___AAbsSendExpr____prop( self) /*AAbsSendExpr::_prop*/;
2397 }
2398 val_t typing___AAbsSendExpr___arguments(val_t self) {
2399 struct trace_t trace = {NULL, NULL, 854, LOCATE_typing___AAbsSendExpr___arguments};
2400 trace.prev = tracehead; tracehead = &trace;
2401 trace.file = LOCATE_typing;
2402 tracehead = trace.prev;
2403 return ATTR_typing___AAbsSendExpr____arguments( self) /*AAbsSendExpr::_arguments*/;
2404 }
2405 void typing___ASuperInitCall___register_super_init_call(val_t self, val_t param0, val_t param1) {
2406 struct trace_t trace = {NULL, NULL, 862, LOCATE_typing___ASuperInitCall___register_super_init_call};
2407 val_t variable0;
2408 val_t variable1;
2409 val_t variable2;
2410 val_t variable3;
2411 val_t variable4;
2412 val_t variable5;
2413 val_t variable6;
2414 val_t variable7;
2415 val_t variable8;
2416 val_t variable9;
2417 val_t variable10;
2418 val_t variable11;
2419 val_t variable12;
2420 val_t variable13;
2421 val_t variable14;
2422 val_t variable15;
2423 val_t variable16;
2424 trace.prev = tracehead; tracehead = &trace;
2425 trace.file = LOCATE_typing;
2426 variable0 = param0;
2427 variable1 = param1;
2428 variable2 = ((parser_prod___PNode___parent_t)CALL( self,COLOR_parser_prod___PNode___parent))( self) /*PNode::parent*/;
2429 variable3 = ((typing___TypingVisitor___top_block_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___top_block))( variable0 /*v*/) /*TypingVisitor::top_block*/;
2430 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == variable3) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2,variable3)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable3) /*Object::==*/)))))));
2431 variable3 = variable2;
2432 if (UNTAG_Bool(variable3)) { /* and */
2433 variable3 = ((typing___TypingVisitor___top_block_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___top_block))( variable0 /*v*/) /*TypingVisitor::top_block*/;
2434 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( self == variable3) || (( self != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( self,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( self,variable3)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( self,COLOR_kernel___Object_____eqeq))( self, variable3) /*Object::==*/)))))));
2435 }
2436 variable2 = variable3;
2437 if (UNTAG_Bool(variable2)) { /*if*/
2438 variable2 = NEW_string___String___init(); /*new String*/
2439 variable3 = NEW_string___String___with_native(BOX_NativeString("Error: Constructor invocation "), TAG_Int(30)); /*new String*/
2440 variable4 = variable3;
2441 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
2442 variable5 = variable1 /*property*/;
2443 variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
2444 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
2445 variable6 = NEW_string___String___with_native(BOX_NativeString(" must not be in nested block."), TAG_Int(29)); /*new String*/
2446 variable7 = variable6;
2447 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
2448 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable2) /*AbsSyntaxVisitor::error*/;
2449 }
2450 variable3 = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable0 /*v*/) /*AbsSyntaxVisitor::module*/;
2451 variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable1 /*property*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable1 /*property*/) /*MMLocalProperty::global*/;
2452 variable4 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable4) /*MMGlobalProperty::intro*/;
2453 variable4 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable4) /*MMLocalProperty::local_class*/;
2454 variable4 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalClass___global))(variable4) /*MMLocalClass::global*/;
2455 variable3 = ((abstractmetamodel___MMModule_____bra_t)CALL(variable3,COLOR_abstractmetamodel___MMModule_____bra))(variable3, variable4) /*MMModule::[]*/;
2456 variable2 = variable3;
2457 variable3 = NIT_NULL /*null*/;
2458 variable4 = ((typing___TypingVisitor___explicit_super_init_calls_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls))( variable0 /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
2459 variable4 = ((array___AbstractArray___is_empty_t)CALL(variable4,COLOR_abstract_collection___Collection___is_empty))(variable4) /*AbstractArray::is_empty*/;
2460 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable4)))) { /*if*/
2461 variable4 = ((typing___TypingVisitor___explicit_super_init_calls_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls))( variable0 /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
2462 variable4 = ((abstract_collection___IndexedCollection___last_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___last))(variable4) /*IndexedCollection::last*/;
2463 variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___global))(variable4) /*MMLocalProperty::global*/;
2464 variable4 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable4) /*MMGlobalProperty::intro*/;
2465 variable4 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable4) /*MMLocalProperty::local_class*/;
2466 variable3 = variable4 /*prev_class=*/;
2467 }
2468 variable5 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*AbsSyntaxVisitor::local_class*/;
2469 variable5 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable5,COLOR_abstractmetamodel___MMLocalClass___cshe))(variable5) /*MMLocalClass::cshe*/;
2470 variable5 = ((partial_order___PartialOrderElement___reverse_linear_extension_t)CALL(variable5,COLOR_partial_order___PartialOrderElement___reverse_linear_extension))(variable5) /*PartialOrderElement::reverse_linear_extension*/;
2471 variable4 = variable5;
2472 variable5 = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable0 /*v*/) /*AbsSyntaxVisitor::local_class*/;
2473 variable5 = TAG_Bool(( variable2 /*cla*/ == variable5) || (( variable2 /*cla*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*cla*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*cla*/,variable5)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*cla*/,COLOR_kernel___Object_____eqeq))( variable2 /*cla*/, variable5) /*Object::==*/)))));
2474 if (UNTAG_Bool(variable5)) { /*if*/
2475 ((typing___TypingVisitor___explicit_other_init_call__eq_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___explicit_other_init_call__eq))( variable0 /*v*/, TAG_Bool(true)) /*TypingVisitor::explicit_other_init_call=*/;
2476 } else { /*if*/
2477 variable5 = ((array___AbstractArray___has_t)CALL( variable4 /*order*/,COLOR_abstract_collection___Collection___has))( variable4 /*order*/, variable2 /*cla*/) /*AbstractArray::has*/;
2478 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable5)))) { /*if*/
2479 variable5 = NEW_string___String___init(); /*new String*/
2480 variable6 = NEW_string___String___with_native(BOX_NativeString("Error: Constructor of class "), TAG_Int(28)); /*new String*/
2481 variable7 = variable6;
2482 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
2483 variable8 = variable2 /*cla*/;
2484 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
2485 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
2486 variable9 = NEW_string___String___with_native(BOX_NativeString(" must be one in "), TAG_Int(16)); /*new String*/
2487 variable10 = variable9;
2488 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
2489 variable11 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
2490 variable11 = ((string___Collection___join_t)CALL( variable4 /*order*/,COLOR_string___Collection___join))( variable4 /*order*/, variable11) /*Collection::join*/;
2491 variable12 = variable11;
2492 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable12) /*String::append*/;
2493 variable13 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
2494 variable14 = variable13;
2495 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable14) /*String::append*/;
2496 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable5) /*AbsSyntaxVisitor::error*/;
2497 } else { /*if*/
2498 variable5 = TAG_Bool(( variable2 /*cla*/ == variable3 /*prev_class*/) || (( variable2 /*cla*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*cla*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*cla*/, variable3 /*prev_class*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*cla*/,COLOR_kernel___Object_____eqeq))( variable2 /*cla*/, variable3 /*prev_class*/) /*Object::==*/)))));
2499 if (UNTAG_Bool(variable5)) { /*if*/
2500 variable5 = NEW_string___String___init(); /*new String*/
2501 variable6 = NEW_string___String___with_native(BOX_NativeString("Error: Only one super constructor invocation of class "), TAG_Int(54)); /*new String*/
2502 variable7 = variable6;
2503 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable7) /*String::append*/;
2504 variable8 = variable2 /*cla*/;
2505 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
2506 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable8) /*String::append*/;
2507 variable9 = NEW_string___String___with_native(BOX_NativeString(" is allowed."), TAG_Int(12)); /*new String*/
2508 variable10 = variable9;
2509 ((string___String___append_t)CALL(variable5,COLOR_abstract_collection___IndexedCollection___append))(variable5, variable10) /*String::append*/;
2510 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable5) /*AbsSyntaxVisitor::error*/;
2511 } else { /*if*/
2512 variable6 = TAG_Bool(( variable3 /*prev_class*/ == NIT_NULL /*null*/) || (( variable3 /*prev_class*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*prev_class*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*prev_class*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*prev_class*/,COLOR_kernel___Object_____eqeq))( variable3 /*prev_class*/, NIT_NULL /*null*/) /*Object::==*/)))));
2513 variable5 = variable6;
2514 variable6 = ((array___AbstractArray___iterator_t)CALL( variable4 /*order*/,COLOR_abstract_collection___Collection___iterator))( variable4 /*order*/) /*AbstractArray::iterator*/;
2515 while (true) { /*for*/
2516 variable7 = ((array___ArrayIterator___is_ok_t)CALL(variable6,COLOR_abstract_collection___Iterator___is_ok))(variable6) /*ArrayIterator::is_ok*/;
2517 if (!UNTAG_Bool(variable7)) break; /*for*/
2518 variable7 = ((array___ArrayIterator___item_t)CALL(variable6,COLOR_abstract_collection___Iterator___item))(variable6) /*ArrayIterator::item*/;
2519 variable8 = TAG_Bool(( variable7 /*c*/ == variable3 /*prev_class*/) || (( variable7 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*c*/, variable3 /*prev_class*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*c*/,COLOR_kernel___Object_____eqeq))( variable7 /*c*/, variable3 /*prev_class*/) /*Object::==*/)))));
2520 if (UNTAG_Bool(variable8)) { /*if*/
2521 variable5 = TAG_Bool(true) /*last_is_found=*/;
2522 } else { /*if*/
2523 variable8 = TAG_Bool(( variable7 /*c*/ == variable2 /*cla*/) || (( variable7 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable7 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable7 /*c*/, variable2 /*cla*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable7 /*c*/,COLOR_kernel___Object_____eqeq))( variable7 /*c*/, variable2 /*cla*/) /*Object::==*/)))));
2524 if (UNTAG_Bool(variable8)) { /*if*/
2525 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable5 /*last_is_found*/)))) { /*if*/
2526 variable8 = NEW_string___String___init(); /*new String*/
2527 variable9 = NEW_string___String___with_native(BOX_NativeString("Error: Constructor of "), TAG_Int(22)); /*new String*/
2528 variable10 = variable9;
2529 ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable10) /*String::append*/;
2530 variable11 = variable7 /*c*/;
2531 variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
2532 ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable11) /*String::append*/;
2533 variable12 = NEW_string___String___with_native(BOX_NativeString(" must be invoked before constructor of "), TAG_Int(39)); /*new String*/
2534 variable13 = variable12;
2535 ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable13) /*String::append*/;
2536 variable14 = variable3 /*prev_class*/;
2537 variable14 = ((string___String___to_s_t)CALL(variable14,COLOR_string___Object___to_s))(variable14) /*String::to_s*/;
2538 ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable14) /*String::append*/;
2539 variable15 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2540 variable16 = variable15;
2541 ((string___String___append_t)CALL(variable8,COLOR_abstract_collection___IndexedCollection___append))(variable8, variable16) /*String::append*/;
2542 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable8) /*AbsSyntaxVisitor::error*/;
2543 }
2544 variable8 = ((typing___TypingVisitor___explicit_super_init_calls_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls))( variable0 /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
2545 ((array___AbstractArray___add_t)CALL(variable8,COLOR_abstract_collection___SimpleCollection___add))(variable8, variable1 /*property*/) /*AbstractArray::add*/;
2546 goto break_83;
2547 }
2548 }
2549 continue_83: while(0);
2550 ((array___ArrayIterator___next_t)CALL(variable6,COLOR_abstract_collection___Iterator___next))(variable6) /*ArrayIterator::next*/;
2551 }
2552 break_83: while(0);
2553 }
2554 }
2555 }
2556 tracehead = trace.prev;
2557 return;
2558 }
2559 void typing___ANewExpr___after_typing(val_t self, val_t param0) {
2560 struct trace_t trace = {NULL, NULL, 899, LOCATE_typing___ANewExpr___after_typing};
2561 val_t variable0;
2562 val_t variable1;
2563 val_t variable2;
2564 val_t variable3;
2565 val_t variable4;
2566 val_t variable5;
2567 val_t variable6;
2568 val_t variable7;
2569 val_t variable8;
2570 static val_t once_value_variable3_85; static int once_bool_variable3_85;
2571 val_t variable9;
2572 trace.prev = tracehead; tracehead = &trace;
2573 trace.file = LOCATE_typing;
2574 variable0 = param0;
2575 variable2 = ((parser_nodes___ANewExpr___n_type_t)CALL( self,COLOR_parser_nodes___ANewExpr___n_type))( self) /*ANewExpr::n_type*/;
2576 variable2 = ((typing___PType___stype_t)CALL(variable2,COLOR_typing___PType___stype))(variable2) /*PType::stype*/;
2577 variable1 = variable2;
2578 variable2 = TAG_Bool(( variable1 /*t*/ == NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/, NIT_NULL /*null*/) /*Object::==*/)))));
2579 if (UNTAG_Bool(variable2)) { /*if*/
2580 goto return_label84;
2581 }
2582 variable2 = ((static_type___MMType___local_class_t)CALL( variable1 /*t*/,COLOR_static_type___MMType___local_class))( variable1 /*t*/) /*MMType::local_class*/;
2583 variable2 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalClass___global))(variable2) /*MMLocalClass::global*/;
2584 variable2 = ((abstractmetamodel___MMGlobalClass___is_abstract_t)CALL(variable2,COLOR_abstractmetamodel___MMGlobalClass___is_abstract))(variable2) /*MMGlobalClass::is_abstract*/;
2585 if (UNTAG_Bool(variable2)) { /*if*/
2586 variable2 = NEW_string___String___init(); /*new String*/
2587 variable3 = NEW_string___String___with_native(BOX_NativeString("Error: try to instantiate abstract class "), TAG_Int(41)); /*new String*/
2588 variable4 = variable3;
2589 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
2590 variable5 = ((static_type___MMType___local_class_t)CALL( variable1 /*t*/,COLOR_static_type___MMType___local_class))( variable1 /*t*/) /*MMType::local_class*/;
2591 variable6 = variable5;
2592 variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
2593 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
2594 variable7 = NEW_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
2595 variable8 = variable7;
2596 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
2597 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable2) /*AbsSyntaxVisitor::error*/;
2598 goto return_label84;
2599 }
2600 variable2 = NIT_NULL /*decl variable name*/;
2601 variable3 = ((parser_nodes___ANewExpr___n_id_t)CALL( self,COLOR_parser_nodes___ANewExpr___n_id))( self) /*ANewExpr::n_id*/;
2602 variable3 = TAG_Bool((variable3 == NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3, NIT_NULL /*null*/) /*Object::==*/)))));
2603 if (UNTAG_Bool(variable3)) { /*if*/
2604 if (once_bool_variable3_85) variable3 = once_value_variable3_85;
2605 else {
2606 variable3 = NEW_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
2607 variable3 = ((symbol___String___to_symbol_t)CALL(variable3,COLOR_symbol___String___to_symbol))(variable3) /*String::to_symbol*/;
2608 once_value_variable3_85 = variable3;
2609 once_bool_variable3_85 = true;
2610 }
2611 variable2 = variable3 /*name=*/;
2612 } else { /*if*/
2613 variable3 = ((parser_nodes___ANewExpr___n_id_t)CALL( self,COLOR_parser_nodes___ANewExpr___n_id))( self) /*ANewExpr::n_id*/;
2614 variable3 = ((syntax_base___Token___to_symbol_t)CALL(variable3,COLOR_syntax_base___Token___to_symbol))(variable3) /*Token::to_symbol*/;
2615 variable2 = variable3 /*name=*/;
2616 }
2617 variable3 = ((parser_nodes___ANewExpr___n_args_t)CALL( self,COLOR_parser_nodes___ANewExpr___n_args))( self) /*ANewExpr::n_args*/;
2618 variable3 = ((array___Collection___to_a_t)CALL(variable3,COLOR_array___Collection___to_a))(variable3) /*Collection::to_a*/;
2619 ((typing___AAbsSendExpr___do_typing_t)CALL( self,COLOR_typing___AAbsSendExpr___do_typing))( self, variable0 /*v*/, variable1 /*t*/, TAG_Bool(false), TAG_Bool(false), variable2 /*name*/, variable3) /*AAbsSendExpr::do_typing*/;
2620 variable3 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2621 variable3 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalProperty___global))(variable3) /*MMLocalProperty::global*/;
2622 variable3 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable3,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable3) /*MMGlobalProperty::is_init*/;
2623 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
2624 variable3 = NEW_string___String___init(); /*new String*/
2625 variable4 = NEW_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
2626 variable5 = variable4;
2627 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
2628 variable6 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2629 variable7 = variable6;
2630 variable7 = ((string___String___to_s_t)CALL(variable7,COLOR_string___Object___to_s))(variable7) /*String::to_s*/;
2631 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
2632 variable8 = NEW_string___String___with_native(BOX_NativeString(" is not a constructor."), TAG_Int(22)); /*new String*/
2633 variable9 = variable8;
2634 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
2635 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable3) /*AbsSyntaxVisitor::error*/;
2636 }
2637 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1 /*t*/;
2638 return_label84: while(false);
2639 tracehead = trace.prev;
2640 return;
2641 }
2642 val_t typing___ASendExpr___name(val_t self) {
2643 struct trace_t trace = {NULL, NULL, 925, LOCATE_typing___ASendExpr___name};
2644 trace.prev = tracehead; tracehead = &trace;
2645 trace.file = LOCATE_typing;
2646 fprintf(stderr, "Deferred method %s called");
2647 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ANewExpr___after_typing, LOCATE_typing, 925);
2648 nit_exit(1);
2649 tracehead = trace.prev;
2650 return NIT_NULL;
2651 }
2652 val_t typing___ASendExpr___raw_arguments(val_t self) {
2653 struct trace_t trace = {NULL, NULL, 928, LOCATE_typing___ASendExpr___raw_arguments};
2654 trace.prev = tracehead; tracehead = &trace;
2655 trace.file = LOCATE_typing;
2656 fprintf(stderr, "Deferred method %s called");
2657 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ANewExpr___after_typing, LOCATE_typing, 928);
2658 nit_exit(1);
2659 tracehead = trace.prev;
2660 return NIT_NULL;
2661 }
2662 void typing___ASendExpr___after_typing(val_t self, val_t param0) {
2663 struct trace_t trace = {NULL, NULL, 931, LOCATE_typing___ASendExpr___after_typing};
2664 val_t variable0;
2665 trace.prev = tracehead; tracehead = &trace;
2666 trace.file = LOCATE_typing;
2667 variable0 = param0;
2668 ((typing___ASendExpr___do_all_typing_t)CALL( self,COLOR_typing___ASendExpr___do_all_typing))( self, variable0 /*v*/) /*ASendExpr::do_all_typing*/;
2669 tracehead = trace.prev;
2670 return;
2671 }
2672 void typing___ASendExpr___do_all_typing(val_t self, val_t param0) {
2673 struct trace_t trace = {NULL, NULL, 936, LOCATE_typing___ASendExpr___do_all_typing};
2674 val_t variable0;
2675 val_t variable1;
2676 val_t variable2;
2677 val_t variable3;
2678 val_t variable4;
2679 val_t variable5;
2680 val_t variable6;
2681 val_t variable7;
2682 trace.prev = tracehead; tracehead = &trace;
2683 trace.file = LOCATE_typing;
2684 variable0 = param0;
2685 variable1 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2686 variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
2687 variable2 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2688 variable2 = ((typing___PExpr___is_implicit_self_t)CALL(variable2,COLOR_typing___PExpr___is_implicit_self))(variable2) /*PExpr::is_implicit_self*/;
2689 variable3 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2690 variable3 = ((typing___PExpr___is_self_t)CALL(variable3,COLOR_typing___PExpr___is_self))(variable3) /*PExpr::is_self*/;
2691 variable4 = ((typing___ASendExpr___name_t)CALL( self,COLOR_typing___ASendExpr___name))( self) /*ASendExpr::name*/;
2692 variable5 = ((typing___ASendExpr___raw_arguments_t)CALL( self,COLOR_typing___ASendExpr___raw_arguments))( self) /*ASendExpr::raw_arguments*/;
2693 ((typing___AAbsSendExpr___do_typing_t)CALL( self,COLOR_typing___AAbsSendExpr___do_typing))( self, variable0 /*v*/, variable1, variable2, variable3, variable4, variable5) /*AAbsSendExpr::do_typing*/;
2694 variable1 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2695 variable1 = TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))));
2696 if (UNTAG_Bool(variable1)) { /*if*/
2697 goto return_label87;
2698 }
2699 variable1 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2700 variable1 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable1,COLOR_abstractmetamodel___MMLocalProperty___global))(variable1) /*MMLocalProperty::global*/;
2701 variable1 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable1,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable1) /*MMGlobalProperty::is_init*/;
2702 if (UNTAG_Bool(variable1)) { /*if*/
2703 variable1 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*AbsSyntaxVisitor::local_property*/;
2704 variable1 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable1,COLOR_abstractmetamodel___MMLocalProperty___global))(variable1) /*MMLocalProperty::global*/;
2705 variable1 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable1,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable1) /*MMGlobalProperty::is_init*/;
2706 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { /*if*/
2707 variable1 = NEW_string___String___init(); /*new String*/
2708 variable2 = NEW_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
2709 variable3 = variable2;
2710 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
2711 variable4 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2712 variable5 = variable4;
2713 variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
2714 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
2715 variable6 = NEW_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
2716 variable7 = variable6;
2717 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
2718 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable1) /*AbsSyntaxVisitor::error*/;
2719 } else { /*if*/
2720 variable1 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2721 variable1 = ((typing___PExpr___is_self_t)CALL(variable1,COLOR_typing___PExpr___is_self))(variable1) /*PExpr::is_self*/;
2722 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { /*if*/
2723 variable1 = NEW_string___String___init(); /*new String*/
2724 variable2 = NEW_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
2725 variable3 = variable2;
2726 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
2727 variable4 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2728 variable5 = variable4;
2729 variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
2730 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
2731 variable6 = NEW_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
2732 variable7 = variable6;
2733 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
2734 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable1) /*AbsSyntaxVisitor::error*/;
2735 } else { /*if*/
2736 variable1 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2737 ((typing___ASuperInitCall___register_super_init_call_t)CALL( self,COLOR_typing___ASuperInitCall___register_super_init_call))( self, variable0 /*v*/, variable1) /*ASuperInitCall::register_super_init_call*/;
2738 }
2739 }
2740 }
2741 variable2 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2742 variable3 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2743 variable3 = ((typing___PExpr___stype_t)CALL(variable3,COLOR_syntax_base___PExpr___stype))(variable3) /*PExpr::stype*/;
2744 variable2 = ((static_type___MMLocalProperty___signature_for_t)CALL(variable2,COLOR_static_type___MMLocalProperty___signature_for))(variable2, variable3) /*MMLocalProperty::signature_for*/;
2745 variable2 = ((static_type___MMSignature___return_type_t)CALL(variable2,COLOR_static_type___MMSignature___return_type))(variable2) /*MMSignature::return_type*/;
2746 variable1 = variable2;
2747 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ == NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2748 variable3 = variable2;
2749 if (UNTAG_Bool(variable3)) { /* and */
2750 variable3 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2751 variable3 = ((typing___PExpr___is_self_t)CALL(variable3,COLOR_typing___PExpr___is_self))(variable3) /*PExpr::is_self*/;
2752 variable3 = TAG_Bool(!UNTAG_Bool(variable3));
2753 }
2754 variable2 = variable3;
2755 if (UNTAG_Bool(variable2)) { /*if*/
2756 variable2 = ((static_type___MMType___not_for_self_t)CALL( variable1 /*t*/,COLOR_static_type___MMType___not_for_self))( variable1 /*t*/) /*MMType::not_for_self*/;
2757 variable1 = variable2 /*t=*/;
2758 }
2759 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1 /*t*/;
2760 return_label87: while(false);
2761 tracehead = trace.prev;
2762 return;
2763 }
2764 val_t typing___ASendReassignExpr___read_prop(val_t self) {
2765 struct trace_t trace = {NULL, NULL, 958, LOCATE_typing___ASendReassignExpr___read_prop};
2766 trace.prev = tracehead; tracehead = &trace;
2767 trace.file = LOCATE_typing;
2768 tracehead = trace.prev;
2769 return ATTR_typing___ASendReassignExpr____read_prop( self) /*ASendReassignExpr::_read_prop*/;
2770 }
2771 void typing___ASendReassignExpr___do_all_typing(val_t self, val_t param0) {
2772 struct trace_t trace = {NULL, NULL, 959, LOCATE_typing___ASendReassignExpr___do_all_typing};
2773 val_t variable0;
2774 val_t variable1;
2775 val_t variable2;
2776 val_t variable3;
2777 val_t variable4;
2778 val_t variable5;
2779 val_t variable6;
2780 val_t variable7;
2781 val_t variable8;
2782 val_t variable9;
2783 val_t variable10;
2784 val_t variable11;
2785 val_t variable12;
2786 val_t variable13;
2787 trace.prev = tracehead; tracehead = &trace;
2788 trace.file = LOCATE_typing;
2789 variable0 = param0;
2790 variable2 = ((typing___ASendExpr___raw_arguments_t)CALL( self,COLOR_typing___ASendExpr___raw_arguments))( self) /*ASendExpr::raw_arguments*/;
2791 variable1 = variable2;
2792 variable2 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2793 variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
2794 variable3 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2795 variable3 = ((typing___PExpr___is_implicit_self_t)CALL(variable3,COLOR_typing___PExpr___is_implicit_self))(variable3) /*PExpr::is_implicit_self*/;
2796 variable4 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2797 variable4 = ((typing___PExpr___is_self_t)CALL(variable4,COLOR_typing___PExpr___is_self))(variable4) /*PExpr::is_self*/;
2798 variable5 = ((typing___ASendExpr___name_t)CALL( self,COLOR_typing___ASendExpr___name))( self) /*ASendExpr::name*/;
2799 ((typing___AAbsSendExpr___do_typing_t)CALL( self,COLOR_typing___AAbsSendExpr___do_typing))( self, variable0 /*v*/, variable2, variable3, variable4, variable5, variable1 /*raw_args*/) /*AAbsSendExpr::do_typing*/;
2800 variable2 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2801 variable2 = TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))));
2802 if (UNTAG_Bool(variable2)) { /*if*/
2803 goto return_label88;
2804 }
2805 variable2 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2806 variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalProperty___global))(variable2) /*MMLocalProperty::global*/;
2807 variable2 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable2,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable2) /*MMGlobalProperty::is_init*/;
2808 if (UNTAG_Bool(variable2)) { /*if*/
2809 variable2 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*AbsSyntaxVisitor::local_property*/;
2810 variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalProperty___global))(variable2) /*MMLocalProperty::global*/;
2811 variable2 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable2,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable2) /*MMGlobalProperty::is_init*/;
2812 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2)))) { /*if*/
2813 variable2 = NEW_string___String___init(); /*new String*/
2814 variable3 = NEW_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
2815 variable4 = variable3;
2816 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
2817 variable5 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2818 variable6 = variable5;
2819 variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
2820 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
2821 variable7 = NEW_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
2822 variable8 = variable7;
2823 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
2824 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable2) /*AbsSyntaxVisitor::error*/;
2825 } else { /*if*/
2826 variable2 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2827 variable2 = ((typing___PExpr___is_self_t)CALL(variable2,COLOR_typing___PExpr___is_self))(variable2) /*PExpr::is_self*/;
2828 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable2)))) { /*if*/
2829 variable2 = NEW_string___String___init(); /*new String*/
2830 variable3 = NEW_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
2831 variable4 = variable3;
2832 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
2833 variable5 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2834 variable6 = variable5;
2835 variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
2836 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable6) /*String::append*/;
2837 variable7 = NEW_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
2838 variable8 = variable7;
2839 ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable8) /*String::append*/;
2840 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable2) /*AbsSyntaxVisitor::error*/;
2841 }
2842 }
2843 }
2844 variable3 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2845 variable4 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2846 variable4 = ((typing___PExpr___stype_t)CALL(variable4,COLOR_syntax_base___PExpr___stype))(variable4) /*PExpr::stype*/;
2847 variable3 = ((static_type___MMLocalProperty___signature_for_t)CALL(variable3,COLOR_static_type___MMLocalProperty___signature_for))(variable3, variable4) /*MMLocalProperty::signature_for*/;
2848 variable3 = ((static_type___MMSignature___return_type_t)CALL(variable3,COLOR_static_type___MMSignature___return_type))(variable3) /*MMSignature::return_type*/;
2849 variable2 = variable3;
2850 variable3 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2851 variable3 = ((typing___PExpr___is_self_t)CALL(variable3,COLOR_typing___PExpr___is_self))(variable3) /*PExpr::is_self*/;
2852 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
2853 variable3 = ((static_type___MMType___not_for_self_t)CALL( variable2 /*t*/,COLOR_static_type___MMType___not_for_self))( variable2 /*t*/) /*MMType::not_for_self*/;
2854 variable2 = variable3 /*t=*/;
2855 }
2856 ((typing___AReassignFormExpr___do_lvalue_typing_t)CALL( self,COLOR_typing___AReassignFormExpr___do_lvalue_typing))( self, variable0 /*v*/, variable2 /*t*/) /*AReassignFormExpr::do_lvalue_typing*/;
2857 variable3 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2858 ATTR_typing___ASendReassignExpr____read_prop( self) /*ASendReassignExpr::_read_prop*/ = variable3;
2859 variable4 = ((typing___AAbsSendExpr___arguments_t)CALL( self,COLOR_typing___AAbsSendExpr___arguments))( self) /*AAbsSendExpr::arguments*/;
2860 variable3 = variable4;
2861 variable4 = ((parser_nodes___AReassignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_value))( self) /*AReassignFormExpr::n_value*/;
2862 ((array___AbstractArray___add_t)CALL( variable1 /*raw_args*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*raw_args*/, variable4) /*AbstractArray::add*/;
2863 variable4 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2864 variable4 = ((typing___PExpr___stype_t)CALL(variable4,COLOR_syntax_base___PExpr___stype))(variable4) /*PExpr::stype*/;
2865 variable5 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2866 variable5 = ((typing___PExpr___is_implicit_self_t)CALL(variable5,COLOR_typing___PExpr___is_implicit_self))(variable5) /*PExpr::is_implicit_self*/;
2867 variable6 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2868 variable6 = ((typing___PExpr___is_self_t)CALL(variable6,COLOR_typing___PExpr___is_self))(variable6) /*PExpr::is_self*/;
2869 variable7 = NEW_string___String___init(); /*new String*/
2870 variable8 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2871 variable9 = variable8;
2872 ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable9) /*String::append*/;
2873 variable10 = ((typing___ASendExpr___name_t)CALL( self,COLOR_typing___ASendExpr___name))( self) /*ASendExpr::name*/;
2874 variable11 = variable10;
2875 variable11 = ((string___String___to_s_t)CALL(variable11,COLOR_string___Object___to_s))(variable11) /*String::to_s*/;
2876 ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable11) /*String::append*/;
2877 variable12 = NEW_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
2878 variable13 = variable12;
2879 ((string___String___append_t)CALL(variable7,COLOR_abstract_collection___IndexedCollection___append))(variable7, variable13) /*String::append*/;
2880 variable7 = ((symbol___String___to_symbol_t)CALL(variable7,COLOR_symbol___String___to_symbol))(variable7) /*String::to_symbol*/;
2881 ((typing___AAbsSendExpr___do_typing_t)CALL( self,COLOR_typing___AAbsSendExpr___do_typing))( self, variable0 /*v*/, variable4, variable5, variable6, variable7, variable1 /*raw_args*/) /*AAbsSendExpr::do_typing*/;
2882 variable4 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2883 variable4 = TAG_Bool((variable4 == NIT_NULL /*null*/) || ((variable4 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable4, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable4,COLOR_kernel___Object_____eqeq))(variable4, NIT_NULL /*null*/) /*Object::==*/)))));
2884 if (UNTAG_Bool(variable4)) { /*if*/
2885 goto return_label88;
2886 }
2887 variable4 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2888 variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___global))(variable4) /*MMLocalProperty::global*/;
2889 variable4 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable4) /*MMGlobalProperty::is_init*/;
2890 if (UNTAG_Bool(variable4)) { /*if*/
2891 variable4 = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable0 /*v*/) /*AbsSyntaxVisitor::local_property*/;
2892 variable4 = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable4,COLOR_abstractmetamodel___MMLocalProperty___global))(variable4) /*MMLocalProperty::global*/;
2893 variable4 = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable4,COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable4) /*MMGlobalProperty::is_init*/;
2894 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable4)))) { /*if*/
2895 variable4 = NEW_string___String___init(); /*new String*/
2896 variable5 = NEW_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
2897 variable6 = variable5;
2898 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
2899 variable7 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2900 variable8 = variable7;
2901 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
2902 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
2903 variable9 = NEW_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
2904 variable10 = variable9;
2905 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
2906 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable4) /*AbsSyntaxVisitor::error*/;
2907 } else { /*if*/
2908 variable4 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
2909 variable4 = ((typing___PExpr___is_self_t)CALL(variable4,COLOR_typing___PExpr___is_self))(variable4) /*PExpr::is_self*/;
2910 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable4)))) { /*if*/
2911 variable4 = NEW_string___String___init(); /*new String*/
2912 variable5 = NEW_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
2913 variable6 = variable5;
2914 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/;
2915 variable7 = ((typing___AAbsSendExpr___prop_t)CALL( self,COLOR_typing___AAbsSendExpr___prop))( self) /*AAbsSendExpr::prop*/;
2916 variable8 = variable7;
2917 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
2918 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable8) /*String::append*/;
2919 variable9 = NEW_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
2920 variable10 = variable9;
2921 ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable10) /*String::append*/;
2922 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable4) /*AbsSyntaxVisitor::error*/;
2923 }
2924 }
2925 }
2926 ATTR_typing___AAbsSendExpr____arguments( self) /*AAbsSendExpr::_arguments*/ = variable3 /*old_args*/;
2927 return_label88: while(false);
2928 tracehead = trace.prev;
2929 return;
2930 }
2931 val_t typing___ABinopExpr___raw_arguments(val_t self) {
2932 struct trace_t trace = {NULL, NULL, 995, LOCATE_typing___ABinopExpr___raw_arguments};
2933 val_t variable0;
2934 val_t variable1;
2935 trace.prev = tracehead; tracehead = &trace;
2936 trace.file = LOCATE_typing;
2937 variable0 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
2938 variable1 = ((parser_nodes___ABinopExpr___n_expr2_t)CALL( self,COLOR_parser_nodes___ABinopExpr___n_expr2))( self) /*ABinopExpr::n_expr2*/;
2939 ((array___AbstractArray___add_t)CALL(variable0,COLOR_abstract_collection___SimpleCollection___add))(variable0, variable1) /*AbstractArray::add*/;
2940 goto return_label89;
2941 return_label89: while(false);
2942 tracehead = trace.prev;
2943 return variable0;
2944 }
2945 val_t typing___AEqExpr___name(val_t self) {
2946 struct trace_t trace = {NULL, NULL, 998, LOCATE_typing___AEqExpr___name};
2947 val_t variable0;
2948 static val_t once_value_variable0_91; static int once_bool_variable0_91;
2949 trace.prev = tracehead; tracehead = &trace;
2950 trace.file = LOCATE_typing;
2951 if (once_bool_variable0_91) variable0 = once_value_variable0_91;
2952 else {
2953 variable0 = NEW_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
2954 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
2955 once_value_variable0_91 = variable0;
2956 once_bool_variable0_91 = true;
2957 }
2958 goto return_label90;
2959 return_label90: while(false);
2960 tracehead = trace.prev;
2961 return variable0;
2962 }
2963 val_t typing___ANeExpr___name(val_t self) {
2964 struct trace_t trace = {NULL, NULL, 1001, LOCATE_typing___ANeExpr___name};
2965 val_t variable0;
2966 static val_t once_value_variable0_93; static int once_bool_variable0_93;
2967 trace.prev = tracehead; tracehead = &trace;
2968 trace.file = LOCATE_typing;
2969 if (once_bool_variable0_93) variable0 = once_value_variable0_93;
2970 else {
2971 variable0 = NEW_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
2972 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
2973 once_value_variable0_93 = variable0;
2974 once_bool_variable0_93 = true;
2975 }
2976 goto return_label92;
2977 return_label92: while(false);
2978 tracehead = trace.prev;
2979 return variable0;
2980 }
2981 val_t typing___ALtExpr___name(val_t self) {
2982 struct trace_t trace = {NULL, NULL, 1004, LOCATE_typing___ALtExpr___name};
2983 val_t variable0;
2984 static val_t once_value_variable0_95; static int once_bool_variable0_95;
2985 trace.prev = tracehead; tracehead = &trace;
2986 trace.file = LOCATE_typing;
2987 if (once_bool_variable0_95) variable0 = once_value_variable0_95;
2988 else {
2989 variable0 = NEW_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
2990 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
2991 once_value_variable0_95 = variable0;
2992 once_bool_variable0_95 = true;
2993 }
2994 goto return_label94;
2995 return_label94: while(false);
2996 tracehead = trace.prev;
2997 return variable0;
2998 }
2999 val_t typing___ALeExpr___name(val_t self) {
3000 struct trace_t trace = {NULL, NULL, 1007, LOCATE_typing___ALeExpr___name};
3001 val_t variable0;
3002 static val_t once_value_variable0_97; static int once_bool_variable0_97;
3003 trace.prev = tracehead; tracehead = &trace;
3004 trace.file = LOCATE_typing;
3005 if (once_bool_variable0_97) variable0 = once_value_variable0_97;
3006 else {
3007 variable0 = NEW_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
3008 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3009 once_value_variable0_97 = variable0;
3010 once_bool_variable0_97 = true;
3011 }
3012 goto return_label96;
3013 return_label96: while(false);
3014 tracehead = trace.prev;
3015 return variable0;
3016 }
3017 val_t typing___AGtExpr___name(val_t self) {
3018 struct trace_t trace = {NULL, NULL, 1010, LOCATE_typing___AGtExpr___name};
3019 val_t variable0;
3020 static val_t once_value_variable0_99; static int once_bool_variable0_99;
3021 trace.prev = tracehead; tracehead = &trace;
3022 trace.file = LOCATE_typing;
3023 if (once_bool_variable0_99) variable0 = once_value_variable0_99;
3024 else {
3025 variable0 = NEW_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
3026 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3027 once_value_variable0_99 = variable0;
3028 once_bool_variable0_99 = true;
3029 }
3030 goto return_label98;
3031 return_label98: while(false);
3032 tracehead = trace.prev;
3033 return variable0;
3034 }
3035 val_t typing___AGeExpr___name(val_t self) {
3036 struct trace_t trace = {NULL, NULL, 1013, LOCATE_typing___AGeExpr___name};
3037 val_t variable0;
3038 static val_t once_value_variable0_101; static int once_bool_variable0_101;
3039 trace.prev = tracehead; tracehead = &trace;
3040 trace.file = LOCATE_typing;
3041 if (once_bool_variable0_101) variable0 = once_value_variable0_101;
3042 else {
3043 variable0 = NEW_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
3044 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3045 once_value_variable0_101 = variable0;
3046 once_bool_variable0_101 = true;
3047 }
3048 goto return_label100;
3049 return_label100: while(false);
3050 tracehead = trace.prev;
3051 return variable0;
3052 }
3053 val_t typing___APlusExpr___name(val_t self) {
3054 struct trace_t trace = {NULL, NULL, 1016, LOCATE_typing___APlusExpr___name};
3055 val_t variable0;
3056 static val_t once_value_variable0_103; static int once_bool_variable0_103;
3057 trace.prev = tracehead; tracehead = &trace;
3058 trace.file = LOCATE_typing;
3059 if (once_bool_variable0_103) variable0 = once_value_variable0_103;
3060 else {
3061 variable0 = NEW_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
3062 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3063 once_value_variable0_103 = variable0;
3064 once_bool_variable0_103 = true;
3065 }
3066 goto return_label102;
3067 return_label102: while(false);
3068 tracehead = trace.prev;
3069 return variable0;
3070 }
3071 val_t typing___AMinusExpr___name(val_t self) {
3072 struct trace_t trace = {NULL, NULL, 1019, LOCATE_typing___AMinusExpr___name};
3073 val_t variable0;
3074 static val_t once_value_variable0_105; static int once_bool_variable0_105;
3075 trace.prev = tracehead; tracehead = &trace;
3076 trace.file = LOCATE_typing;
3077 if (once_bool_variable0_105) variable0 = once_value_variable0_105;
3078 else {
3079 variable0 = NEW_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
3080 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3081 once_value_variable0_105 = variable0;
3082 once_bool_variable0_105 = true;
3083 }
3084 goto return_label104;
3085 return_label104: while(false);
3086 tracehead = trace.prev;
3087 return variable0;
3088 }
3089 val_t typing___AStarshipExpr___name(val_t self) {
3090 struct trace_t trace = {NULL, NULL, 1022, LOCATE_typing___AStarshipExpr___name};
3091 val_t variable0;
3092 static val_t once_value_variable0_107; static int once_bool_variable0_107;
3093 trace.prev = tracehead; tracehead = &trace;
3094 trace.file = LOCATE_typing;
3095 if (once_bool_variable0_107) variable0 = once_value_variable0_107;
3096 else {
3097 variable0 = NEW_string___String___with_native(BOX_NativeString("<=>"), TAG_Int(3)); /*new String*/
3098 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3099 once_value_variable0_107 = variable0;
3100 once_bool_variable0_107 = true;
3101 }
3102 goto return_label106;
3103 return_label106: while(false);
3104 tracehead = trace.prev;
3105 return variable0;
3106 }
3107 val_t typing___AStarExpr___name(val_t self) {
3108 struct trace_t trace = {NULL, NULL, 1025, LOCATE_typing___AStarExpr___name};
3109 val_t variable0;
3110 static val_t once_value_variable0_109; static int once_bool_variable0_109;
3111 trace.prev = tracehead; tracehead = &trace;
3112 trace.file = LOCATE_typing;
3113 if (once_bool_variable0_109) variable0 = once_value_variable0_109;
3114 else {
3115 variable0 = NEW_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
3116 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3117 once_value_variable0_109 = variable0;
3118 once_bool_variable0_109 = true;
3119 }
3120 goto return_label108;
3121 return_label108: while(false);
3122 tracehead = trace.prev;
3123 return variable0;
3124 }
3125 val_t typing___ASlashExpr___name(val_t self) {
3126 struct trace_t trace = {NULL, NULL, 1028, LOCATE_typing___ASlashExpr___name};
3127 val_t variable0;
3128 static val_t once_value_variable0_111; static int once_bool_variable0_111;
3129 trace.prev = tracehead; tracehead = &trace;
3130 trace.file = LOCATE_typing;
3131 if (once_bool_variable0_111) variable0 = once_value_variable0_111;
3132 else {
3133 variable0 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
3134 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3135 once_value_variable0_111 = variable0;
3136 once_bool_variable0_111 = true;
3137 }
3138 goto return_label110;
3139 return_label110: while(false);
3140 tracehead = trace.prev;
3141 return variable0;
3142 }
3143 val_t typing___APercentExpr___name(val_t self) {
3144 struct trace_t trace = {NULL, NULL, 1031, LOCATE_typing___APercentExpr___name};
3145 val_t variable0;
3146 static val_t once_value_variable0_113; static int once_bool_variable0_113;
3147 trace.prev = tracehead; tracehead = &trace;
3148 trace.file = LOCATE_typing;
3149 if (once_bool_variable0_113) variable0 = once_value_variable0_113;
3150 else {
3151 variable0 = NEW_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)); /*new String*/
3152 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3153 once_value_variable0_113 = variable0;
3154 once_bool_variable0_113 = true;
3155 }
3156 goto return_label112;
3157 return_label112: while(false);
3158 tracehead = trace.prev;
3159 return variable0;
3160 }
3161 val_t typing___AUminusExpr___name(val_t self) {
3162 struct trace_t trace = {NULL, NULL, 1035, LOCATE_typing___AUminusExpr___name};
3163 val_t variable0;
3164 static val_t once_value_variable0_115; static int once_bool_variable0_115;
3165 trace.prev = tracehead; tracehead = &trace;
3166 trace.file = LOCATE_typing;
3167 if (once_bool_variable0_115) variable0 = once_value_variable0_115;
3168 else {
3169 variable0 = NEW_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
3170 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3171 once_value_variable0_115 = variable0;
3172 once_bool_variable0_115 = true;
3173 }
3174 goto return_label114;
3175 return_label114: while(false);
3176 tracehead = trace.prev;
3177 return variable0;
3178 }
3179 val_t typing___AUminusExpr___raw_arguments(val_t self) {
3180 struct trace_t trace = {NULL, NULL, 1036, LOCATE_typing___AUminusExpr___raw_arguments};
3181 val_t variable0;
3182 trace.prev = tracehead; tracehead = &trace;
3183 trace.file = LOCATE_typing;
3184 variable0 = NIT_NULL /*null*/;
3185 goto return_label116;
3186 return_label116: while(false);
3187 tracehead = trace.prev;
3188 return variable0;
3189 }
3190 void typing___ACallFormExpr___after_typing(val_t self, val_t param0) {
3191 struct trace_t trace = {NULL, NULL, 1040, LOCATE_typing___ACallFormExpr___after_typing};
3192 val_t variable0;
3193 val_t variable1;
3194 val_t variable2;
3195 val_t variable3;
3196 val_t variable4;
3197 val_t variable5;
3198 val_t variable6;
3199 val_t variable7;
3200 val_t variable8;
3201 trace.prev = tracehead; tracehead = &trace;
3202 trace.file = LOCATE_typing;
3203 variable0 = param0;
3204 variable1 = ((parser_nodes___ASendExpr___n_expr_t)CALL( self,COLOR_parser_nodes___ASendExpr___n_expr))( self) /*ASendExpr::n_expr*/;
3205 variable1 = ((typing___PExpr___is_implicit_self_t)CALL(variable1,COLOR_typing___PExpr___is_implicit_self))(variable1) /*PExpr::is_implicit_self*/;
3206 if (UNTAG_Bool(variable1)) { /*if*/
3207 variable2 = ((parser_nodes___ACallFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_id))( self) /*ACallFormExpr::n_id*/;
3208 variable2 = ((syntax_base___Token___to_symbol_t)CALL(variable2,COLOR_syntax_base___Token___to_symbol))(variable2) /*Token::to_symbol*/;
3209 variable1 = variable2;
3210 variable3 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
3211 variable3 = ((typing___VariableContext_____bra_t)CALL(variable3,COLOR_typing___VariableContext_____bra))(variable3, variable1 /*name*/) /*VariableContext::[]*/;
3212 variable2 = variable3;
3213 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*variable*/ == NIT_NULL /*null*/) || (( variable2 /*variable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*variable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*variable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*variable*/,COLOR_kernel___Object_____eqeq))( variable2 /*variable*/, NIT_NULL /*null*/) /*Object::==*/)))))));
3214 if (UNTAG_Bool(variable3)) { /*if*/
3215 variable3 = ((parser_nodes___ACallFormExpr___n_args_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_args))( self) /*ACallFormExpr::n_args*/;
3216 variable3 = ((list___List___is_empty_t)CALL(variable3,COLOR_abstract_collection___Collection___is_empty))(variable3) /*List::is_empty*/;
3217 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
3218 variable3 = NEW_string___String___init(); /*new String*/
3219 variable4 = NEW_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
3220 variable5 = variable4;
3221 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
3222 variable6 = variable1 /*name*/;
3223 variable6 = ((string___String___to_s_t)CALL(variable6,COLOR_string___Object___to_s))(variable6) /*String::to_s*/;
3224 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable6) /*String::append*/;
3225 variable7 = NEW_string___String___with_native(BOX_NativeString(" is variable, not a function."), TAG_Int(29)); /*new String*/
3226 variable8 = variable7;
3227 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable8) /*String::append*/;
3228 ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable0 /*v*/, self, variable3) /*AbsSyntaxVisitor::error*/;
3229 }
3230 variable4 = ((typing___ACallFormExpr___variable_create_t)CALL( self,COLOR_typing___ACallFormExpr___variable_create))( self, variable2 /*variable*/) /*ACallFormExpr::variable_create*/;
3231 variable3 = variable4;
3232 ((syntax_base___AVarFormExpr___variable__eq_t)CALL( variable3 /*vform*/,COLOR_syntax_base___AVarFormExpr___variable__eq))( variable3 /*vform*/, variable2 /*variable*/) /*AVarFormExpr::variable=*/;
3233 ((parser_prod___Prod___replace_with_t)CALL( self,COLOR_parser_prod___PNode___replace_with))( self, variable3 /*vform*/) /*Prod::replace_with*/;
3234 ((typing___PNode___after_typing_t)CALL( variable3 /*vform*/,COLOR_typing___PNode___after_typing))( variable3 /*vform*/, variable0 /*v*/) /*PNode::after_typing*/;
3235 goto return_label117;
3236 }
3237 }
3238 ((typing___ACallFormExpr___after_typing_t)CALL( self,COLOR_SUPER_typing___ACallFormExpr___after_typing))( self, param0) /*super ACallFormExpr::after_typing*/;
3239 return_label117: while(false);
3240 tracehead = trace.prev;
3241 return;
3242 }
3243 val_t typing___ACallFormExpr___variable_create(val_t self, val_t param0) {
3244 struct trace_t trace = {NULL, NULL, 1059, LOCATE_typing___ACallFormExpr___variable_create};
3245 trace.prev = tracehead; tracehead = &trace;
3246 trace.file = LOCATE_typing;
3247 fprintf(stderr, "Deferred method %s called");
3248 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ACallFormExpr___after_typing, LOCATE_typing, 1059);
3249 nit_exit(1);
3250 tracehead = trace.prev;
3251 return NIT_NULL;
3252 }
3253 val_t typing___ACallExpr___variable_create(val_t self, val_t param0) {
3254 struct trace_t trace = {NULL, NULL, 1064, LOCATE_typing___ACallExpr___variable_create};
3255 val_t variable0;
3256 val_t variable1;
3257 val_t variable2;
3258 trace.prev = tracehead; tracehead = &trace;
3259 trace.file = LOCATE_typing;
3260 variable0 = param0;
3261 variable1 = ((parser_nodes___ACallFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_id))( self) /*ACallFormExpr::n_id*/;
3262 variable2 = NEW_parser_prod___AVarExpr___init_avarexpr(variable1); /*new AVarExpr*/
3263 variable1 = variable2;
3264 goto return_label118;
3265 return_label118: while(false);
3266 tracehead = trace.prev;
3267 return variable1;
3268 }
3269 val_t typing___ACallExpr___name(val_t self) {
3270 struct trace_t trace = {NULL, NULL, 1069, LOCATE_typing___ACallExpr___name};
3271 val_t variable0;
3272 trace.prev = tracehead; tracehead = &trace;
3273 trace.file = LOCATE_typing;
3274 variable0 = ((parser_nodes___ACallFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_id))( self) /*ACallFormExpr::n_id*/;
3275 variable0 = ((syntax_base___Token___to_symbol_t)CALL(variable0,COLOR_syntax_base___Token___to_symbol))(variable0) /*Token::to_symbol*/;
3276 goto return_label119;
3277 return_label119: while(false);
3278 tracehead = trace.prev;
3279 return variable0;
3280 }
3281 val_t typing___ACallExpr___raw_arguments(val_t self) {
3282 struct trace_t trace = {NULL, NULL, 1070, LOCATE_typing___ACallExpr___raw_arguments};
3283 val_t variable0;
3284 trace.prev = tracehead; tracehead = &trace;
3285 trace.file = LOCATE_typing;
3286 variable0 = ((parser_nodes___ACallFormExpr___n_args_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_args))( self) /*ACallFormExpr::n_args*/;
3287 variable0 = ((array___Collection___to_a_t)CALL(variable0,COLOR_array___Collection___to_a))(variable0) /*Collection::to_a*/;
3288 goto return_label120;
3289 return_label120: while(false);
3290 tracehead = trace.prev;
3291 return variable0;
3292 }
3293 val_t typing___ACallAssignExpr___variable_create(val_t self, val_t param0) {
3294 struct trace_t trace = {NULL, NULL, 1074, LOCATE_typing___ACallAssignExpr___variable_create};
3295 val_t variable0;
3296 val_t variable1;
3297 val_t variable2;
3298 val_t variable3;
3299 val_t variable4;
3300 trace.prev = tracehead; tracehead = &trace;
3301 trace.file = LOCATE_typing;
3302 variable0 = param0;
3303 variable1 = ((parser_nodes___ACallFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_id))( self) /*ACallFormExpr::n_id*/;
3304 variable2 = ((parser_nodes___AAssignFormExpr___n_assign_t)CALL( self,COLOR_parser_nodes___AAssignFormExpr___n_assign))( self) /*AAssignFormExpr::n_assign*/;
3305 variable3 = ((parser_nodes___AAssignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AAssignFormExpr___n_value))( self) /*AAssignFormExpr::n_value*/;
3306 variable4 = NEW_parser_prod___AVarAssignExpr___init_avarassignexpr(variable1, variable2, variable3); /*new AVarAssignExpr*/
3307 variable1 = variable4;
3308 goto return_label121;
3309 return_label121: while(false);
3310 tracehead = trace.prev;
3311 return variable1;
3312 }
3313 val_t typing___ACallAssignExpr___name(val_t self) {
3314 struct trace_t trace = {NULL, NULL, 1079, LOCATE_typing___ACallAssignExpr___name};
3315 val_t variable0;
3316 val_t variable1;
3317 trace.prev = tracehead; tracehead = &trace;
3318 trace.file = LOCATE_typing;
3319 variable0 = ((parser_nodes___ACallFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_id))( self) /*ACallFormExpr::n_id*/;
3320 variable0 = ((lexer___Token___text_t)CALL(variable0,COLOR_lexer___Token___text))(variable0) /*Token::text*/;
3321 variable1 = NEW_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
3322 variable0 = ((string___String_____plus_t)CALL(variable0,COLOR_string___String_____plus))(variable0, variable1) /*String::+*/;
3323 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3324 goto return_label122;
3325 return_label122: while(false);
3326 tracehead = trace.prev;
3327 return variable0;
3328 }
3329 val_t typing___ACallAssignExpr___raw_arguments(val_t self) {
3330 struct trace_t trace = {NULL, NULL, 1080, LOCATE_typing___ACallAssignExpr___raw_arguments};
3331 val_t variable0;
3332 val_t variable1;
3333 trace.prev = tracehead; tracehead = &trace;
3334 trace.file = LOCATE_typing;
3335 variable1 = ((parser_nodes___ACallFormExpr___n_args_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_args))( self) /*ACallFormExpr::n_args*/;
3336 variable1 = ((array___Collection___to_a_t)CALL(variable1,COLOR_array___Collection___to_a))(variable1) /*Collection::to_a*/;
3337 variable0 = variable1;
3338 variable1 = ((parser_nodes___AAssignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AAssignFormExpr___n_value))( self) /*AAssignFormExpr::n_value*/;
3339 ((array___AbstractArray___add_t)CALL( variable0 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*res*/, variable1) /*AbstractArray::add*/;
3340 variable0 = variable0 /*res*/;
3341 goto return_label123;
3342 return_label123: while(false);
3343 tracehead = trace.prev;
3344 return variable0;
3345 }
3346 val_t typing___ACallReassignExpr___variable_create(val_t self, val_t param0) {
3347 struct trace_t trace = {NULL, NULL, 1089, LOCATE_typing___ACallReassignExpr___variable_create};
3348 val_t variable0;
3349 val_t variable1;
3350 val_t variable2;
3351 val_t variable3;
3352 val_t variable4;
3353 trace.prev = tracehead; tracehead = &trace;
3354 trace.file = LOCATE_typing;
3355 variable0 = param0;
3356 variable1 = ((parser_nodes___ACallFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_id))( self) /*ACallFormExpr::n_id*/;
3357 variable2 = ((parser_nodes___AReassignFormExpr___n_assign_op_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_assign_op))( self) /*AReassignFormExpr::n_assign_op*/;
3358 variable3 = ((parser_nodes___AReassignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AReassignFormExpr___n_value))( self) /*AReassignFormExpr::n_value*/;
3359 variable4 = NEW_parser_prod___AVarReassignExpr___init_avarreassignexpr(variable1, variable2, variable3); /*new AVarReassignExpr*/
3360 variable1 = variable4;
3361 goto return_label124;
3362 return_label124: while(false);
3363 tracehead = trace.prev;
3364 return variable1;
3365 }
3366 val_t typing___ACallReassignExpr___name(val_t self) {
3367 struct trace_t trace = {NULL, NULL, 1094, LOCATE_typing___ACallReassignExpr___name};
3368 val_t variable0;
3369 trace.prev = tracehead; tracehead = &trace;
3370 trace.file = LOCATE_typing;
3371 variable0 = ((parser_nodes___ACallFormExpr___n_id_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_id))( self) /*ACallFormExpr::n_id*/;
3372 variable0 = ((syntax_base___Token___to_symbol_t)CALL(variable0,COLOR_syntax_base___Token___to_symbol))(variable0) /*Token::to_symbol*/;
3373 goto return_label125;
3374 return_label125: while(false);
3375 tracehead = trace.prev;
3376 return variable0;
3377 }
3378 val_t typing___ACallReassignExpr___raw_arguments(val_t self) {
3379 struct trace_t trace = {NULL, NULL, 1095, LOCATE_typing___ACallReassignExpr___raw_arguments};
3380 val_t variable0;
3381 trace.prev = tracehead; tracehead = &trace;
3382 trace.file = LOCATE_typing;
3383 variable0 = ((parser_nodes___ACallFormExpr___n_args_t)CALL( self,COLOR_parser_nodes___ACallFormExpr___n_args))( self) /*ACallFormExpr::n_args*/;
3384 variable0 = ((array___Collection___to_a_t)CALL(variable0,COLOR_array___Collection___to_a))(variable0) /*Collection::to_a*/;
3385 goto return_label126;
3386 return_label126: while(false);
3387 tracehead = trace.prev;
3388 return variable0;
3389 }
3390 val_t typing___ABraExpr___name(val_t self) {
3391 struct trace_t trace = {NULL, NULL, 1099, LOCATE_typing___ABraExpr___name};
3392 val_t variable0;
3393 static val_t once_value_variable0_128; static int once_bool_variable0_128;
3394 trace.prev = tracehead; tracehead = &trace;
3395 trace.file = LOCATE_typing;
3396 if (once_bool_variable0_128) variable0 = once_value_variable0_128;
3397 else {
3398 variable0 = NEW_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
3399 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3400 once_value_variable0_128 = variable0;
3401 once_bool_variable0_128 = true;
3402 }
3403 goto return_label127;
3404 return_label127: while(false);
3405 tracehead = trace.prev;
3406 return variable0;
3407 }
3408 val_t typing___ABraExpr___raw_arguments(val_t self) {
3409 struct trace_t trace = {NULL, NULL, 1100, LOCATE_typing___ABraExpr___raw_arguments};
3410 val_t variable0;
3411 trace.prev = tracehead; tracehead = &trace;
3412 trace.file = LOCATE_typing;
3413 variable0 = ((parser_nodes___ABraFormExpr___n_args_t)CALL( self,COLOR_parser_nodes___ABraFormExpr___n_args))( self) /*ABraFormExpr::n_args*/;
3414 variable0 = ((array___Collection___to_a_t)CALL(variable0,COLOR_array___Collection___to_a))(variable0) /*Collection::to_a*/;
3415 goto return_label129;
3416 return_label129: while(false);
3417 tracehead = trace.prev;
3418 return variable0;
3419 }
3420 val_t typing___ABraAssignExpr___name(val_t self) {
3421 struct trace_t trace = {NULL, NULL, 1104, LOCATE_typing___ABraAssignExpr___name};
3422 val_t variable0;
3423 static val_t once_value_variable0_131; static int once_bool_variable0_131;
3424 trace.prev = tracehead; tracehead = &trace;
3425 trace.file = LOCATE_typing;
3426 if (once_bool_variable0_131) variable0 = once_value_variable0_131;
3427 else {
3428 variable0 = NEW_string___String___with_native(BOX_NativeString("[]="), TAG_Int(3)); /*new String*/
3429 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3430 once_value_variable0_131 = variable0;
3431 once_bool_variable0_131 = true;
3432 }
3433 goto return_label130;
3434 return_label130: while(false);
3435 tracehead = trace.prev;
3436 return variable0;
3437 }
3438 val_t typing___ABraAssignExpr___raw_arguments(val_t self) {
3439 struct trace_t trace = {NULL, NULL, 1105, LOCATE_typing___ABraAssignExpr___raw_arguments};
3440 val_t variable0;
3441 val_t variable1;
3442 trace.prev = tracehead; tracehead = &trace;
3443 trace.file = LOCATE_typing;
3444 variable1 = ((parser_nodes___ABraFormExpr___n_args_t)CALL( self,COLOR_parser_nodes___ABraFormExpr___n_args))( self) /*ABraFormExpr::n_args*/;
3445 variable1 = ((array___Collection___to_a_t)CALL(variable1,COLOR_array___Collection___to_a))(variable1) /*Collection::to_a*/;
3446 variable0 = variable1;
3447 variable1 = ((parser_nodes___AAssignFormExpr___n_value_t)CALL( self,COLOR_parser_nodes___AAssignFormExpr___n_value))( self) /*AAssignFormExpr::n_value*/;
3448 ((array___AbstractArray___add_t)CALL( variable0 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*res*/, variable1) /*AbstractArray::add*/;
3449 variable0 = variable0 /*res*/;
3450 goto return_label132;
3451 return_label132: while(false);
3452 tracehead = trace.prev;
3453 return variable0;
3454 }
3455 val_t typing___ABraReassignExpr___name(val_t self) {
3456 struct trace_t trace = {NULL, NULL, 1114, LOCATE_typing___ABraReassignExpr___name};
3457 val_t variable0;
3458 static val_t once_value_variable0_134; static int once_bool_variable0_134;
3459 trace.prev = tracehead; tracehead = &trace;
3460 trace.file = LOCATE_typing;
3461 if (once_bool_variable0_134) variable0 = once_value_variable0_134;
3462 else {
3463 variable0 = NEW_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
3464 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3465 once_value_variable0_134 = variable0;
3466 once_bool_variable0_134 = true;
3467 }
3468 goto return_label133;
3469 return_label133: while(false);
3470 tracehead = trace.prev;
3471 return variable0;
3472 }
3473 val_t typing___ABraReassignExpr___raw_arguments(val_t self) {
3474 struct trace_t trace = {NULL, NULL, 1115, LOCATE_typing___ABraReassignExpr___raw_arguments};
3475 val_t variable0;
3476 trace.prev = tracehead; tracehead = &trace;
3477 trace.file = LOCATE_typing;
3478 variable0 = ((parser_nodes___ABraFormExpr___n_args_t)CALL( self,COLOR_parser_nodes___ABraFormExpr___n_args))( self) /*ABraFormExpr::n_args*/;
3479 variable0 = ((array___Collection___to_a_t)CALL(variable0,COLOR_array___Collection___to_a))(variable0) /*Collection::to_a*/;
3480 goto return_label135;
3481 return_label135: while(false);
3482 tracehead = trace.prev;
3483 return variable0;
3484 }
3485 val_t typing___AInitExpr___name(val_t self) {
3486 struct trace_t trace = {NULL, NULL, 1119, LOCATE_typing___AInitExpr___name};
3487 val_t variable0;
3488 static val_t once_value_variable0_137; static int once_bool_variable0_137;
3489 trace.prev = tracehead; tracehead = &trace;
3490 trace.file = LOCATE_typing;
3491 if (once_bool_variable0_137) variable0 = once_value_variable0_137;
3492 else {
3493 variable0 = NEW_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
3494 variable0 = ((symbol___String___to_symbol_t)CALL(variable0,COLOR_symbol___String___to_symbol))(variable0) /*String::to_symbol*/;
3495 once_value_variable0_137 = variable0;
3496 once_bool_variable0_137 = true;
3497 }
3498 goto return_label136;
3499 return_label136: while(false);
3500 tracehead = trace.prev;
3501 return variable0;
3502 }
3503 val_t typing___AInitExpr___raw_arguments(val_t self) {
3504 struct trace_t trace = {NULL, NULL, 1120, LOCATE_typing___AInitExpr___raw_arguments};
3505 val_t variable0;
3506 trace.prev = tracehead; tracehead = &trace;
3507 trace.file = LOCATE_typing;
3508 variable0 = ((parser_nodes___AInitExpr___n_args_t)CALL( self,COLOR_parser_nodes___AInitExpr___n_args))( self) /*AInitExpr::n_args*/;
3509 variable0 = ((array___Collection___to_a_t)CALL(variable0,COLOR_array___Collection___to_a))(variable0) /*Collection::to_a*/;
3510 goto return_label138;
3511 return_label138: while(false);
3512 tracehead = trace.prev;
3513 return variable0;
3514 }
3515 void typing___AIsaExpr___after_typing(val_t self, val_t param0) {
3516 struct trace_t trace = {NULL, NULL, 1124, LOCATE_typing___AIsaExpr___after_typing};
3517 val_t variable0;
3518 val_t variable1;
3519 val_t variable2;
3520 val_t variable3;
3521 val_t variable4;
3522 trace.prev = tracehead; tracehead = &trace;
3523 trace.file = LOCATE_typing;
3524 variable0 = param0;
3525 variable1 = ((parser_nodes___AIsaExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIsaExpr___n_expr))( self) /*AIsaExpr::n_expr*/;
3526 variable1 = ((typing___PExpr___is_variable_t)CALL(variable1,COLOR_typing___PExpr___is_variable))(variable1) /*PExpr::is_variable*/;
3527 if (UNTAG_Bool(variable1)) { /*if*/
3528 variable2 = ((parser_nodes___AIsaExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AIsaExpr___n_expr))( self) /*AIsaExpr::n_expr*/;
3529 variable1 = variable2;
3530 variable2 = TAG_Bool(( variable1 /*n*/==NIT_NULL) || VAL_ISA( variable1 /*n*/, COLOR_AVarExpr, ID_AVarExpr)) /*cast AVarExpr*/;
3531 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___AIsaExpr___after_typing, LOCATE_typing, 1128); nit_exit(1);}
3532 variable2 = ((typing___TypingVisitor___variable_ctx_t)CALL( variable0 /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable0 /*v*/) /*TypingVisitor::variable_ctx*/;
3533 variable3 = ((syntax_base___AVarFormExpr___variable_t)CALL( variable1 /*n*/,COLOR_syntax_base___AVarFormExpr___variable))( variable1 /*n*/) /*AVarFormExpr::variable*/;
3534 variable4 = ((parser_nodes___AIsaExpr___n_type_t)CALL( self,COLOR_parser_nodes___AIsaExpr___n_type))( self) /*AIsaExpr::n_type*/;
3535 variable4 = ((typing___PType___stype_t)CALL(variable4,COLOR_typing___PType___stype))(variable4) /*PType::stype*/;
3536 variable2 = ((typing___VariableContext___sub_with_t)CALL(variable2,COLOR_typing___VariableContext___sub_with))(variable2, variable3, variable4) /*VariableContext::sub_with*/;
3537 ATTR_typing___PExpr____if_true_variable_ctx( self) /*PExpr::_if_true_variable_ctx*/ = variable2;
3538 }
3539 variable1 = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable0 /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable0 /*v*/) /*AbsSyntaxVisitor::type_bool*/;
3540 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
3541 tracehead = trace.prev;
3542 return;
3543 }
3544 void typing___AAsCastExpr___after_typing(val_t self, val_t param0) {
3545 struct trace_t trace = {NULL, NULL, 1136, LOCATE_typing___AAsCastExpr___after_typing};
3546 val_t variable0;
3547 val_t variable1;
3548 val_t variable2;
3549 trace.prev = tracehead; tracehead = &trace;
3550 trace.file = LOCATE_typing;
3551 variable0 = param0;
3552 variable1 = ((parser_nodes___AAsCastExpr___n_type_t)CALL( self,COLOR_parser_nodes___AAsCastExpr___n_type))( self) /*AAsCastExpr::n_type*/;
3553 variable1 = ((typing___PType___stype_t)CALL(variable1,COLOR_typing___PType___stype))(variable1) /*PType::stype*/;
3554 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
3555 variable2 = ((parser_nodes___AAsCastExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AAsCastExpr___n_expr))( self) /*AAsCastExpr::n_expr*/;
3556 variable2 = ((typing___PExpr___stype_t)CALL(variable2,COLOR_syntax_base___PExpr___stype))(variable2) /*PExpr::stype*/;
3557 variable1 = variable2;
3558 tracehead = trace.prev;
3559 return;
3560 }
3561 void typing___AProxyExpr___after_typing(val_t self, val_t param0) {
3562 struct trace_t trace = {NULL, NULL, 1144, LOCATE_typing___AProxyExpr___after_typing};
3563 val_t variable0;
3564 val_t variable1;
3565 trace.prev = tracehead; tracehead = &trace;
3566 trace.file = LOCATE_typing;
3567 variable0 = param0;
3568 variable1 = ((parser_nodes___AProxyExpr___n_expr_t)CALL( self,COLOR_parser_nodes___AProxyExpr___n_expr))( self) /*AProxyExpr::n_expr*/;
3569 variable1 = ((typing___PExpr___stype_t)CALL(variable1,COLOR_syntax_base___PExpr___stype))(variable1) /*PExpr::stype*/;
3570 ATTR_typing___PExpr____stype( self) /*PExpr::_stype*/ = variable1;
3571 tracehead = trace.prev;
3572 return;
3573 }