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