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