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