1 /* This C file is generated by NIT to compile module typing. */
2 #include "typing._sep.h"
3 void typing___MMSrcModule___do_typing(val_t self
, val_t param0
) {
4 struct trace_t trace
= {NULL
, NULL
, 25, LOCATE_typing___MMSrcModule___do_typing
};
6 struct WBT_
**closurevariable
= NULL
;
7 trace
.prev
= tracehead
; tracehead
= &trace
;
8 trace
.file
= LOCATE_typing
;
9 /* Register variable[0]: Local variable */
11 /* Register variable[1]: Local variable */
13 /* Register variable[2]: Method return value and escape marker */
14 /* Register variable[3]: Local variable */
15 /* Register variable[4]: Result */
16 variable
[4] = NEW_TypingVisitor_typing___TypingVisitor___init( variable
[1] /*tc*/, variable
[0]) /*new TypingVisitor*/;
17 variable
[3] = variable
[4];
18 /* Register variable[4]: Result */
19 variable
[4] = CALL_syntax_base___MMSrcModule___node(variable
[0])(variable
[0]) /*MMSrcModule::node*/;
20 CALL_parser_prod___Visitor___visit( variable
[3] /*tv*/)( variable
[3] /*tv*/, variable
[4]) /*TypingVisitor::visit*/;
21 return_label0
: while(false);
22 tracehead
= trace
.prev
;
25 void typing___TypingVisitor___visit(val_t self
, val_t param0
) {
26 struct trace_t trace
= {NULL
, NULL
, 41, LOCATE_typing___TypingVisitor___visit
};
28 struct WBT_
**closurevariable
= NULL
;
29 trace
.prev
= tracehead
; tracehead
= &trace
;
30 trace
.file
= LOCATE_typing
;
31 /* Register variable[0]: Local variable */
33 /* Register variable[1]: Local variable */
35 /* Register variable[2]: Method return value and escape marker */
36 /* Register variable[3]: Result */
37 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*n*/ == NIT_NULL
/*null*/) || (( variable
[1] /*n*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*n*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*n*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*n*/)( variable
[1] /*n*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
38 if (UNTAG_Bool(variable
[3])) { /*if*/
39 CALL_typing___PNode___accept_typing( variable
[1] /*n*/)( variable
[1] /*n*/, variable
[0]) /*PNode::accept_typing*/;
41 return_label1
: while(false);
42 tracehead
= trace
.prev
;
45 val_t
typing___TypingVisitor___variable_ctx(val_t self
) {
46 struct trace_t trace
= {NULL
, NULL
, 46, LOCATE_typing___TypingVisitor___variable_ctx
};
47 val_t
*variable
= NULL
;
48 struct WBT_
**closurevariable
= NULL
;
49 trace
.prev
= tracehead
; tracehead
= &trace
;
50 trace
.file
= LOCATE_typing
;
51 tracehead
= trace
.prev
;
52 return ATTR_typing___TypingVisitor____variable_ctx( self
) /*TypingVisitor::_variable_ctx*/;
54 void typing___TypingVisitor___variable_ctx__eq(val_t self
, val_t param0
) {
55 struct trace_t trace
= {NULL
, NULL
, 46, LOCATE_typing___TypingVisitor___variable_ctx__eq
};
56 val_t
*variable
= NULL
;
57 struct WBT_
**closurevariable
= NULL
;
58 trace
.prev
= tracehead
; tracehead
= &trace
;
59 trace
.file
= LOCATE_typing
;
60 ATTR_typing___TypingVisitor____variable_ctx( self
) /*TypingVisitor::_variable_ctx*/ = param0
;
61 tracehead
= trace
.prev
;
64 val_t
typing___TypingVisitor___base_variable_ctx(val_t self
) {
65 struct trace_t trace
= {NULL
, NULL
, 49, LOCATE_typing___TypingVisitor___base_variable_ctx
};
66 val_t
*variable
= NULL
;
67 struct WBT_
**closurevariable
= NULL
;
68 trace
.prev
= tracehead
; tracehead
= &trace
;
69 trace
.file
= LOCATE_typing
;
70 tracehead
= trace
.prev
;
71 return ATTR_typing___TypingVisitor____base_variable_ctx( self
) /*TypingVisitor::_base_variable_ctx*/;
73 void typing___TypingVisitor___base_variable_ctx__eq(val_t self
, val_t param0
) {
74 struct trace_t trace
= {NULL
, NULL
, 49, LOCATE_typing___TypingVisitor___base_variable_ctx__eq
};
75 val_t
*variable
= NULL
;
76 struct WBT_
**closurevariable
= NULL
;
77 trace
.prev
= tracehead
; tracehead
= &trace
;
78 trace
.file
= LOCATE_typing
;
79 ATTR_typing___TypingVisitor____base_variable_ctx( self
) /*TypingVisitor::_base_variable_ctx*/ = param0
;
80 tracehead
= trace
.prev
;
83 val_t
typing___TypingVisitor___escapable_ctx(val_t self
) {
84 struct trace_t trace
= {NULL
, NULL
, 52, LOCATE_typing___TypingVisitor___escapable_ctx
};
85 val_t
*variable
= NULL
;
86 struct WBT_
**closurevariable
= NULL
;
87 trace
.prev
= tracehead
; tracehead
= &trace
;
88 trace
.file
= LOCATE_typing
;
89 tracehead
= trace
.prev
;
90 return ATTR_typing___TypingVisitor____escapable_ctx( self
) /*TypingVisitor::_escapable_ctx*/;
92 void typing___TypingVisitor___escapable_ctx__eq(val_t self
, val_t param0
) {
93 struct trace_t trace
= {NULL
, NULL
, 52, LOCATE_typing___TypingVisitor___escapable_ctx__eq
};
94 val_t
*variable
= NULL
;
95 struct WBT_
**closurevariable
= NULL
;
96 trace
.prev
= tracehead
; tracehead
= &trace
;
97 trace
.file
= LOCATE_typing
;
98 ATTR_typing___TypingVisitor____escapable_ctx( self
) /*TypingVisitor::_escapable_ctx*/ = param0
;
99 tracehead
= trace
.prev
;
102 val_t
typing___TypingVisitor___self_var(val_t self
) {
103 struct trace_t trace
= {NULL
, NULL
, 55, LOCATE_typing___TypingVisitor___self_var
};
104 val_t
*variable
= NULL
;
105 struct WBT_
**closurevariable
= NULL
;
106 trace
.prev
= tracehead
; tracehead
= &trace
;
107 trace
.file
= LOCATE_typing
;
108 tracehead
= trace
.prev
;
109 return ATTR_typing___TypingVisitor____self_var( self
) /*TypingVisitor::_self_var*/;
111 void typing___TypingVisitor___self_var__eq(val_t self
, val_t param0
) {
112 struct trace_t trace
= {NULL
, NULL
, 55, LOCATE_typing___TypingVisitor___self_var__eq
};
113 val_t
*variable
= NULL
;
114 struct WBT_
**closurevariable
= NULL
;
115 trace
.prev
= tracehead
; tracehead
= &trace
;
116 trace
.file
= LOCATE_typing
;
117 ATTR_typing___TypingVisitor____self_var( self
) /*TypingVisitor::_self_var*/ = param0
;
118 tracehead
= trace
.prev
;
121 val_t
typing___TypingVisitor___top_block(val_t self
) {
122 struct trace_t trace
= {NULL
, NULL
, 58, LOCATE_typing___TypingVisitor___top_block
};
123 val_t
*variable
= NULL
;
124 struct WBT_
**closurevariable
= NULL
;
125 trace
.prev
= tracehead
; tracehead
= &trace
;
126 trace
.file
= LOCATE_typing
;
127 tracehead
= trace
.prev
;
128 return ATTR_typing___TypingVisitor____top_block( self
) /*TypingVisitor::_top_block*/;
130 void typing___TypingVisitor___top_block__eq(val_t self
, val_t param0
) {
131 struct trace_t trace
= {NULL
, NULL
, 58, LOCATE_typing___TypingVisitor___top_block__eq
};
132 val_t
*variable
= NULL
;
133 struct WBT_
**closurevariable
= NULL
;
134 trace
.prev
= tracehead
; tracehead
= &trace
;
135 trace
.file
= LOCATE_typing
;
136 ATTR_typing___TypingVisitor____top_block( self
) /*TypingVisitor::_top_block*/ = param0
;
137 tracehead
= trace
.prev
;
140 val_t
typing___TypingVisitor___explicit_super_init_calls(val_t self
) {
141 struct trace_t trace
= {NULL
, NULL
, 61, LOCATE_typing___TypingVisitor___explicit_super_init_calls
};
142 val_t
*variable
= NULL
;
143 struct WBT_
**closurevariable
= NULL
;
144 trace
.prev
= tracehead
; tracehead
= &trace
;
145 trace
.file
= LOCATE_typing
;
146 tracehead
= trace
.prev
;
147 return ATTR_typing___TypingVisitor____explicit_super_init_calls( self
) /*TypingVisitor::_explicit_super_init_calls*/;
149 void typing___TypingVisitor___explicit_super_init_calls__eq(val_t self
, val_t param0
) {
150 struct trace_t trace
= {NULL
, NULL
, 61, LOCATE_typing___TypingVisitor___explicit_super_init_calls__eq
};
151 val_t
*variable
= NULL
;
152 struct WBT_
**closurevariable
= NULL
;
153 trace
.prev
= tracehead
; tracehead
= &trace
;
154 trace
.file
= LOCATE_typing
;
155 ATTR_typing___TypingVisitor____explicit_super_init_calls( self
) /*TypingVisitor::_explicit_super_init_calls*/ = param0
;
156 tracehead
= trace
.prev
;
159 val_t
typing___TypingVisitor___explicit_other_init_call(val_t self
) {
160 struct trace_t trace
= {NULL
, NULL
, 64, LOCATE_typing___TypingVisitor___explicit_other_init_call
};
161 val_t
*variable
= NULL
;
162 struct WBT_
**closurevariable
= NULL
;
163 trace
.prev
= tracehead
; tracehead
= &trace
;
164 trace
.file
= LOCATE_typing
;
165 tracehead
= trace
.prev
;
166 return ATTR_typing___TypingVisitor____explicit_other_init_call( self
) /*TypingVisitor::_explicit_other_init_call*/;
168 void typing___TypingVisitor___explicit_other_init_call__eq(val_t self
, val_t param0
) {
169 struct trace_t trace
= {NULL
, NULL
, 64, LOCATE_typing___TypingVisitor___explicit_other_init_call__eq
};
170 val_t
*variable
= NULL
;
171 struct WBT_
**closurevariable
= NULL
;
172 trace
.prev
= tracehead
; tracehead
= &trace
;
173 trace
.file
= LOCATE_typing
;
174 ATTR_typing___TypingVisitor____explicit_other_init_call( self
) /*TypingVisitor::_explicit_other_init_call*/ = param0
;
175 tracehead
= trace
.prev
;
178 void typing___TypingVisitor___use_if_true_variable_ctx(val_t self
, val_t param0
) {
179 struct trace_t trace
= {NULL
, NULL
, 67, LOCATE_typing___TypingVisitor___use_if_true_variable_ctx
};
181 struct WBT_
**closurevariable
= NULL
;
182 trace
.prev
= tracehead
; tracehead
= &trace
;
183 trace
.file
= LOCATE_typing
;
184 /* Register variable[0]: Local variable */
186 /* Register variable[1]: Local variable */
187 variable
[1] = param0
;
188 /* Register variable[2]: Method return value and escape marker */
189 /* Register variable[3]: Local variable */
190 /* Register variable[4]: Result */
191 variable
[4] = CALL_typing___PExpr___if_true_variable_ctx( variable
[1] /*e*/)( variable
[1] /*e*/) /*PExpr::if_true_variable_ctx*/;
192 variable
[3] = variable
[4];
193 /* Register variable[4]: Result */
194 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*ctx*/ == NIT_NULL
/*null*/) || (( variable
[3] /*ctx*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*ctx*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*ctx*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*ctx*/)( variable
[3] /*ctx*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
195 if (UNTAG_Bool(variable
[4])) { /*if*/
196 CALL_typing___TypingVisitor___variable_ctx__eq(variable
[0])(variable
[0], variable
[3] /*ctx*/) /*TypingVisitor::variable_ctx=*/;
198 return_label2
: while(false);
199 tracehead
= trace
.prev
;
202 void typing___TypingVisitor___use_if_false_variable_ctx(val_t self
, val_t param0
) {
203 struct trace_t trace
= {NULL
, NULL
, 74, LOCATE_typing___TypingVisitor___use_if_false_variable_ctx
};
205 struct WBT_
**closurevariable
= NULL
;
206 trace
.prev
= tracehead
; tracehead
= &trace
;
207 trace
.file
= LOCATE_typing
;
208 /* Register variable[0]: Local variable */
210 /* Register variable[1]: Local variable */
211 variable
[1] = param0
;
212 /* Register variable[2]: Method return value and escape marker */
213 /* Register variable[3]: Local variable */
214 /* Register variable[4]: Result */
215 variable
[4] = CALL_typing___PExpr___if_false_variable_ctx( variable
[1] /*e*/)( variable
[1] /*e*/) /*PExpr::if_false_variable_ctx*/;
216 variable
[3] = variable
[4];
217 /* Register variable[4]: Result */
218 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*ctx*/ == NIT_NULL
/*null*/) || (( variable
[3] /*ctx*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*ctx*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*ctx*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*ctx*/)( variable
[3] /*ctx*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
219 if (UNTAG_Bool(variable
[4])) { /*if*/
220 CALL_typing___TypingVisitor___variable_ctx__eq(variable
[0])(variable
[0], variable
[3] /*ctx*/) /*TypingVisitor::variable_ctx=*/;
222 return_label3
: while(false);
223 tracehead
= trace
.prev
;
226 val_t
typing___TypingVisitor___once_count(val_t self
) {
227 struct trace_t trace
= {NULL
, NULL
, 81, LOCATE_typing___TypingVisitor___once_count
};
228 val_t
*variable
= NULL
;
229 struct WBT_
**closurevariable
= NULL
;
230 trace
.prev
= tracehead
; tracehead
= &trace
;
231 trace
.file
= LOCATE_typing
;
232 tracehead
= trace
.prev
;
233 return ATTR_typing___TypingVisitor____once_count( self
) /*TypingVisitor::_once_count*/;
235 void typing___TypingVisitor___once_count__eq(val_t self
, val_t param0
) {
236 struct trace_t trace
= {NULL
, NULL
, 81, LOCATE_typing___TypingVisitor___once_count__eq
};
237 val_t
*variable
= NULL
;
238 struct WBT_
**closurevariable
= NULL
;
239 trace
.prev
= tracehead
; tracehead
= &trace
;
240 trace
.file
= LOCATE_typing
;
241 ATTR_typing___TypingVisitor____once_count( self
) /*TypingVisitor::_once_count*/ = param0
;
242 tracehead
= trace
.prev
;
245 void typing___TypingVisitor___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
246 struct trace_t trace
= {NULL
, NULL
, 84, LOCATE_typing___TypingVisitor___init
};
248 struct WBT_
**closurevariable
= NULL
;
249 trace
.prev
= tracehead
; tracehead
= &trace
;
250 trace
.file
= LOCATE_typing
;
251 /* Register variable[0]: Local variable */
253 /* Register variable[1]: Local variable */
254 variable
[1] = param0
;
255 /* Register variable[2]: Local variable */
256 variable
[2] = param1
;
257 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_TypingVisitor
].i
]) return;
258 /* Register variable[3]: Method return value and escape marker */
259 CALL_syntax_base___AbsSyntaxVisitor___init(variable
[0])(variable
[0], variable
[1], variable
[2], init_table
/*YYY*/) /*AbsSyntaxVisitor::init*/;
260 return_label4
: while(false);
261 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_TypingVisitor
].i
] = 1;
262 tracehead
= trace
.prev
;
265 val_t
typing___TypingVisitor___get_default_constructor_for(val_t self
, val_t param0
, val_t param1
, val_t param2
) {
266 struct trace_t trace
= {NULL
, NULL
, 86, LOCATE_typing___TypingVisitor___get_default_constructor_for
};
267 static val_t once_value_7
; static int once_bool_7
; /* Once value for variable[16]*/
268 static val_t once_value_8
= NIT_NULL
; /* Once value for string variable[16]*/
269 static val_t once_value_10
= NIT_NULL
; /* Once value for string variable[14]*/
270 static val_t once_value_11
= NIT_NULL
; /* Once value for string variable[14]*/
271 static val_t once_value_12
= NIT_NULL
; /* Once value for string variable[14]*/
272 static val_t once_value_13
= NIT_NULL
; /* Once value for string variable[11]*/
273 static val_t once_value_14
= NIT_NULL
; /* Once value for string variable[11]*/
274 static val_t once_value_15
= NIT_NULL
; /* Once value for string variable[11]*/
275 static val_t once_value_16
= NIT_NULL
; /* Once value for string variable[11]*/
276 static val_t once_value_18
= NIT_NULL
; /* Once value for string variable[14]*/
277 static val_t once_value_19
= NIT_NULL
; /* Once value for string variable[14]*/
278 static val_t once_value_20
= NIT_NULL
; /* Once value for string variable[14]*/
279 static val_t once_value_21
= NIT_NULL
; /* Once value for string variable[11]*/
280 static val_t once_value_22
= NIT_NULL
; /* Once value for string variable[11]*/
281 static val_t once_value_23
= NIT_NULL
; /* Once value for string variable[11]*/
282 static val_t once_value_24
= NIT_NULL
; /* Once value for string variable[11]*/
283 static val_t once_value_25
= NIT_NULL
; /* Once value for string variable[10]*/
284 static val_t once_value_26
= NIT_NULL
; /* Once value for string variable[10]*/
286 struct WBT_
**closurevariable
= NULL
;
287 trace
.prev
= tracehead
; tracehead
= &trace
;
288 trace
.file
= LOCATE_typing
;
289 /* Register variable[0]: Local variable */
291 /* Register variable[1]: Local variable */
292 variable
[1] = param0
;
293 /* Register variable[2]: Local variable */
294 variable
[2] = param1
;
295 /* Register variable[3]: Local variable */
296 variable
[3] = param2
;
297 /* Register variable[4]: Method return value and escape marker */
298 /* Register variable[5]: Local variable */
299 variable
[5] = variable
[0];
300 /* Register variable[6]: Local variable */
301 /* Register variable[7]: Result */
302 variable
[7] = NEW_Array_array___Array___init() /*new Array[MMMethod]*/;
303 variable
[6] = variable
[7];
304 /* Register variable[7]: Local variable */
305 /* Register variable[8]: Result */
306 variable
[8] = NEW_Array_array___Array___init() /*new Array[MMMethod]*/;
307 variable
[7] = variable
[8];
308 /* Register variable[8]: Local variable */
309 /* Register variable[9]: Result */
310 variable
[9] = CALL_static_type___MMLocalProperty___signature( variable
[3] /*prop*/)( variable
[3] /*prop*/) /*MMLocalProperty::signature*/;
311 /* Register variable[9]: Result */
312 variable
[9] = CALL_static_type___MMSignature___arity(variable
[9])(variable
[9]) /*MMSignature::arity*/;
313 variable
[8] = variable
[9];
314 /* Register variable[9]: Result */
315 variable
[9] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable
[2] /*c*/)( variable
[2] /*c*/) /*MMLocalClass::global_properties*/;
316 /* Register variable[9]: For iterator */
317 variable
[9] = CALL_abstract_collection___Collection___iterator(variable
[9])(variable
[9]) /*Collection::iterator*/;
318 while (true) { /*for*/
319 /* Register variable[10]: For 'is_ok' result */
320 variable
[10] = CALL_abstract_collection___Iterator___is_ok(variable
[9])(variable
[9]) /*Iterator::is_ok*/;
321 if (!UNTAG_Bool(variable
[10])) break; /*for*/
322 variable
[10] = CALL_abstract_collection___Iterator___item(variable
[9])(variable
[9]) /*Iterator::item*/ /* Ensure var: For item*/;
323 /* Register variable[11]: Local variable */
324 variable
[11] = variable
[10];
325 /* Register variable[12]: Result */
326 variable
[12] = CALL_abstractmetamodel___MMGlobalProperty___is_init_for( variable
[11] /*g*/)( variable
[11] /*g*/, variable
[2] /*c*/) /*MMGlobalProperty::is_init_for*/;
327 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[12])))) { /*if*/
330 /* Register variable[12]: Local variable */
331 /* Register variable[13]: Result */
332 variable
[13] = CALL_abstractmetamodel___MMLocalClass_____bra( variable
[2] /*c*/)( variable
[2] /*c*/, variable
[11] /*g*/) /*MMLocalClass::[]*/;
333 variable
[12] = variable
[13];
334 /* Register variable[13]: Local variable */
335 /* Register variable[14]: Result */
336 variable
[14] = CALL_static_type___MMLocalClass___get_type( variable
[2] /*c*/)( variable
[2] /*c*/) /*MMLocalClass::get_type*/;
337 /* Register variable[14]: Result */
338 variable
[14] = CALL_static_type___MMLocalProperty___signature_for( variable
[12] /*gp*/)( variable
[12] /*gp*/, variable
[14]) /*MMLocalProperty::signature_for*/;
339 variable
[13] = variable
[14];
340 /* Register variable[14]: Result */
341 variable
[14] = TAG_Bool(( variable
[12] /*gp*/==NIT_NULL
) || VAL_ISA( variable
[12] /*gp*/, COLOR_MMSrcMethod
, ID_MMSrcMethod
)) /*cast MMSrcMethod*/;
342 if (!UNTAG_Bool(variable
[14])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_typing___TypingVisitor___get_default_constructor_for
, LOCATE_typing
, 98); nit_exit(1);}
343 /* Register variable[14]: Local variable */
344 /* Register variable[15]: Result */
345 variable
[15] = CALL_static_type___MMSignature___arity( variable
[13] /*gps*/)( variable
[13] /*gps*/) /*MMSignature::arity*/;
346 variable
[14] = variable
[15];
347 /* Register variable[15]: Result */
348 variable
[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*prop*/ == NIT_NULL
/*null*/) || (( variable
[3] /*prop*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*prop*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*prop*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*prop*/)( variable
[3] /*prop*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
349 /* Ensure var variable[15]: Left 'and' operand*/
350 if (UNTAG_Bool(variable
[15])) { /* and */
351 /* Register variable[15]: Result */
352 variable
[15] = CALL_abstractmetamodel___MMLocalProperty___name( variable
[12] /*gp*/)( variable
[12] /*gp*/) /*MMLocalProperty::name*/;
353 /* Register variable[16]: Result */
354 variable
[16] = CALL_abstractmetamodel___MMLocalProperty___name( variable
[3] /*prop*/)( variable
[3] /*prop*/) /*MMLocalProperty::name*/;
355 /* Register variable[15]: Result */
356 variable
[15] = TAG_Bool((variable
[15] == variable
[16]) || ((variable
[15] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[15])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[15],variable
[16])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[15])(variable
[15], variable
[16]) /*Object::==*/)))));
358 /* Register variable[15]: Result */
359 if (UNTAG_Bool(variable
[15])) { /*if*/
360 /* Register variable[15]: Result */
361 variable
[15] = TAG_Bool(( variable
[14] /*garity*/)==( TAG_Int(0)));
362 /* Ensure var variable[15]: Left 'or' operand*/
363 if (!UNTAG_Bool(variable
[15])) { /* or */
364 /* Register variable[15]: Result */
365 variable
[15] = TAG_Bool(( variable
[8] /*parity*/)==( variable
[14] /*garity*/));
366 /* Ensure var variable[15]: Left 'and' operand*/
367 if (UNTAG_Bool(variable
[15])) { /* and */
368 /* Register variable[15]: Result */
369 variable
[15] = CALL_static_type___MMLocalProperty___signature( variable
[3] /*prop*/)( variable
[3] /*prop*/) /*MMLocalProperty::signature*/;
370 /* Register variable[15]: Result */
371 variable
[15] = CALL_static_type___MMSignature_____l(variable
[15])(variable
[15], variable
[13] /*gps*/) /*MMSignature::<*/;
373 /* Register variable[15]: Result */
375 /* Register variable[15]: Result */
376 if (UNTAG_Bool(variable
[15])) { /*if*/
377 variable
[4] = variable
[12] /*gp*/;
380 CALL_abstract_collection___SimpleCollection___add( variable
[7] /*false_candidates*/)( variable
[7] /*false_candidates*/, variable
[12] /*gp*/) /*AbstractArray::add*/;
383 /* Register variable[15]: Result */
384 variable
[15] = TAG_Bool(( variable
[14] /*garity*/)==( TAG_Int(0)));
385 /* Ensure var variable[15]: Left 'and' operand*/
386 if (UNTAG_Bool(variable
[15])) { /* and */
387 /* Register variable[15]: Result */
388 variable
[15] = CALL_abstractmetamodel___MMLocalProperty___name( variable
[12] /*gp*/)( variable
[12] /*gp*/) /*MMLocalProperty::name*/;
389 /* Register variable[16]: Once expression result */
390 if (once_bool_7
) variable
[16] = once_value_7
;
392 /* Register variable[16]: Once String constant */
393 if (once_value_8
!= NIT_NULL
) variable
[16] = once_value_8
;
395 variable
[16] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)) /*new String*/;
396 once_value_8
= variable
[16];
398 /* Register variable[16]: Result */
399 /* Register variable[16]: Result */
400 variable
[16] = CALL_symbol___String___to_symbol(variable
[16])(variable
[16]) /*String::to_symbol*/;
401 once_value_7
= variable
[16];
404 /* Register variable[16]: Result */
405 /* Register variable[15]: Result */
406 variable
[15] = TAG_Bool((variable
[15] == variable
[16]) || ((variable
[15] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[15])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[15],variable
[16])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[15])(variable
[15], variable
[16]) /*Object::==*/)))));
408 /* Register variable[15]: Result */
409 if (UNTAG_Bool(variable
[15])) { /*if*/
410 CALL_abstract_collection___SimpleCollection___add( variable
[6] /*candidates*/)( variable
[6] /*candidates*/, variable
[12] /*gp*/) /*AbstractArray::add*/;
411 CALL_abstract_collection___SimpleCollection___add( variable
[7] /*false_candidates*/)( variable
[7] /*false_candidates*/, variable
[12] /*gp*/) /*AbstractArray::add*/;
413 CALL_abstract_collection___SimpleCollection___add( variable
[7] /*false_candidates*/)( variable
[7] /*false_candidates*/, variable
[12] /*gp*/) /*AbstractArray::add*/;
416 continue_6
: while(0);
417 CALL_abstract_collection___Iterator___next(variable
[9])(variable
[9]) /*Iterator::next*/;
420 /* Register variable[9]: Result */
421 variable
[9] = CALL_abstract_collection___Collection___length( variable
[6] /*candidates*/)( variable
[6] /*candidates*/) /*AbstractArrayRead::length*/;
422 /* Register variable[9]: Result */
423 variable
[9] = TAG_Bool((variable
[9])==( TAG_Int(1)));
424 if (UNTAG_Bool(variable
[9])) { /*if*/
425 /* Register variable[9]: Result */
426 variable
[9] = CALL_abstract_collection___Collection___first( variable
[6] /*candidates*/)( variable
[6] /*candidates*/) /*IndexedCollectionRead::first*/;
427 variable
[4] = variable
[9];
430 /* Register variable[9]: Result */
431 variable
[9] = CALL_abstract_collection___Collection___length( variable
[6] /*candidates*/)( variable
[6] /*candidates*/) /*AbstractArrayRead::length*/;
432 /* Register variable[9]: Result */
433 variable
[9] = TAG_Bool(UNTAG_Int(variable
[9])>UNTAG_Int( TAG_Int(0)));
434 if (UNTAG_Bool(variable
[9])) { /*if*/
435 /* Register variable[9]: Local variable */
436 /* Register variable[10]: Result */
437 variable
[10] = NEW_Array_array___Array___init() /*new Array[String]*/;
438 variable
[9] = variable
[10];
439 /* Register variable[10]: For iterator */
440 variable
[10] = CALL_abstract_collection___Collection___iterator( variable
[6] /*candidates*/)( variable
[6] /*candidates*/) /*AbstractArrayRead::iterator*/;
441 while (true) { /*for*/
442 /* Register variable[11]: For 'is_ok' result */
443 variable
[11] = CALL_abstract_collection___Iterator___is_ok(variable
[10])(variable
[10]) /*ArrayIterator::is_ok*/;
444 if (!UNTAG_Bool(variable
[11])) break; /*for*/
445 variable
[11] = CALL_abstract_collection___Iterator___item(variable
[10])(variable
[10]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
446 /* Register variable[12]: Local variable */
447 variable
[12] = variable
[11];
448 variable
[13] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
449 /* Register variable[14]: Once String constant */
450 if (once_value_10
!= NIT_NULL
) variable
[14] = once_value_10
;
452 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
453 once_value_10
= variable
[14];
455 /* Register variable[14]: Result */
456 /* Ensure var variable[14]: super-string element*/
457 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[14]) /*AbstractArray::add*/;
458 /* Register variable[14]: Result */
459 variable
[14] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable
[12] /*p*/)( variable
[12] /*p*/) /*MMLocalProperty::full_name*/;
460 /* Ensure var variable[14]: super-string element*/
461 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[14]) /*AbstractArray::add*/;
462 /* Register variable[14]: Once String constant */
463 if (once_value_11
!= NIT_NULL
) variable
[14] = once_value_11
;
465 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
466 once_value_11
= variable
[14];
468 /* Register variable[14]: Result */
469 /* Ensure var variable[14]: super-string element*/
470 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[14]) /*AbstractArray::add*/;
471 /* Register variable[14]: Result */
472 variable
[14] = CALL_static_type___MMLocalProperty___signature( variable
[12] /*p*/)( variable
[12] /*p*/) /*MMLocalProperty::signature*/;
473 /* Ensure var variable[14]: super-string element*/
474 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], CALL_string___Object___to_s(variable
[14])(variable
[14]) /*Object::to_s*/) /*AbstractArray::add*/;
475 /* Register variable[14]: Once String constant */
476 if (once_value_12
!= NIT_NULL
) variable
[14] = once_value_12
;
478 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
479 once_value_12
= variable
[14];
481 /* Register variable[14]: Result */
482 /* Ensure var variable[14]: super-string element*/
483 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[14]) /*AbstractArray::add*/;
484 /* Register variable[13]: Result */
485 variable
[13] = CALL_string___Object___to_s(variable
[13])(variable
[13]) /*Object::to_s*/;
486 CALL_abstract_collection___SimpleCollection___add( variable
[9] /*a*/)( variable
[9] /*a*/, variable
[13]) /*AbstractArray::add*/;
487 continue_9
: while(0);
488 CALL_abstract_collection___Iterator___next(variable
[10])(variable
[10]) /*ArrayIterator::next*/;
491 variable
[10] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
492 /* Register variable[11]: Once String constant */
493 if (once_value_13
!= NIT_NULL
) variable
[11] = once_value_13
;
495 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: Conflicting default constructor to call for "), TAG_Int(51)) /*new String*/;
496 once_value_13
= variable
[11];
498 /* Register variable[11]: Result */
499 /* Ensure var variable[11]: super-string element*/
500 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[11]) /*AbstractArray::add*/;
501 variable
[11] = variable
[2] /*c*/ /* Ensure var: super-string element*/;
502 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], CALL_string___Object___to_s(variable
[11])(variable
[11]) /*Object::to_s*/) /*AbstractArray::add*/;
503 /* Register variable[11]: Once String constant */
504 if (once_value_14
!= NIT_NULL
) variable
[11] = once_value_14
;
506 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)) /*new String*/;
507 once_value_14
= variable
[11];
509 /* Register variable[11]: Result */
510 /* Ensure var variable[11]: super-string element*/
511 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[11]) /*AbstractArray::add*/;
512 /* Register variable[11]: Once String constant */
513 if (once_value_15
!= NIT_NULL
) variable
[11] = once_value_15
;
515 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
516 once_value_15
= variable
[11];
518 /* Register variable[11]: Result */
519 /* Register variable[11]: Result */
520 variable
[11] = CALL_string___Collection___join( variable
[9] /*a*/)( variable
[9] /*a*/, variable
[11]) /*Collection::join*/;
521 /* Ensure var variable[11]: super-string element*/
522 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[11]) /*AbstractArray::add*/;
523 /* Register variable[11]: Once String constant */
524 if (once_value_16
!= NIT_NULL
) variable
[11] = once_value_16
;
526 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
527 once_value_16
= variable
[11];
529 /* Register variable[11]: Result */
530 /* Ensure var variable[11]: super-string element*/
531 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[11]) /*AbstractArray::add*/;
532 /* Register variable[10]: Result */
533 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
534 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[5] /*v*/)( variable
[5] /*v*/, variable
[1] /*n*/, variable
[10]) /*AbsSyntaxVisitor::error*/;
535 variable
[4] = NIT_NULL
/*null*/;
538 /* Register variable[9]: Result */
539 variable
[9] = CALL_abstract_collection___Collection___length( variable
[7] /*false_candidates*/)( variable
[7] /*false_candidates*/) /*AbstractArrayRead::length*/;
540 /* Register variable[9]: Result */
541 variable
[9] = TAG_Bool(UNTAG_Int(variable
[9])>UNTAG_Int( TAG_Int(0)));
542 if (UNTAG_Bool(variable
[9])) { /*if*/
543 /* Register variable[9]: Local variable */
544 /* Register variable[10]: Result */
545 variable
[10] = NEW_Array_array___Array___init() /*new Array[String]*/;
546 variable
[9] = variable
[10];
547 /* Register variable[10]: For iterator */
548 variable
[10] = CALL_abstract_collection___Collection___iterator( variable
[7] /*false_candidates*/)( variable
[7] /*false_candidates*/) /*AbstractArrayRead::iterator*/;
549 while (true) { /*for*/
550 /* Register variable[11]: For 'is_ok' result */
551 variable
[11] = CALL_abstract_collection___Iterator___is_ok(variable
[10])(variable
[10]) /*ArrayIterator::is_ok*/;
552 if (!UNTAG_Bool(variable
[11])) break; /*for*/
553 variable
[11] = CALL_abstract_collection___Iterator___item(variable
[10])(variable
[10]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
554 /* Register variable[12]: Local variable */
555 variable
[12] = variable
[11];
556 variable
[13] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
557 /* Register variable[14]: Once String constant */
558 if (once_value_18
!= NIT_NULL
) variable
[14] = once_value_18
;
560 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
561 once_value_18
= variable
[14];
563 /* Register variable[14]: Result */
564 /* Ensure var variable[14]: super-string element*/
565 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[14]) /*AbstractArray::add*/;
566 /* Register variable[14]: Result */
567 variable
[14] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable
[12] /*p*/)( variable
[12] /*p*/) /*MMLocalProperty::full_name*/;
568 /* Ensure var variable[14]: super-string element*/
569 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[14]) /*AbstractArray::add*/;
570 /* Register variable[14]: Once String constant */
571 if (once_value_19
!= NIT_NULL
) variable
[14] = once_value_19
;
573 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
574 once_value_19
= variable
[14];
576 /* Register variable[14]: Result */
577 /* Ensure var variable[14]: super-string element*/
578 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[14]) /*AbstractArray::add*/;
579 /* Register variable[14]: Result */
580 variable
[14] = CALL_static_type___MMLocalProperty___signature( variable
[12] /*p*/)( variable
[12] /*p*/) /*MMLocalProperty::signature*/;
581 /* Ensure var variable[14]: super-string element*/
582 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], CALL_string___Object___to_s(variable
[14])(variable
[14]) /*Object::to_s*/) /*AbstractArray::add*/;
583 /* Register variable[14]: Once String constant */
584 if (once_value_20
!= NIT_NULL
) variable
[14] = once_value_20
;
586 variable
[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
587 once_value_20
= variable
[14];
589 /* Register variable[14]: Result */
590 /* Ensure var variable[14]: super-string element*/
591 CALL_abstract_collection___SimpleCollection___add(variable
[13])(variable
[13], variable
[14]) /*AbstractArray::add*/;
592 /* Register variable[13]: Result */
593 variable
[13] = CALL_string___Object___to_s(variable
[13])(variable
[13]) /*Object::to_s*/;
594 CALL_abstract_collection___SimpleCollection___add( variable
[9] /*a*/)( variable
[9] /*a*/, variable
[13]) /*AbstractArray::add*/;
595 continue_17
: while(0);
596 CALL_abstract_collection___Iterator___next(variable
[10])(variable
[10]) /*ArrayIterator::next*/;
599 variable
[10] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
600 /* Register variable[11]: Once String constant */
601 if (once_value_21
!= NIT_NULL
) variable
[11] = once_value_21
;
603 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: there is no available compatible constrctor in "), TAG_Int(54)) /*new String*/;
604 once_value_21
= variable
[11];
606 /* Register variable[11]: Result */
607 /* Ensure var variable[11]: super-string element*/
608 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[11]) /*AbstractArray::add*/;
609 variable
[11] = variable
[2] /*c*/ /* Ensure var: super-string element*/;
610 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], CALL_string___Object___to_s(variable
[11])(variable
[11]) /*Object::to_s*/) /*AbstractArray::add*/;
611 /* Register variable[11]: Once String constant */
612 if (once_value_22
!= NIT_NULL
) variable
[11] = once_value_22
;
614 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(". Discarded candidates are "), TAG_Int(27)) /*new String*/;
615 once_value_22
= variable
[11];
617 /* Register variable[11]: Result */
618 /* Ensure var variable[11]: super-string element*/
619 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[11]) /*AbstractArray::add*/;
620 /* Register variable[11]: Once String constant */
621 if (once_value_23
!= NIT_NULL
) variable
[11] = once_value_23
;
623 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
624 once_value_23
= variable
[11];
626 /* Register variable[11]: Result */
627 /* Register variable[11]: Result */
628 variable
[11] = CALL_string___Collection___join( variable
[9] /*a*/)( variable
[9] /*a*/, variable
[11]) /*Collection::join*/;
629 /* Ensure var variable[11]: super-string element*/
630 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[11]) /*AbstractArray::add*/;
631 /* Register variable[11]: Once String constant */
632 if (once_value_24
!= NIT_NULL
) variable
[11] = once_value_24
;
634 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
635 once_value_24
= variable
[11];
637 /* Register variable[11]: Result */
638 /* Ensure var variable[11]: super-string element*/
639 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[11]) /*AbstractArray::add*/;
640 /* Register variable[10]: Result */
641 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
642 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[5] /*v*/)( variable
[5] /*v*/, variable
[1] /*n*/, variable
[10]) /*AbsSyntaxVisitor::error*/;
643 variable
[4] = NIT_NULL
/*null*/;
646 variable
[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
647 /* Register variable[10]: Once String constant */
648 if (once_value_25
!= NIT_NULL
) variable
[10] = once_value_25
;
650 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: there is no available compatible constrctor in "), TAG_Int(54)) /*new String*/;
651 once_value_25
= variable
[10];
653 /* Register variable[10]: Result */
654 /* Ensure var variable[10]: super-string element*/
655 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
656 variable
[10] = variable
[2] /*c*/ /* Ensure var: super-string element*/;
657 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/) /*AbstractArray::add*/;
658 /* Register variable[10]: Once String constant */
659 if (once_value_26
!= NIT_NULL
) variable
[10] = once_value_26
;
661 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
662 once_value_26
= variable
[10];
664 /* Register variable[10]: Result */
665 /* Ensure var variable[10]: super-string element*/
666 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
667 /* Register variable[9]: Result */
668 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
669 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[5] /*v*/)( variable
[5] /*v*/, variable
[1] /*n*/, variable
[9]) /*AbsSyntaxVisitor::error*/;
670 variable
[4] = NIT_NULL
/*null*/;
675 return_label5
: while(false);
676 tracehead
= trace
.prev
;
679 void typing___PNode___accept_typing(val_t self
, val_t param0
) {
680 struct trace_t trace
= {NULL
, NULL
, 140, LOCATE_typing___PNode___accept_typing
};
682 struct WBT_
**closurevariable
= NULL
;
683 trace
.prev
= tracehead
; tracehead
= &trace
;
684 trace
.file
= LOCATE_typing
;
685 /* Register variable[0]: Local variable */
687 /* Register variable[1]: Local variable */
688 variable
[1] = param0
;
689 /* Register variable[2]: Method return value and escape marker */
690 CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable
[0])(variable
[0], variable
[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
691 CALL_typing___PNode___after_typing(variable
[0])(variable
[0], variable
[1] /*v*/) /*PNode::after_typing*/;
692 return_label27
: while(false);
693 tracehead
= trace
.prev
;
696 void typing___PNode___after_typing(val_t self
, val_t param0
) {
697 struct trace_t trace
= {NULL
, NULL
, 145, LOCATE_typing___PNode___after_typing
};
699 struct WBT_
**closurevariable
= NULL
;
700 trace
.prev
= tracehead
; tracehead
= &trace
;
701 trace
.file
= LOCATE_typing
;
702 /* Register variable[0]: Local variable */
704 /* Register variable[1]: Local variable */
705 variable
[1] = param0
;
706 /* Register variable[2]: Method return value and escape marker */
707 return_label28
: while(false);
708 tracehead
= trace
.prev
;
711 void typing___PClassdef___accept_typing(val_t self
, val_t param0
) {
712 struct trace_t trace
= {NULL
, NULL
, 149, LOCATE_typing___PClassdef___accept_typing
};
713 static val_t once_value_30
= NIT_NULL
; /* Once value for string variable[3]*/
715 struct WBT_
**closurevariable
= NULL
;
716 trace
.prev
= tracehead
; tracehead
= &trace
;
717 trace
.file
= LOCATE_typing
;
718 /* Register variable[0]: Local variable */
720 /* Register variable[1]: Local variable */
721 variable
[1] = param0
;
722 /* Register variable[2]: Method return value and escape marker */
723 /* Register variable[3]: Once String constant */
724 if (once_value_30
!= NIT_NULL
) variable
[3] = once_value_30
;
726 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("self"), TAG_Int(4)) /*new String*/;
727 once_value_30
= variable
[3];
729 /* Register variable[3]: Result */
730 /* Register variable[3]: Result */
731 variable
[3] = CALL_symbol___String___to_symbol(variable
[3])(variable
[3]) /*String::to_symbol*/;
732 /* Register variable[3]: Result */
733 variable
[3] = NEW_ParamVariable_syntax_base___ParamVariable___init(variable
[3], variable
[0]) /*new ParamVariable*/;
734 CALL_typing___TypingVisitor___self_var__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*TypingVisitor::self_var=*/;
735 /* Register variable[3]: Result */
736 variable
[3] = CALL_typing___TypingVisitor___self_var( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::self_var*/;
737 /* Register variable[4]: Result */
738 variable
[4] = CALL_syntax_base___PClassdef___local_class(variable
[0])(variable
[0]) /*PClassdef::local_class*/;
739 /* Register variable[4]: Result */
740 variable
[4] = CALL_static_type___MMLocalClass___get_type(variable
[4])(variable
[4]) /*MMLocalClass::get_type*/;
741 CALL_syntax_base___Variable___stype__eq(variable
[3])(variable
[3], variable
[4]) /*Variable::stype=*/;
742 CALL_SUPER_typing___PClassdef___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super PClassdef::accept_typing*/;
743 return_label29
: while(false);
744 tracehead
= trace
.prev
;
747 void typing___AAttrPropdef___accept_typing(val_t self
, val_t param0
) {
748 struct trace_t trace
= {NULL
, NULL
, 158, LOCATE_typing___AAttrPropdef___accept_typing
};
750 struct WBT_
**closurevariable
= NULL
;
751 trace
.prev
= tracehead
; tracehead
= &trace
;
752 trace
.file
= LOCATE_typing
;
753 /* Register variable[0]: Local variable */
755 /* Register variable[1]: Local variable */
756 variable
[1] = param0
;
757 /* Register variable[2]: Method return value and escape marker */
758 CALL_SUPER_typing___AAttrPropdef___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super AAttrPropdef::accept_typing*/;
759 /* Register variable[3]: Result */
760 variable
[3] = CALL_parser_nodes___AAttrPropdef___n_expr(variable
[0])(variable
[0]) /*AAttrPropdef::n_expr*/;
761 /* Register variable[3]: Result */
762 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
763 if (UNTAG_Bool(variable
[3])) { /*if*/
764 /* Register variable[3]: Result */
765 variable
[3] = CALL_parser_nodes___AAttrPropdef___n_expr(variable
[0])(variable
[0]) /*AAttrPropdef::n_expr*/;
766 /* Register variable[4]: Result */
767 variable
[4] = CALL_syntax_base___AAttrPropdef___prop(variable
[0])(variable
[0]) /*AAttrPropdef::prop*/;
768 /* Register variable[4]: Result */
769 variable
[4] = CALL_static_type___MMLocalProperty___signature(variable
[4])(variable
[4]) /*MMLocalProperty::signature*/;
770 /* Register variable[4]: Result */
771 variable
[4] = CALL_static_type___MMSignature___return_type(variable
[4])(variable
[4]) /*MMSignature::return_type*/;
772 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
774 return_label31
: while(false);
775 tracehead
= trace
.prev
;
778 val_t
typing___AMethPropdef___self_var(val_t self
) {
779 struct trace_t trace
= {NULL
, NULL
, 168, LOCATE_typing___AMethPropdef___self_var
};
780 val_t
*variable
= NULL
;
781 struct WBT_
**closurevariable
= NULL
;
782 trace
.prev
= tracehead
; tracehead
= &trace
;
783 trace
.file
= LOCATE_typing
;
784 tracehead
= trace
.prev
;
785 return ATTR_typing___AMethPropdef____self_var( self
) /*AMethPropdef::_self_var*/;
787 void typing___AMethPropdef___accept_typing(val_t self
, val_t param0
) {
788 struct trace_t trace
= {NULL
, NULL
, 169, LOCATE_typing___AMethPropdef___accept_typing
};
790 struct WBT_
**closurevariable
= NULL
;
791 trace
.prev
= tracehead
; tracehead
= &trace
;
792 trace
.file
= LOCATE_typing
;
793 /* Register variable[0]: Local variable */
795 /* Register variable[1]: Local variable */
796 variable
[1] = param0
;
797 /* Register variable[2]: Method return value and escape marker */
798 /* Register variable[3]: Result */
799 variable
[3] = NEW_RootVariableContext_control_flow___RootVariableContext___init( variable
[1] /*v*/, variable
[0]) /*new RootVariableContext*/;
800 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*TypingVisitor::variable_ctx=*/;
801 /* Register variable[3]: Result */
802 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
803 CALL_typing___TypingVisitor___base_variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*TypingVisitor::base_variable_ctx=*/;
804 /* Register variable[3]: Result */
805 variable
[3] = CALL_typing___TypingVisitor___self_var( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::self_var*/;
806 ATTR_typing___AMethPropdef____self_var(variable
[0]) /*AMethPropdef::_self_var*/ = variable
[3];
807 CALL_SUPER_typing___AMethPropdef___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super AMethPropdef::accept_typing*/;
808 return_label32
: while(false);
809 tracehead
= trace
.prev
;
812 void typing___AConcreteMethPropdef___accept_typing(val_t self
, val_t param0
) {
813 struct trace_t trace
= {NULL
, NULL
, 179, LOCATE_typing___AConcreteMethPropdef___accept_typing
};
814 static val_t once_value_34
= NIT_NULL
; /* Once value for string variable[3]*/
816 struct WBT_
**closurevariable
= NULL
;
817 trace
.prev
= tracehead
; tracehead
= &trace
;
818 trace
.file
= LOCATE_typing
;
819 /* Register variable[0]: Local variable */
821 /* Register variable[1]: Local variable */
822 variable
[1] = param0
;
823 /* Register variable[2]: Method return value and escape marker */
824 CALL_SUPER_typing___AConcreteMethPropdef___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super AConcreteMethPropdef::accept_typing*/;
825 /* Register variable[3]: Result */
826 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
827 /* Register variable[3]: Result */
828 variable
[3] = CALL_control_flow___VariableContext___unreash(variable
[3])(variable
[3]) /*VariableContext::unreash*/;
829 /* Register variable[3]: Result */
830 variable
[3] = TAG_Bool((variable
[3])==( TAG_Bool(false)));
831 /* Ensure var variable[3]: Left 'and' operand*/
832 if (UNTAG_Bool(variable
[3])) { /* and */
833 /* Register variable[3]: Result */
834 variable
[3] = CALL_syntax_base___AMethPropdef___method(variable
[0])(variable
[0]) /*AMethPropdef::method*/;
835 /* Register variable[3]: Result */
836 variable
[3] = CALL_static_type___MMLocalProperty___signature(variable
[3])(variable
[3]) /*MMLocalProperty::signature*/;
837 /* Register variable[3]: Result */
838 variable
[3] = CALL_static_type___MMSignature___return_type(variable
[3])(variable
[3]) /*MMSignature::return_type*/;
839 /* Register variable[3]: Result */
840 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
842 /* Register variable[3]: Result */
843 if (UNTAG_Bool(variable
[3])) { /*if*/
844 /* Register variable[3]: Once String constant */
845 if (once_value_34
!= NIT_NULL
) variable
[3] = once_value_34
;
847 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of function (a 'return' with a value was expected)."), TAG_Int(78)) /*new String*/;
848 once_value_34
= variable
[3];
850 /* Register variable[3]: Result */
851 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[3]) /*AbsSyntaxVisitor::error*/;
853 return_label33
: while(false);
854 tracehead
= trace
.prev
;
857 void typing___AConcreteInitPropdef___accept_typing(val_t self
, val_t param0
) {
858 struct trace_t trace
= {NULL
, NULL
, 191, LOCATE_typing___AConcreteInitPropdef___accept_typing
};
860 struct WBT_
**closurevariable
= NULL
;
861 trace
.prev
= tracehead
; tracehead
= &trace
;
862 trace
.file
= LOCATE_typing
;
863 /* Register variable[0]: Local variable */
865 /* Register variable[1]: Local variable */
866 variable
[1] = param0
;
867 /* Register variable[2]: Method return value and escape marker */
868 /* Register variable[3]: Result */
869 variable
[3] = CALL_parser_nodes___AConcreteMethPropdef___n_block(variable
[0])(variable
[0]) /*AConcreteMethPropdef::n_block*/;
870 CALL_typing___TypingVisitor___top_block__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*TypingVisitor::top_block=*/;
871 /* Register variable[3]: Result */
872 variable
[3] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls(variable
[0])(variable
[0]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
873 CALL_typing___TypingVisitor___explicit_super_init_calls__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*TypingVisitor::explicit_super_init_calls=*/;
874 CALL_typing___TypingVisitor___explicit_other_init_call__eq( variable
[1] /*v*/)( variable
[1] /*v*/, TAG_Bool(false)) /*TypingVisitor::explicit_other_init_call=*/;
875 CALL_SUPER_typing___AConcreteInitPropdef___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super AConcreteInitPropdef::accept_typing*/;
876 /* Register variable[3]: Result */
877 variable
[3] = CALL_typing___TypingVisitor___explicit_other_init_call( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::explicit_other_init_call*/;
878 /* Ensure var variable[3]: Left 'or' operand*/
879 if (!UNTAG_Bool(variable
[3])) { /* or */
880 /* Register variable[3]: Result */
881 variable
[3] = CALL_syntax_base___AMethPropdef___method(variable
[0])(variable
[0]) /*AMethPropdef::method*/;
882 /* Register variable[3]: Result */
883 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[3])(variable
[3]) /*MMLocalProperty::global*/;
884 /* Register variable[3]: Result */
885 variable
[3] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[3])(variable
[3]) /*MMGlobalProperty::intro*/;
886 /* Register variable[4]: Result */
887 variable
[4] = CALL_syntax_base___AMethPropdef___method(variable
[0])(variable
[0]) /*AMethPropdef::method*/;
888 /* Register variable[3]: Result */
889 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == variable
[4]) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3],variable
[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], variable
[4]) /*Object::==*/)))))));
891 /* Register variable[3]: Result */
892 if (UNTAG_Bool(variable
[3])) { /*if*/
894 /* Register variable[3]: Local variable */
895 variable
[3] = TAG_Int(0);
896 /* Register variable[4]: Local variable */
897 /* Register variable[5]: Result */
898 variable
[5] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls(variable
[0])(variable
[0]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
899 /* Register variable[5]: Result */
900 variable
[5] = CALL_abstract_collection___Collection___length(variable
[5])(variable
[5]) /*AbstractArrayRead::length*/;
901 variable
[4] = variable
[5];
902 /* Register variable[5]: Local variable */
903 variable
[5] = NIT_NULL
/*null*/;
904 /* Register variable[6]: Local variable */
905 variable
[6] = NIT_NULL
/*null*/;
906 /* Register variable[7]: Result */
907 variable
[7] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)<UNTAG_Int( variable
[4] /*l*/));
908 if (UNTAG_Bool(variable
[7])) { /*if*/
909 /* Register variable[7]: Result */
910 variable
[7] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls(variable
[0])(variable
[0]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
911 /* Register variable[8]: Local variable */
912 variable
[8] = variable
[7];
913 /* Register variable[9]: Local variable */
914 variable
[9] = variable
[3] /*i*/;
915 /* Register variable[10]: Method return value and escape marker */
916 /* Register variable[11]: Result */
917 variable
[11] = TAG_Bool(UNTAG_Int( variable
[9] /*index*/)>=UNTAG_Int( TAG_Int(0)));
918 /* Ensure var variable[11]: Left 'and' operand*/
919 if (UNTAG_Bool(variable
[11])) { /* and */
920 /* Register variable[11]: Result */
921 variable
[11] = ATTR_array___AbstractArrayRead____length(variable
[8]) /*AbstractArrayRead::_length*/;
922 /* Register variable[11]: Result */
923 variable
[11] = TAG_Bool(UNTAG_Int( variable
[9] /*index*/)<UNTAG_Int(variable
[11]));
925 /* Register variable[11]: Result */
926 if (!UNTAG_Bool(variable
[11])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_typing
, 234); nit_exit(1);}
927 /* Register variable[11]: Result */
928 variable
[11] = ATTR_array___Array____items(variable
[8]) /*Array::_items*/;
929 /* Register variable[11]: Result */
930 variable
[11] = UNBOX_NativeArray(variable
[11])[UNTAG_Int( variable
[9] /*index*/)];
931 variable
[10] = variable
[11];
933 return_label36
: while(false);
934 /* Register variable[7]: Result */
935 variable
[7] = variable
[10];
936 variable
[5] = variable
[7] /*cur_m=*/;
937 /* Register variable[7]: Result */
938 variable
[7] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[5] /*cur_m*/)( variable
[5] /*cur_m*/) /*MMLocalProperty::global*/;
939 /* Register variable[7]: Result */
940 variable
[7] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[7])(variable
[7]) /*MMGlobalProperty::intro*/;
941 /* Register variable[7]: Result */
942 variable
[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[7])(variable
[7]) /*MMLocalProperty::local_class*/;
943 /* Register variable[8]: Result */
944 variable
[8] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
945 /* Register variable[7]: Result */
946 variable
[7] = CALL_abstractmetamodel___MMLocalClass___for_module(variable
[7])(variable
[7], variable
[8]) /*MMLocalClass::for_module*/;
947 variable
[6] = variable
[7] /*cur_c=*/;
949 /* Register variable[7]: Local variable */
950 variable
[7] = TAG_Int(0);
951 while (true) { /*while*/
952 /* Register variable[8]: Result */
953 variable
[8] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
954 /* Register variable[8]: Result */
955 variable
[8] = CALL_abstractmetamodel___MMLocalClass___cshe(variable
[8])(variable
[8]) /*MMLocalClass::cshe*/;
956 /* Register variable[8]: Result */
957 variable
[8] = CALL_partial_order___PartialOrderElement___direct_greaters(variable
[8])(variable
[8]) /*PartialOrderElement::direct_greaters*/;
958 /* Register variable[8]: Result */
959 variable
[8] = CALL_abstract_collection___Collection___length(variable
[8])(variable
[8]) /*AbstractArrayRead::length*/;
960 /* Register variable[8]: Result */
961 variable
[8] = TAG_Bool(UNTAG_Int( variable
[7] /*j*/)<UNTAG_Int(variable
[8]));
962 if (!UNTAG_Bool(variable
[8])) break; /* while*/
963 /* Register variable[8]: Local variable */
964 /* Register variable[9]: Result */
965 variable
[9] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
966 /* Register variable[9]: Result */
967 variable
[9] = CALL_abstractmetamodel___MMLocalClass___cshe(variable
[9])(variable
[9]) /*MMLocalClass::cshe*/;
968 /* Register variable[9]: Result */
969 variable
[9] = CALL_partial_order___PartialOrderElement___direct_greaters(variable
[9])(variable
[9]) /*PartialOrderElement::direct_greaters*/;
970 /* Register variable[10]: Local variable */
971 variable
[10] = variable
[9];
972 /* Register variable[11]: Local variable */
973 variable
[11] = variable
[7] /*j*/;
974 /* Register variable[12]: Method return value and escape marker */
975 /* Register variable[13]: Result */
976 variable
[13] = TAG_Bool(UNTAG_Int( variable
[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
977 /* Ensure var variable[13]: Left 'and' operand*/
978 if (UNTAG_Bool(variable
[13])) { /* and */
979 /* Register variable[13]: Result */
980 variable
[13] = ATTR_array___AbstractArrayRead____length(variable
[10]) /*AbstractArrayRead::_length*/;
981 /* Register variable[13]: Result */
982 variable
[13] = TAG_Bool(UNTAG_Int( variable
[11] /*index*/)<UNTAG_Int(variable
[13]));
984 /* Register variable[13]: Result */
985 if (!UNTAG_Bool(variable
[13])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_typing
, 234); nit_exit(1);}
986 /* Register variable[13]: Result */
987 variable
[13] = ATTR_array___Array____items(variable
[10]) /*Array::_items*/;
988 /* Register variable[13]: Result */
989 variable
[13] = UNBOX_NativeArray(variable
[13])[UNTAG_Int( variable
[11] /*index*/)];
990 variable
[12] = variable
[13];
992 return_label38
: while(false);
993 /* Register variable[9]: Result */
994 variable
[9] = variable
[12];
995 variable
[8] = variable
[9];
996 /* Register variable[9]: Result */
997 variable
[9] = CALL_abstractmetamodel___MMLocalClass___global( variable
[8] /*c*/)( variable
[8] /*c*/) /*MMLocalClass::global*/;
998 /* Register variable[9]: Result */
999 variable
[9] = CALL_abstractmetamodel___MMGlobalClass___is_interface(variable
[9])(variable
[9]) /*MMGlobalClass::is_interface*/;
1000 /* Ensure var variable[9]: Left 'or' operand*/
1001 if (!UNTAG_Bool(variable
[9])) { /* or */
1002 /* Register variable[9]: Result */
1003 variable
[9] = CALL_abstractmetamodel___MMLocalClass___global( variable
[8] /*c*/)( variable
[8] /*c*/) /*MMLocalClass::global*/;
1004 /* Register variable[9]: Result */
1005 variable
[9] = CALL_abstractmetamodel___MMGlobalClass___is_universal(variable
[9])(variable
[9]) /*MMGlobalClass::is_universal*/;
1007 /* Register variable[9]: Result */
1008 /* Ensure var variable[9]: Left 'or' operand*/
1009 if (!UNTAG_Bool(variable
[9])) { /* or */
1010 /* Register variable[9]: Result */
1011 variable
[9] = CALL_abstractmetamodel___MMLocalClass___global( variable
[8] /*c*/)( variable
[8] /*c*/) /*MMLocalClass::global*/;
1012 /* Register variable[9]: Result */
1013 variable
[9] = CALL_abstractmetamodel___MMGlobalClass___is_mixin(variable
[9])(variable
[9]) /*MMGlobalClass::is_mixin*/;
1015 /* Register variable[9]: Result */
1016 if (UNTAG_Bool(variable
[9])) { /*if*/
1017 variable
[7] = TAG_Int(UNTAG_Int(variable
[7])+UNTAG_Int( TAG_Int(1))) /*j*/;
1019 /* Register variable[9]: Result */
1020 variable
[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[6] /*cur_c*/ == NIT_NULL
/*null*/) || (( variable
[6] /*cur_c*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[6] /*cur_c*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[6] /*cur_c*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[6] /*cur_c*/)( variable
[6] /*cur_c*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1021 /* Ensure var variable[9]: Left 'and' operand*/
1022 if (UNTAG_Bool(variable
[9])) { /* and */
1023 /* Register variable[9]: Result */
1024 variable
[9] = CALL_abstractmetamodel___MMLocalClass___cshe( variable
[8] /*c*/)( variable
[8] /*c*/) /*MMLocalClass::cshe*/;
1025 /* Register variable[9]: Result */
1026 variable
[9] = CALL_partial_order___PartialOrderElement_____leq(variable
[9])(variable
[9], variable
[6] /*cur_c*/) /*PartialOrderElement::<=*/;
1027 /* Ensure var variable[9]: Left 'or' operand*/
1028 if (!UNTAG_Bool(variable
[9])) { /* or */
1029 /* Register variable[9]: Result */
1030 variable
[9] = CALL_abstractmetamodel___MMLocalClass___global( variable
[6] /*cur_c*/)( variable
[6] /*cur_c*/) /*MMLocalClass::global*/;
1031 /* Register variable[9]: Result */
1032 variable
[9] = CALL_abstractmetamodel___MMGlobalClass___is_mixin(variable
[9])(variable
[9]) /*MMGlobalClass::is_mixin*/;
1034 /* Register variable[9]: Result */
1036 /* Register variable[9]: Result */
1037 if (UNTAG_Bool(variable
[9])) { /*if*/
1038 /* Register variable[9]: Result */
1039 variable
[9] = TAG_Bool(( variable
[8] /*c*/ == variable
[6] /*cur_c*/) || (( variable
[8] /*c*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[8] /*c*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[8] /*c*/, variable
[6] /*cur_c*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[8] /*c*/)( variable
[8] /*c*/, variable
[6] /*cur_c*/) /*Object::==*/)))));
1040 if (UNTAG_Bool(variable
[9])) { /*if*/
1041 variable
[7] = TAG_Int(UNTAG_Int(variable
[7])+UNTAG_Int( TAG_Int(1))) /*j*/;
1043 /* Register variable[9]: Result */
1044 variable
[9] = CALL_typing___AConcreteInitPropdef___super_init_calls(variable
[0])(variable
[0]) /*AConcreteInitPropdef::super_init_calls*/;
1045 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[5] /*cur_m*/) /*AbstractArray::add*/;
1046 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])+UNTAG_Int( TAG_Int(1))) /*i*/;
1047 /* Register variable[9]: Result */
1048 variable
[9] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)<UNTAG_Int( variable
[4] /*l*/));
1049 if (UNTAG_Bool(variable
[9])) { /*if*/
1050 /* Register variable[9]: Result */
1051 variable
[9] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls(variable
[0])(variable
[0]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
1052 /* Register variable[10]: Local variable */
1053 variable
[10] = variable
[9];
1054 /* Register variable[11]: Local variable */
1055 variable
[11] = variable
[3] /*i*/;
1056 /* Register variable[12]: Method return value and escape marker */
1057 /* Register variable[13]: Result */
1058 variable
[13] = TAG_Bool(UNTAG_Int( variable
[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
1059 /* Ensure var variable[13]: Left 'and' operand*/
1060 if (UNTAG_Bool(variable
[13])) { /* and */
1061 /* Register variable[13]: Result */
1062 variable
[13] = ATTR_array___AbstractArrayRead____length(variable
[10]) /*AbstractArrayRead::_length*/;
1063 /* Register variable[13]: Result */
1064 variable
[13] = TAG_Bool(UNTAG_Int( variable
[11] /*index*/)<UNTAG_Int(variable
[13]));
1066 /* Register variable[13]: Result */
1067 if (!UNTAG_Bool(variable
[13])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_typing
, 234); nit_exit(1);}
1068 /* Register variable[13]: Result */
1069 variable
[13] = ATTR_array___Array____items(variable
[10]) /*Array::_items*/;
1070 /* Register variable[13]: Result */
1071 variable
[13] = UNBOX_NativeArray(variable
[13])[UNTAG_Int( variable
[11] /*index*/)];
1072 variable
[12] = variable
[13];
1073 goto return_label39
;
1074 return_label39
: while(false);
1075 /* Register variable[9]: Result */
1076 variable
[9] = variable
[12];
1077 variable
[5] = variable
[9] /*cur_m=*/;
1078 /* Register variable[9]: Result */
1079 variable
[9] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[5] /*cur_m*/)( variable
[5] /*cur_m*/) /*MMLocalProperty::global*/;
1080 /* Register variable[9]: Result */
1081 variable
[9] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[9])(variable
[9]) /*MMGlobalProperty::intro*/;
1082 /* Register variable[9]: Result */
1083 variable
[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[9])(variable
[9]) /*MMLocalProperty::local_class*/;
1084 /* Register variable[10]: Result */
1085 variable
[10] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
1086 /* Register variable[9]: Result */
1087 variable
[9] = CALL_abstractmetamodel___MMLocalClass___for_module(variable
[9])(variable
[9], variable
[10]) /*MMLocalClass::for_module*/;
1088 variable
[6] = variable
[9] /*cur_c=*/;
1090 variable
[5] = NIT_NULL
/*null*/ /*cur_m=*/;
1091 variable
[6] = NIT_NULL
/*null*/ /*cur_c=*/;
1094 /* Register variable[9]: Local variable */
1095 /* Register variable[10]: Result */
1096 variable
[10] = CALL_syntax_base___AMethPropdef___method(variable
[0])(variable
[0]) /*AMethPropdef::method*/;
1097 /* Register variable[10]: Result */
1098 variable
[10] = CALL_typing___TypingVisitor___get_default_constructor_for( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[8] /*c*/, variable
[10]) /*TypingVisitor::get_default_constructor_for*/;
1099 variable
[9] = variable
[10];
1100 /* Register variable[10]: Result */
1101 variable
[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[9] /*p*/ == NIT_NULL
/*null*/) || (( variable
[9] /*p*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[9] /*p*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[9] /*p*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[9] /*p*/)( variable
[9] /*p*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1102 if (UNTAG_Bool(variable
[10])) { /*if*/
1103 /* Register variable[10]: Result */
1104 variable
[10] = CALL_typing___AConcreteInitPropdef___super_init_calls(variable
[0])(variable
[0]) /*AConcreteInitPropdef::super_init_calls*/;
1105 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[9] /*p*/) /*AbstractArray::add*/;
1107 variable
[7] = TAG_Int(UNTAG_Int(variable
[7])+UNTAG_Int( TAG_Int(1))) /*j*/;
1110 continue_37
: while(0);
1114 return_label35
: while(false);
1115 tracehead
= trace
.prev
;
1118 val_t
typing___AConcreteInitPropdef___super_init_calls(val_t self
) {
1119 struct trace_t trace
= {NULL
, NULL
, 189, LOCATE_typing___AConcreteInitPropdef___super_init_calls
};
1120 val_t
*variable
= NULL
;
1121 struct WBT_
**closurevariable
= NULL
;
1122 trace
.prev
= tracehead
; tracehead
= &trace
;
1123 trace
.file
= LOCATE_typing
;
1124 tracehead
= trace
.prev
;
1125 return ATTR_typing___AConcreteInitPropdef____super_init_calls( self
) /*AConcreteInitPropdef::_super_init_calls*/;
1127 val_t
typing___AConcreteInitPropdef___explicit_super_init_calls(val_t self
) {
1128 struct trace_t trace
= {NULL
, NULL
, 190, LOCATE_typing___AConcreteInitPropdef___explicit_super_init_calls
};
1129 val_t
*variable
= NULL
;
1130 struct WBT_
**closurevariable
= NULL
;
1131 trace
.prev
= tracehead
; tracehead
= &trace
;
1132 trace
.file
= LOCATE_typing
;
1133 tracehead
= trace
.prev
;
1134 return ATTR_typing___AConcreteInitPropdef____explicit_super_init_calls( self
) /*AConcreteInitPropdef::_explicit_super_init_calls*/;
1136 void typing___PParam___after_typing(val_t self
, val_t param0
) {
1137 struct trace_t trace
= {NULL
, NULL
, 237, LOCATE_typing___PParam___after_typing
};
1139 struct WBT_
**closurevariable
= NULL
;
1140 trace
.prev
= tracehead
; tracehead
= &trace
;
1141 trace
.file
= LOCATE_typing
;
1142 /* Register variable[0]: Local variable */
1144 /* Register variable[1]: Local variable */
1145 variable
[1] = param0
;
1146 /* Register variable[2]: Method return value and escape marker */
1147 /* Register variable[3]: Result */
1148 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1149 /* Register variable[3]: Result */
1150 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
1151 if (UNTAG_Bool(variable
[3])) { /*if*/
1152 /* Register variable[3]: Result */
1153 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1154 /* Register variable[4]: Result */
1155 variable
[4] = CALL_syntax_base___PParam___variable(variable
[0])(variable
[0]) /*PParam::variable*/;
1156 CALL_control_flow___VariableContext___add(variable
[3])(variable
[3], variable
[4]) /*VariableContext::add*/;
1158 return_label40
: while(false);
1159 tracehead
= trace
.prev
;
1162 void typing___AClosureDecl___accept_typing(val_t self
, val_t param0
) {
1163 struct trace_t trace
= {NULL
, NULL
, 250, LOCATE_typing___AClosureDecl___accept_typing
};
1164 static val_t once_value_42
= NIT_NULL
; /* Once value for string variable[5]*/
1165 static val_t once_value_43
= NIT_NULL
; /* Once value for string variable[5]*/
1167 struct WBT_
**closurevariable
= NULL
;
1168 trace
.prev
= tracehead
; tracehead
= &trace
;
1169 trace
.file
= LOCATE_typing
;
1170 /* Register variable[0]: Local variable */
1172 /* Register variable[1]: Local variable */
1173 variable
[1] = param0
;
1174 /* Register variable[2]: Method return value and escape marker */
1175 /* Register variable[3]: Result */
1176 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1177 /* Register variable[4]: Result */
1178 variable
[4] = CALL_syntax_base___PClosureDecl___variable(variable
[0])(variable
[0]) /*PClosureDecl::variable*/;
1179 CALL_control_flow___VariableContext___add(variable
[3])(variable
[3], variable
[4]) /*VariableContext::add*/;
1180 /* Register variable[3]: Local variable */
1181 /* Register variable[4]: Result */
1182 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1183 variable
[3] = variable
[4];
1184 /* Register variable[4]: Local variable */
1185 /* Register variable[5]: Result */
1186 variable
[5] = CALL_typing___TypingVisitor___base_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::base_variable_ctx*/;
1187 variable
[4] = variable
[5];
1188 /* Register variable[5]: Result */
1189 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1190 CALL_typing___TypingVisitor___base_variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5]) /*TypingVisitor::base_variable_ctx=*/;
1191 /* Register variable[5]: Result */
1192 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1193 /* Register variable[5]: Result */
1194 variable
[5] = CALL_control_flow___VariableContext___sub(variable
[5])(variable
[5], variable
[0]) /*VariableContext::sub*/;
1195 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5]) /*TypingVisitor::variable_ctx=*/;
1196 /* Register variable[5]: Result */
1197 variable
[5] = CALL_syntax_base___PClosureDecl___variable(variable
[0])(variable
[0]) /*PClosureDecl::variable*/;
1198 /* Register variable[5]: Result */
1199 variable
[5] = CALL_syntax_base___ClosureVariable___closure(variable
[5])(variable
[5]) /*ClosureVariable::closure*/;
1200 /* Register variable[5]: Result */
1201 variable
[5] = NEW_EscapableClosure_escape___EscapableClosure___init(variable
[0], variable
[5], NIT_NULL
/*null*/) /*new EscapableClosure*/;
1202 ATTR_typing___AClosureDecl____escapable(variable
[0]) /*AClosureDecl::_escapable*/ = variable
[5];
1203 /* Register variable[5]: Result */
1204 variable
[5] = CALL_typing___TypingVisitor___escapable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::escapable_ctx*/;
1205 /* Register variable[6]: Result */
1206 variable
[6] = ATTR_typing___AClosureDecl____escapable(variable
[0]) /*AClosureDecl::_escapable*/;
1207 CALL_escape___EscapableContext___push(variable
[5])(variable
[5], variable
[6]) /*EscapableContext::push*/;
1208 CALL_SUPER_typing___AClosureDecl___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super AClosureDecl::accept_typing*/;
1209 /* Register variable[5]: Result */
1210 variable
[5] = CALL_parser_nodes___AClosureDecl___n_expr(variable
[0])(variable
[0]) /*AClosureDecl::n_expr*/;
1211 /* Register variable[5]: Result */
1212 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))))));
1213 if (UNTAG_Bool(variable
[5])) { /*if*/
1214 /* Register variable[5]: Result */
1215 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1216 /* Register variable[5]: Result */
1217 variable
[5] = CALL_control_flow___VariableContext___unreash(variable
[5])(variable
[5]) /*VariableContext::unreash*/;
1218 /* Register variable[5]: Result */
1219 variable
[5] = TAG_Bool((variable
[5])==( TAG_Bool(false)));
1220 if (UNTAG_Bool(variable
[5])) { /*if*/
1221 /* Register variable[5]: Result */
1222 variable
[5] = CALL_syntax_base___PClosureDecl___variable(variable
[0])(variable
[0]) /*PClosureDecl::variable*/;
1223 /* Register variable[5]: Result */
1224 variable
[5] = CALL_syntax_base___ClosureVariable___closure(variable
[5])(variable
[5]) /*ClosureVariable::closure*/;
1225 /* Register variable[5]: Result */
1226 variable
[5] = CALL_static_type___MMClosure___signature(variable
[5])(variable
[5]) /*MMClosure::signature*/;
1227 /* Register variable[5]: Result */
1228 variable
[5] = CALL_static_type___MMSignature___return_type(variable
[5])(variable
[5]) /*MMSignature::return_type*/;
1229 /* Register variable[5]: Result */
1230 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))))));
1231 if (UNTAG_Bool(variable
[5])) { /*if*/
1232 /* Register variable[5]: Once String constant */
1233 if (once_value_42
!= NIT_NULL
) variable
[5] = once_value_42
;
1235 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected)."), TAG_Int(77)) /*new String*/;
1236 once_value_42
= variable
[5];
1238 /* Register variable[5]: Result */
1239 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[5]) /*AbsSyntaxVisitor::error*/;
1241 /* Register variable[5]: Result */
1242 variable
[5] = CALL_syntax_base___PClosureDecl___variable(variable
[0])(variable
[0]) /*PClosureDecl::variable*/;
1243 /* Register variable[5]: Result */
1244 variable
[5] = CALL_syntax_base___ClosureVariable___closure(variable
[5])(variable
[5]) /*ClosureVariable::closure*/;
1245 /* Register variable[5]: Result */
1246 variable
[5] = CALL_static_type___MMClosure___is_break(variable
[5])(variable
[5]) /*MMClosure::is_break*/;
1247 if (UNTAG_Bool(variable
[5])) { /*if*/
1248 /* Register variable[5]: Once String constant */
1249 if (once_value_43
!= NIT_NULL
) variable
[5] = once_value_43
;
1251 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of break block (an 'abort' was expected)."), TAG_Int(68)) /*new String*/;
1252 once_value_43
= variable
[5];
1254 /* Register variable[5]: Result */
1255 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[5]) /*AbsSyntaxVisitor::error*/;
1260 /* Register variable[5]: Result */
1261 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1262 CALL_control_flow___VariableContext___merge( variable
[3] /*old_var_ctx*/)( variable
[3] /*old_var_ctx*/, variable
[5]) /*VariableContext::merge*/;
1263 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
1264 CALL_typing___TypingVisitor___base_variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4] /*old_base_var_ctx*/) /*TypingVisitor::base_variable_ctx=*/;
1265 /* Register variable[5]: Result */
1266 variable
[5] = CALL_typing___TypingVisitor___escapable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::escapable_ctx*/;
1267 CALL_escape___EscapableContext___pop(variable
[5])(variable
[5]) /*EscapableContext::pop*/;
1268 return_label41
: while(false);
1269 tracehead
= trace
.prev
;
1272 val_t
typing___AClosureDecl___escapable(val_t self
) {
1273 struct trace_t trace
= {NULL
, NULL
, 247, LOCATE_typing___AClosureDecl___escapable
};
1274 val_t
*variable
= NULL
;
1275 struct WBT_
**closurevariable
= NULL
;
1276 trace
.prev
= tracehead
; tracehead
= &trace
;
1277 trace
.file
= LOCATE_typing
;
1278 tracehead
= trace
.prev
;
1279 return ATTR_typing___AClosureDecl____escapable( self
) /*AClosureDecl::_escapable*/;
1281 void typing___PType___after_typing(val_t self
, val_t param0
) {
1282 struct trace_t trace
= {NULL
, NULL
, 284, LOCATE_typing___PType___after_typing
};
1284 struct WBT_
**closurevariable
= NULL
;
1285 trace
.prev
= tracehead
; tracehead
= &trace
;
1286 trace
.file
= LOCATE_typing
;
1287 /* Register variable[0]: Local variable */
1289 /* Register variable[1]: Local variable */
1290 variable
[1] = param0
;
1291 /* Register variable[2]: Method return value and escape marker */
1292 /* Register variable[3]: Result */
1293 variable
[3] = CALL_syntax_base___PType___get_stype(variable
[0])(variable
[0], variable
[1] /*v*/) /*PType::get_stype*/;
1294 ATTR_typing___PType____stype(variable
[0]) /*PType::_stype*/ = variable
[3];
1295 return_label44
: while(false);
1296 tracehead
= trace
.prev
;
1299 val_t
typing___PType___stype(val_t self
) {
1300 struct trace_t trace
= {NULL
, NULL
, 283, LOCATE_typing___PType___stype
};
1301 val_t
*variable
= NULL
;
1302 struct WBT_
**closurevariable
= NULL
;
1303 trace
.prev
= tracehead
; tracehead
= &trace
;
1304 trace
.file
= LOCATE_typing
;
1305 tracehead
= trace
.prev
;
1306 return ATTR_typing___PType____stype( self
) /*PType::_stype*/;
1308 val_t
typing___PExpr___is_typed(val_t self
) {
1309 struct trace_t trace
= {NULL
, NULL
, 291, LOCATE_typing___PExpr___is_typed
};
1310 val_t
*variable
= NULL
;
1311 struct WBT_
**closurevariable
= NULL
;
1312 trace
.prev
= tracehead
; tracehead
= &trace
;
1313 trace
.file
= LOCATE_typing
;
1314 tracehead
= trace
.prev
;
1315 return ATTR_typing___PExpr____is_typed( self
) /*PExpr::_is_typed*/;
1317 val_t
typing___PExpr___is_statement(val_t self
) {
1318 struct trace_t trace
= {NULL
, NULL
, 292, LOCATE_typing___PExpr___is_statement
};
1320 struct WBT_
**closurevariable
= NULL
;
1321 trace
.prev
= tracehead
; tracehead
= &trace
;
1322 trace
.file
= LOCATE_typing
;
1323 /* Register variable[0]: Local variable */
1325 /* Register variable[1]: Method return value and escape marker */
1326 /* Register variable[2]: Result */
1327 variable
[2] = ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/;
1328 /* Register variable[2]: Result */
1329 variable
[2] = TAG_Bool((variable
[2] == NIT_NULL
/*null*/) || ((variable
[2] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[2])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[2], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[2])(variable
[2], NIT_NULL
/*null*/) /*Object::==*/)))));
1330 variable
[1] = variable
[2];
1331 goto return_label45
;
1332 return_label45
: while(false);
1333 tracehead
= trace
.prev
;
1336 val_t
typing___PExpr___stype(val_t self
) {
1337 struct trace_t trace
= {NULL
, NULL
, 293, LOCATE_typing___PExpr___stype
};
1338 static val_t once_value_47
= NIT_NULL
; /* Once value for string variable[3]*/
1339 static val_t once_value_48
= NIT_NULL
; /* Once value for string variable[3]*/
1340 static val_t once_value_49
= NIT_NULL
; /* Once value for string variable[3]*/
1341 static val_t once_value_50
= NIT_NULL
; /* Once value for string variable[3]*/
1343 struct WBT_
**closurevariable
= NULL
;
1344 trace
.prev
= tracehead
; tracehead
= &trace
;
1345 trace
.file
= LOCATE_typing
;
1346 /* Register variable[0]: Local variable */
1348 /* Register variable[1]: Method return value and escape marker */
1349 /* Register variable[2]: Result */
1350 variable
[2] = CALL_syntax_base___PExpr___is_typed(variable
[0])(variable
[0]) /*PExpr::is_typed*/;
1351 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[2])))) { /*if*/
1352 variable
[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1353 /* Register variable[3]: Once String constant */
1354 if (once_value_47
!= NIT_NULL
) variable
[3] = once_value_47
;
1356 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1357 once_value_47
= variable
[3];
1359 /* Register variable[3]: Result */
1360 /* Ensure var variable[3]: super-string element*/
1361 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
1362 /* Register variable[3]: Result */
1363 variable
[3] = CALL_parser_prod___PNode___locate(variable
[0])(variable
[0]) /*Prod::locate*/;
1364 /* Ensure var variable[3]: super-string element*/
1365 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
1366 /* Register variable[3]: Once String constant */
1367 if (once_value_48
!= NIT_NULL
) variable
[3] = once_value_48
;
1369 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString(": not is_typed"), TAG_Int(14)) /*new String*/;
1370 once_value_48
= variable
[3];
1372 /* Register variable[3]: Result */
1373 /* Ensure var variable[3]: super-string element*/
1374 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
1375 /* Register variable[2]: Result */
1376 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*Object::to_s*/;
1377 CALL_file___Object___print(variable
[0])(variable
[0], variable
[2]) /*Object::print*/;
1378 fprintf(stderr
, "Aborted"); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_typing___PExpr___stype
, LOCATE_typing
, 297); nit_exit(1);
1380 /* Register variable[2]: Result */
1381 variable
[2] = CALL_syntax_base___PExpr___is_statement(variable
[0])(variable
[0]) /*PExpr::is_statement*/;
1382 if (UNTAG_Bool(variable
[2])) { /*if*/
1383 variable
[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1384 /* Register variable[3]: Once String constant */
1385 if (once_value_49
!= NIT_NULL
) variable
[3] = once_value_49
;
1387 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1388 once_value_49
= variable
[3];
1390 /* Register variable[3]: Result */
1391 /* Ensure var variable[3]: super-string element*/
1392 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
1393 /* Register variable[3]: Result */
1394 variable
[3] = CALL_parser_prod___PNode___locate(variable
[0])(variable
[0]) /*Prod::locate*/;
1395 /* Ensure var variable[3]: super-string element*/
1396 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
1397 /* Register variable[3]: Once String constant */
1398 if (once_value_50
!= NIT_NULL
) variable
[3] = once_value_50
;
1400 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString(": is_statement"), TAG_Int(14)) /*new String*/;
1401 once_value_50
= variable
[3];
1403 /* Register variable[3]: Result */
1404 /* Ensure var variable[3]: super-string element*/
1405 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
1406 /* Register variable[2]: Result */
1407 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*Object::to_s*/;
1408 CALL_file___Object___print(variable
[0])(variable
[0], variable
[2]) /*Object::print*/;
1409 fprintf(stderr
, "Aborted"); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_typing___PExpr___stype
, LOCATE_typing
, 301); nit_exit(1);
1411 /* Register variable[2]: Result */
1412 variable
[2] = ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/;
1413 variable
[1] = variable
[2];
1414 goto return_label46
;
1415 return_label46
: while(false);
1416 tracehead
= trace
.prev
;
1419 val_t
typing___PExpr___is_implicit_self(val_t self
) {
1420 struct trace_t trace
= {NULL
, NULL
, 307, LOCATE_typing___PExpr___is_implicit_self
};
1422 struct WBT_
**closurevariable
= NULL
;
1423 trace
.prev
= tracehead
; tracehead
= &trace
;
1424 trace
.file
= LOCATE_typing
;
1425 /* Register variable[0]: Local variable */
1427 /* Register variable[1]: Method return value and escape marker */
1428 variable
[1] = TAG_Bool(false);
1429 goto return_label51
;
1430 return_label51
: while(false);
1431 tracehead
= trace
.prev
;
1434 val_t
typing___PExpr___is_self(val_t self
) {
1435 struct trace_t trace
= {NULL
, NULL
, 310, LOCATE_typing___PExpr___is_self
};
1437 struct WBT_
**closurevariable
= NULL
;
1438 trace
.prev
= tracehead
; tracehead
= &trace
;
1439 trace
.file
= LOCATE_typing
;
1440 /* Register variable[0]: Local variable */
1442 /* Register variable[1]: Method return value and escape marker */
1443 variable
[1] = TAG_Bool(false);
1444 goto return_label52
;
1445 return_label52
: while(false);
1446 tracehead
= trace
.prev
;
1449 val_t
typing___PExpr___its_variable(val_t self
) {
1450 struct trace_t trace
= {NULL
, NULL
, 313, LOCATE_typing___PExpr___its_variable
};
1452 struct WBT_
**closurevariable
= NULL
;
1453 trace
.prev
= tracehead
; tracehead
= &trace
;
1454 trace
.file
= LOCATE_typing
;
1455 /* Register variable[0]: Local variable */
1457 /* Register variable[1]: Method return value and escape marker */
1458 variable
[1] = NIT_NULL
/*null*/;
1459 goto return_label53
;
1460 return_label53
: while(false);
1461 tracehead
= trace
.prev
;
1464 val_t
typing___PExpr___if_true_variable_ctx(val_t self
) {
1465 struct trace_t trace
= {NULL
, NULL
, 316, LOCATE_typing___PExpr___if_true_variable_ctx
};
1466 val_t
*variable
= NULL
;
1467 struct WBT_
**closurevariable
= NULL
;
1468 trace
.prev
= tracehead
; tracehead
= &trace
;
1469 trace
.file
= LOCATE_typing
;
1470 tracehead
= trace
.prev
;
1471 return ATTR_typing___PExpr____if_true_variable_ctx( self
) /*PExpr::_if_true_variable_ctx*/;
1473 val_t
typing___PExpr___if_false_variable_ctx(val_t self
) {
1474 struct trace_t trace
= {NULL
, NULL
, 319, LOCATE_typing___PExpr___if_false_variable_ctx
};
1475 val_t
*variable
= NULL
;
1476 struct WBT_
**closurevariable
= NULL
;
1477 trace
.prev
= tracehead
; tracehead
= &trace
;
1478 trace
.file
= LOCATE_typing
;
1479 tracehead
= trace
.prev
;
1480 return ATTR_typing___PExpr____if_false_variable_ctx( self
) /*PExpr::_if_false_variable_ctx*/;
1482 void typing___AVardeclExpr___after_typing(val_t self
, val_t param0
) {
1483 struct trace_t trace
= {NULL
, NULL
, 324, LOCATE_typing___AVardeclExpr___after_typing
};
1485 struct WBT_
**closurevariable
= NULL
;
1486 trace
.prev
= tracehead
; tracehead
= &trace
;
1487 trace
.file
= LOCATE_typing
;
1488 /* Register variable[0]: Local variable */
1490 /* Register variable[1]: Local variable */
1491 variable
[1] = param0
;
1492 /* Register variable[2]: Method return value and escape marker */
1493 /* Register variable[3]: Local variable */
1494 /* Register variable[4]: Result */
1495 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_id(variable
[0])(variable
[0]) /*AVardeclExpr::n_id*/;
1496 /* Register variable[4]: Result */
1497 variable
[4] = CALL_syntax_base___Token___to_symbol(variable
[4])(variable
[4]) /*Token::to_symbol*/;
1498 /* Register variable[4]: Result */
1499 variable
[4] = NEW_VarVariable_syntax_base___VarVariable___init(variable
[4], variable
[0]) /*new VarVariable*/;
1500 variable
[3] = variable
[4];
1501 CALL_syntax_base___AVardeclExpr___variable__eq(variable
[0])(variable
[0], variable
[3] /*va*/) /*AVardeclExpr::variable=*/;
1502 /* Register variable[4]: Result */
1503 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1504 CALL_control_flow___VariableContext___add(variable
[4])(variable
[4], variable
[3] /*va*/) /*VariableContext::add*/;
1505 /* Register variable[4]: Result */
1506 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable
[0])(variable
[0]) /*AVardeclExpr::n_expr*/;
1507 /* Register variable[4]: Result */
1508 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1509 if (UNTAG_Bool(variable
[4])) { /*if*/
1510 /* Register variable[4]: Result */
1511 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1512 CALL_control_flow___VariableContext___mark_is_set(variable
[4])(variable
[4], variable
[3] /*va*/) /*VariableContext::mark_is_set*/;
1514 /* Register variable[4]: Result */
1515 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_type(variable
[0])(variable
[0]) /*AVardeclExpr::n_type*/;
1516 /* Register variable[4]: Result */
1517 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1518 if (UNTAG_Bool(variable
[4])) { /*if*/
1519 /* Register variable[4]: Result */
1520 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_type(variable
[0])(variable
[0]) /*AVardeclExpr::n_type*/;
1521 /* Register variable[4]: Result */
1522 variable
[4] = CALL_typing___PType___stype(variable
[4])(variable
[4]) /*PType::stype*/;
1523 CALL_syntax_base___Variable___stype__eq( variable
[3] /*va*/)( variable
[3] /*va*/, variable
[4]) /*Variable::stype=*/;
1524 /* Register variable[4]: Result */
1525 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable
[0])(variable
[0]) /*AVardeclExpr::n_expr*/;
1526 /* Register variable[4]: Result */
1527 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1528 if (UNTAG_Bool(variable
[4])) { /*if*/
1529 /* Register variable[4]: Result */
1530 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable
[0])(variable
[0]) /*AVardeclExpr::n_expr*/;
1531 /* Register variable[5]: Result */
1532 variable
[5] = CALL_syntax_base___Variable___stype( variable
[3] /*va*/)( variable
[3] /*va*/) /*Variable::stype*/;
1533 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
1536 /* Register variable[4]: Result */
1537 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable
[0])(variable
[0]) /*AVardeclExpr::n_expr*/;
1538 /* Register variable[4]: Result */
1539 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*AbsSyntaxVisitor::check_expr*/;
1540 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[4])))) { /*if*/
1541 goto return_label54
;
1543 /* Register variable[4]: Result */
1544 variable
[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable
[0])(variable
[0]) /*AVardeclExpr::n_expr*/;
1545 /* Register variable[4]: Result */
1546 variable
[4] = CALL_syntax_base___PExpr___stype(variable
[4])(variable
[4]) /*PExpr::stype*/;
1547 CALL_syntax_base___Variable___stype__eq( variable
[3] /*va*/)( variable
[3] /*va*/, variable
[4]) /*Variable::stype=*/;
1549 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
1550 return_label54
: while(false);
1551 tracehead
= trace
.prev
;
1554 void typing___ABlockExpr___accept_typing(val_t self
, val_t param0
) {
1555 struct trace_t trace
= {NULL
, NULL
, 345, LOCATE_typing___ABlockExpr___accept_typing
};
1556 static val_t once_value_57
= NIT_NULL
; /* Once value for string variable[7]*/
1558 struct WBT_
**closurevariable
= NULL
;
1559 trace
.prev
= tracehead
; tracehead
= &trace
;
1560 trace
.file
= LOCATE_typing
;
1561 /* Register variable[0]: Local variable */
1563 /* Register variable[1]: Local variable */
1564 variable
[1] = param0
;
1565 /* Register variable[2]: Method return value and escape marker */
1566 /* Register variable[3]: Local variable */
1567 /* Register variable[4]: Result */
1568 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1569 variable
[3] = variable
[4];
1570 /* Register variable[4]: Result */
1571 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1572 /* Register variable[4]: Result */
1573 variable
[4] = CALL_control_flow___VariableContext___sub(variable
[4])(variable
[4], variable
[0]) /*VariableContext::sub*/;
1574 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::variable_ctx=*/;
1575 /* Register variable[4]: Result */
1576 variable
[4] = CALL_parser_nodes___ABlockExpr___n_expr(variable
[0])(variable
[0]) /*ABlockExpr::n_expr*/;
1577 /* Register variable[4]: For iterator */
1578 variable
[4] = CALL_abstract_collection___Collection___iterator(variable
[4])(variable
[4]) /*List::iterator*/;
1579 while (true) { /*for*/
1580 /* Register variable[5]: For 'is_ok' result */
1581 variable
[5] = CALL_abstract_collection___Iterator___is_ok(variable
[4])(variable
[4]) /*ListIterator::is_ok*/;
1582 if (!UNTAG_Bool(variable
[5])) break; /*for*/
1583 variable
[5] = CALL_abstract_collection___Iterator___item(variable
[4])(variable
[4]) /*ListIterator::item*/ /* Ensure var: For item*/;
1584 /* Register variable[6]: Local variable */
1585 variable
[6] = variable
[5];
1586 /* Register variable[7]: Result */
1587 variable
[7] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1588 /* Register variable[7]: Result */
1589 variable
[7] = CALL_control_flow___VariableContext___unreash(variable
[7])(variable
[7]) /*VariableContext::unreash*/;
1590 /* Ensure var variable[7]: Left 'and' operand*/
1591 if (UNTAG_Bool(variable
[7])) { /* and */
1592 /* Register variable[7]: Result */
1593 variable
[7] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1594 /* Register variable[7]: Result */
1595 variable
[7] = CALL_control_flow___VariableContext___already_unreash(variable
[7])(variable
[7]) /*VariableContext::already_unreash*/;
1596 variable
[7] = TAG_Bool(!UNTAG_Bool(variable
[7]));
1598 /* Register variable[7]: Result */
1599 if (UNTAG_Bool(variable
[7])) { /*if*/
1600 /* Register variable[7]: Result */
1601 variable
[7] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1602 CALL_control_flow___VariableContext___already_unreash__eq(variable
[7])(variable
[7], TAG_Bool(true)) /*VariableContext::already_unreash=*/;
1603 /* Register variable[7]: Once String constant */
1604 if (once_value_57
!= NIT_NULL
) variable
[7] = once_value_57
;
1606 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("Warning: unreachable statement."), TAG_Int(31)) /*new String*/;
1607 once_value_57
= variable
[7];
1609 /* Register variable[7]: Result */
1610 CALL_syntax_base___AbsSyntaxVisitor___warning( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6] /*e*/, variable
[7]) /*AbsSyntaxVisitor::warning*/;
1612 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6] /*e*/) /*TypingVisitor::visit*/;
1613 continue_56
: while(0);
1614 CALL_abstract_collection___Iterator___next(variable
[4])(variable
[4]) /*ListIterator::next*/;
1617 /* Register variable[4]: Result */
1618 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1619 CALL_control_flow___VariableContext___merge( variable
[3] /*old_var_ctx*/)( variable
[3] /*old_var_ctx*/, variable
[4]) /*VariableContext::merge*/;
1620 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
1621 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
1622 return_label55
: while(false);
1623 tracehead
= trace
.prev
;
1626 void typing___AReturnExpr___after_typing(val_t self
, val_t param0
) {
1627 struct trace_t trace
= {NULL
, NULL
, 365, LOCATE_typing___AReturnExpr___after_typing
};
1628 static val_t once_value_59
= NIT_NULL
; /* Once value for string variable[4]*/
1629 static val_t once_value_60
= NIT_NULL
; /* Once value for string variable[4]*/
1631 struct WBT_
**closurevariable
= NULL
;
1632 trace
.prev
= tracehead
; tracehead
= &trace
;
1633 trace
.file
= LOCATE_typing
;
1634 /* Register variable[0]: Local variable */
1636 /* Register variable[1]: Local variable */
1637 variable
[1] = param0
;
1638 /* Register variable[2]: Method return value and escape marker */
1639 /* Register variable[3]: Result */
1640 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1641 CALL_control_flow___VariableContext___unreash__eq(variable
[3])(variable
[3], TAG_Bool(true)) /*VariableContext::unreash=*/;
1642 /* Register variable[3]: Local variable */
1643 /* Register variable[4]: Result */
1644 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
1645 /* Register variable[4]: Result */
1646 variable
[4] = CALL_static_type___MMLocalProperty___signature(variable
[4])(variable
[4]) /*MMLocalProperty::signature*/;
1647 /* Register variable[4]: Result */
1648 variable
[4] = CALL_static_type___MMSignature___return_type(variable
[4])(variable
[4]) /*MMSignature::return_type*/;
1649 variable
[3] = variable
[4];
1650 /* Register variable[4]: Result */
1651 variable
[4] = CALL_parser_nodes___AReturnExpr___n_expr(variable
[0])(variable
[0]) /*AReturnExpr::n_expr*/;
1652 /* Register variable[4]: Result */
1653 variable
[4] = TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))));
1654 /* Ensure var variable[4]: Left 'and' operand*/
1655 if (UNTAG_Bool(variable
[4])) { /* and */
1656 /* Register variable[4]: Result */
1657 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*t*/ == NIT_NULL
/*null*/) || (( variable
[3] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*t*/)( variable
[3] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1659 /* Register variable[4]: Result */
1660 if (UNTAG_Bool(variable
[4])) { /*if*/
1661 /* Register variable[4]: Once String constant */
1662 if (once_value_59
!= NIT_NULL
) variable
[4] = once_value_59
;
1664 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("Error: Return without value in a function."), TAG_Int(42)) /*new String*/;
1665 once_value_59
= variable
[4];
1667 /* Register variable[4]: Result */
1668 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[4]) /*AbsSyntaxVisitor::error*/;
1670 /* Register variable[4]: Result */
1671 variable
[4] = CALL_parser_nodes___AReturnExpr___n_expr(variable
[0])(variable
[0]) /*AReturnExpr::n_expr*/;
1672 /* Register variable[4]: Result */
1673 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1674 /* Ensure var variable[4]: Left 'and' operand*/
1675 if (UNTAG_Bool(variable
[4])) { /* and */
1676 /* Register variable[4]: Result */
1677 variable
[4] = TAG_Bool(( variable
[3] /*t*/ == NIT_NULL
/*null*/) || (( variable
[3] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*t*/)( variable
[3] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))));
1679 /* Register variable[4]: Result */
1680 if (UNTAG_Bool(variable
[4])) { /*if*/
1681 /* Register variable[4]: Once String constant */
1682 if (once_value_60
!= NIT_NULL
) variable
[4] = once_value_60
;
1684 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("Error: Return with value in a procedure."), TAG_Int(40)) /*new String*/;
1685 once_value_60
= variable
[4];
1687 /* Register variable[4]: Result */
1688 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[4]) /*AbsSyntaxVisitor::error*/;
1690 /* Register variable[4]: Result */
1691 variable
[4] = CALL_parser_nodes___AReturnExpr___n_expr(variable
[0])(variable
[0]) /*AReturnExpr::n_expr*/;
1692 /* Register variable[4]: Result */
1693 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1694 /* Ensure var variable[4]: Left 'and' operand*/
1695 if (UNTAG_Bool(variable
[4])) { /* and */
1696 /* Register variable[4]: Result */
1697 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*t*/ == NIT_NULL
/*null*/) || (( variable
[3] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*t*/)( variable
[3] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1699 /* Register variable[4]: Result */
1700 if (UNTAG_Bool(variable
[4])) { /*if*/
1701 /* Register variable[4]: Result */
1702 variable
[4] = CALL_parser_nodes___AReturnExpr___n_expr(variable
[0])(variable
[0]) /*AReturnExpr::n_expr*/;
1703 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[3] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
1707 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
1708 return_label58
: while(false);
1709 tracehead
= trace
.prev
;
1712 void typing___AContinueExpr___after_typing(val_t self
, val_t param0
) {
1713 struct trace_t trace
= {NULL
, NULL
, 381, LOCATE_typing___AContinueExpr___after_typing
};
1714 static val_t once_value_62
= NIT_NULL
; /* Once value for string variable[4]*/
1715 static val_t once_value_63
= NIT_NULL
; /* Once value for string variable[5]*/
1716 static val_t once_value_64
= NIT_NULL
; /* Once value for string variable[5]*/
1718 struct WBT_
**closurevariable
= NULL
;
1719 trace
.prev
= tracehead
; tracehead
= &trace
;
1720 trace
.file
= LOCATE_typing
;
1721 /* Register variable[0]: Local variable */
1723 /* Register variable[1]: Local variable */
1724 variable
[1] = param0
;
1725 /* Register variable[2]: Method return value and escape marker */
1726 /* Register variable[3]: Result */
1727 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1728 CALL_control_flow___VariableContext___unreash__eq(variable
[3])(variable
[3], TAG_Bool(true)) /*VariableContext::unreash=*/;
1729 /* Register variable[3]: Local variable */
1730 /* Register variable[4]: Result */
1731 variable
[4] = CALL_typing___TypingVisitor___escapable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::escapable_ctx*/;
1732 /* Register variable[4]: Result */
1733 variable
[4] = CALL_escape___AEscapeExpr___compute_escapable_block(variable
[0])(variable
[0], variable
[4]) /*AEscapeExpr::compute_escapable_block*/;
1734 variable
[3] = variable
[4];
1735 /* Register variable[4]: Result */
1736 variable
[4] = TAG_Bool(( variable
[3] /*esc*/ == NIT_NULL
/*null*/) || (( variable
[3] /*esc*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*esc*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*esc*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*esc*/)( variable
[3] /*esc*/, NIT_NULL
/*null*/) /*Object::==*/)))));
1737 if (UNTAG_Bool(variable
[4])) { /*if*/
1738 goto return_label61
;
1740 /* Register variable[4]: Result */
1741 variable
[4] = CALL_escape___EscapableBlock___is_break_block( variable
[3] /*esc*/)( variable
[3] /*esc*/) /*EscapableBlock::is_break_block*/;
1742 if (UNTAG_Bool(variable
[4])) { /*if*/
1743 /* Register variable[4]: Once String constant */
1744 if (once_value_62
!= NIT_NULL
) variable
[4] = once_value_62
;
1746 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("Error: 'continue' forbiden in break blocks."), TAG_Int(43)) /*new String*/;
1747 once_value_62
= variable
[4];
1749 /* Register variable[4]: Result */
1750 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[4]) /*AbsSyntaxVisitor::error*/;
1751 goto return_label61
;
1753 /* Register variable[4]: Local variable */
1754 /* Register variable[5]: Result */
1755 variable
[5] = CALL_escape___EscapableBlock___continue_stype( variable
[3] /*esc*/)( variable
[3] /*esc*/) /*EscapableBlock::continue_stype*/;
1756 variable
[4] = variable
[5];
1757 /* Register variable[5]: Result */
1758 variable
[5] = CALL_parser_nodes___AContinueExpr___n_expr(variable
[0])(variable
[0]) /*AContinueExpr::n_expr*/;
1759 /* Register variable[5]: Result */
1760 variable
[5] = TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))));
1761 /* Ensure var variable[5]: Left 'and' operand*/
1762 if (UNTAG_Bool(variable
[5])) { /* and */
1763 /* Register variable[5]: Result */
1764 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*t*/ == NIT_NULL
/*null*/) || (( variable
[4] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*t*/)( variable
[4] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1766 /* Register variable[5]: Result */
1767 if (UNTAG_Bool(variable
[5])) { /*if*/
1768 /* Register variable[5]: Once String constant */
1769 if (once_value_63
!= NIT_NULL
) variable
[5] = once_value_63
;
1771 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: continue with a value required in this block."), TAG_Int(52)) /*new String*/;
1772 once_value_63
= variable
[5];
1774 /* Register variable[5]: Result */
1775 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[5]) /*AbsSyntaxVisitor::error*/;
1777 /* Register variable[5]: Result */
1778 variable
[5] = CALL_parser_nodes___AContinueExpr___n_expr(variable
[0])(variable
[0]) /*AContinueExpr::n_expr*/;
1779 /* Register variable[5]: Result */
1780 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))))));
1781 /* Ensure var variable[5]: Left 'and' operand*/
1782 if (UNTAG_Bool(variable
[5])) { /* and */
1783 /* Register variable[5]: Result */
1784 variable
[5] = TAG_Bool(( variable
[4] /*t*/ == NIT_NULL
/*null*/) || (( variable
[4] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*t*/)( variable
[4] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))));
1786 /* Register variable[5]: Result */
1787 if (UNTAG_Bool(variable
[5])) { /*if*/
1788 /* Register variable[5]: Once String constant */
1789 if (once_value_64
!= NIT_NULL
) variable
[5] = once_value_64
;
1791 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: continue without value required in this block."), TAG_Int(53)) /*new String*/;
1792 once_value_64
= variable
[5];
1794 /* Register variable[5]: Result */
1795 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[5]) /*AbsSyntaxVisitor::error*/;
1797 /* Register variable[5]: Result */
1798 variable
[5] = CALL_parser_nodes___AContinueExpr___n_expr(variable
[0])(variable
[0]) /*AContinueExpr::n_expr*/;
1799 /* Register variable[5]: Result */
1800 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))))));
1801 /* Ensure var variable[5]: Left 'and' operand*/
1802 if (UNTAG_Bool(variable
[5])) { /* and */
1803 /* Register variable[5]: Result */
1804 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*t*/ == NIT_NULL
/*null*/) || (( variable
[4] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*t*/)( variable
[4] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1806 /* Register variable[5]: Result */
1807 if (UNTAG_Bool(variable
[5])) { /*if*/
1808 /* Register variable[5]: Result */
1809 variable
[5] = CALL_parser_nodes___AContinueExpr___n_expr(variable
[0])(variable
[0]) /*AContinueExpr::n_expr*/;
1810 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[4] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
1814 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
1815 return_label61
: while(false);
1816 tracehead
= trace
.prev
;
1819 void typing___ABreakExpr___after_typing(val_t self
, val_t param0
) {
1820 struct trace_t trace
= {NULL
, NULL
, 405, LOCATE_typing___ABreakExpr___after_typing
};
1821 static val_t once_value_66
= NIT_NULL
; /* Once value for string variable[5]*/
1822 static val_t once_value_67
= NIT_NULL
; /* Once value for string variable[5]*/
1824 struct WBT_
**closurevariable
= NULL
;
1825 trace
.prev
= tracehead
; tracehead
= &trace
;
1826 trace
.file
= LOCATE_typing
;
1827 /* Register variable[0]: Local variable */
1829 /* Register variable[1]: Local variable */
1830 variable
[1] = param0
;
1831 /* Register variable[2]: Method return value and escape marker */
1832 /* Register variable[3]: Result */
1833 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1834 CALL_control_flow___VariableContext___unreash__eq(variable
[3])(variable
[3], TAG_Bool(true)) /*VariableContext::unreash=*/;
1835 /* Register variable[3]: Local variable */
1836 /* Register variable[4]: Result */
1837 variable
[4] = CALL_typing___TypingVisitor___escapable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::escapable_ctx*/;
1838 /* Register variable[4]: Result */
1839 variable
[4] = CALL_escape___AEscapeExpr___compute_escapable_block(variable
[0])(variable
[0], variable
[4]) /*AEscapeExpr::compute_escapable_block*/;
1840 variable
[3] = variable
[4];
1841 /* Register variable[4]: Result */
1842 variable
[4] = TAG_Bool(( variable
[3] /*esc*/ == NIT_NULL
/*null*/) || (( variable
[3] /*esc*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*esc*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*esc*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*esc*/)( variable
[3] /*esc*/, NIT_NULL
/*null*/) /*Object::==*/)))));
1843 if (UNTAG_Bool(variable
[4])) { /*if*/
1844 goto return_label65
;
1846 /* Register variable[4]: Local variable */
1847 /* Register variable[5]: Result */
1848 variable
[5] = CALL_escape___EscapableBlock___break_list( variable
[3] /*esc*/)( variable
[3] /*esc*/) /*EscapableBlock::break_list*/;
1849 variable
[4] = variable
[5];
1850 /* Register variable[5]: Result */
1851 variable
[5] = CALL_parser_nodes___ABreakExpr___n_expr(variable
[0])(variable
[0]) /*ABreakExpr::n_expr*/;
1852 /* Register variable[5]: Result */
1853 variable
[5] = TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))));
1854 /* Ensure var variable[5]: Left 'and' operand*/
1855 if (UNTAG_Bool(variable
[5])) { /* and */
1856 /* Register variable[5]: Result */
1857 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*bl*/ == NIT_NULL
/*null*/) || (( variable
[4] /*bl*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*bl*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*bl*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*bl*/)( variable
[4] /*bl*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1859 /* Register variable[5]: Result */
1860 if (UNTAG_Bool(variable
[5])) { /*if*/
1861 /* Register variable[5]: Once String constant */
1862 if (once_value_66
!= NIT_NULL
) variable
[5] = once_value_66
;
1864 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: break with a value required in this block."), TAG_Int(49)) /*new String*/;
1865 once_value_66
= variable
[5];
1867 /* Register variable[5]: Result */
1868 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[5]) /*AbsSyntaxVisitor::error*/;
1870 /* Register variable[5]: Result */
1871 variable
[5] = CALL_parser_nodes___ABreakExpr___n_expr(variable
[0])(variable
[0]) /*ABreakExpr::n_expr*/;
1872 /* Register variable[5]: Result */
1873 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))))));
1874 /* Ensure var variable[5]: Left 'and' operand*/
1875 if (UNTAG_Bool(variable
[5])) { /* and */
1876 /* Register variable[5]: Result */
1877 variable
[5] = TAG_Bool(( variable
[4] /*bl*/ == NIT_NULL
/*null*/) || (( variable
[4] /*bl*/ != NIT_NULL
) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*bl*/)( variable
[4] /*bl*/, NIT_NULL
/*null*/) /*AbstractArrayRead::==*/)));
1879 /* Register variable[5]: Result */
1880 if (UNTAG_Bool(variable
[5])) { /*if*/
1881 /* Register variable[5]: Once String constant */
1882 if (once_value_67
!= NIT_NULL
) variable
[5] = once_value_67
;
1884 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: break without value required in this block."), TAG_Int(50)) /*new String*/;
1885 once_value_67
= variable
[5];
1887 /* Register variable[5]: Result */
1888 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[5]) /*AbsSyntaxVisitor::error*/;
1890 /* Register variable[5]: Result */
1891 variable
[5] = CALL_parser_nodes___ABreakExpr___n_expr(variable
[0])(variable
[0]) /*ABreakExpr::n_expr*/;
1892 /* Register variable[5]: Result */
1893 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))))));
1894 /* Ensure var variable[5]: Left 'and' operand*/
1895 if (UNTAG_Bool(variable
[5])) { /* and */
1896 /* Register variable[5]: Result */
1897 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*bl*/ == NIT_NULL
/*null*/) || (( variable
[4] /*bl*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*bl*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*bl*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*bl*/)( variable
[4] /*bl*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1899 /* Register variable[5]: Result */
1900 if (UNTAG_Bool(variable
[5])) { /*if*/
1901 /* Register variable[5]: Result */
1902 variable
[5] = CALL_parser_nodes___ABreakExpr___n_expr(variable
[0])(variable
[0]) /*ABreakExpr::n_expr*/;
1903 CALL_abstract_collection___SimpleCollection___add( variable
[4] /*bl*/)( variable
[4] /*bl*/, variable
[5]) /*AbstractArray::add*/;
1907 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
1908 return_label65
: while(false);
1909 tracehead
= trace
.prev
;
1912 void typing___AAbortExpr___after_typing(val_t self
, val_t param0
) {
1913 struct trace_t trace
= {NULL
, NULL
, 425, LOCATE_typing___AAbortExpr___after_typing
};
1915 struct WBT_
**closurevariable
= NULL
;
1916 trace
.prev
= tracehead
; tracehead
= &trace
;
1917 trace
.file
= LOCATE_typing
;
1918 /* Register variable[0]: Local variable */
1920 /* Register variable[1]: Local variable */
1921 variable
[1] = param0
;
1922 /* Register variable[2]: Method return value and escape marker */
1923 /* Register variable[3]: Result */
1924 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1925 CALL_control_flow___VariableContext___unreash__eq(variable
[3])(variable
[3], TAG_Bool(true)) /*VariableContext::unreash=*/;
1926 return_label68
: while(false);
1927 tracehead
= trace
.prev
;
1930 void typing___AIfExpr___accept_typing(val_t self
, val_t param0
) {
1931 struct trace_t trace
= {NULL
, NULL
, 432, LOCATE_typing___AIfExpr___accept_typing
};
1933 struct WBT_
**closurevariable
= NULL
;
1934 trace
.prev
= tracehead
; tracehead
= &trace
;
1935 trace
.file
= LOCATE_typing
;
1936 /* Register variable[0]: Local variable */
1938 /* Register variable[1]: Local variable */
1939 variable
[1] = param0
;
1940 /* Register variable[2]: Method return value and escape marker */
1941 /* Register variable[3]: Local variable */
1942 /* Register variable[4]: Result */
1943 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1944 variable
[3] = variable
[4];
1945 /* Register variable[4]: Result */
1946 variable
[4] = CALL_parser_nodes___AIfExpr___n_expr(variable
[0])(variable
[0]) /*AIfExpr::n_expr*/;
1947 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
1948 /* Register variable[4]: Result */
1949 variable
[4] = CALL_parser_nodes___AIfExpr___n_expr(variable
[0])(variable
[0]) /*AIfExpr::n_expr*/;
1950 /* Register variable[5]: Result */
1951 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
1952 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
1953 /* Register variable[4]: Result */
1954 variable
[4] = CALL_parser_nodes___AIfExpr___n_expr(variable
[0])(variable
[0]) /*AIfExpr::n_expr*/;
1955 CALL_typing___TypingVisitor___use_if_true_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::use_if_true_variable_ctx*/;
1956 /* Register variable[4]: Result */
1957 variable
[4] = CALL_parser_nodes___AIfExpr___n_then(variable
[0])(variable
[0]) /*AIfExpr::n_then*/;
1958 /* Register variable[4]: Result */
1959 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
1960 if (UNTAG_Bool(variable
[4])) { /*if*/
1961 /* Register variable[4]: Result */
1962 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1963 /* Register variable[5]: Result */
1964 variable
[5] = CALL_parser_nodes___AIfExpr___n_then(variable
[0])(variable
[0]) /*AIfExpr::n_then*/;
1965 /* Register variable[4]: Result */
1966 variable
[4] = CALL_control_flow___VariableContext___sub(variable
[4])(variable
[4], variable
[5]) /*VariableContext::sub*/;
1967 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::variable_ctx=*/;
1968 /* Register variable[4]: Result */
1969 variable
[4] = CALL_parser_nodes___AIfExpr___n_then(variable
[0])(variable
[0]) /*AIfExpr::n_then*/;
1970 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
1972 /* Register variable[4]: Local variable */
1973 /* Register variable[5]: Result */
1974 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1975 variable
[4] = variable
[5];
1976 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
1977 /* Register variable[5]: Result */
1978 variable
[5] = CALL_parser_nodes___AIfExpr___n_expr(variable
[0])(variable
[0]) /*AIfExpr::n_expr*/;
1979 CALL_typing___TypingVisitor___use_if_false_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5]) /*TypingVisitor::use_if_false_variable_ctx*/;
1980 /* Register variable[5]: Result */
1981 variable
[5] = CALL_parser_nodes___AIfExpr___n_else(variable
[0])(variable
[0]) /*AIfExpr::n_else*/;
1982 /* Register variable[5]: Result */
1983 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))))));
1984 if (UNTAG_Bool(variable
[5])) { /*if*/
1985 /* Register variable[5]: Result */
1986 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1987 /* Register variable[6]: Result */
1988 variable
[6] = CALL_parser_nodes___AIfExpr___n_else(variable
[0])(variable
[0]) /*AIfExpr::n_else*/;
1989 /* Register variable[5]: Result */
1990 variable
[5] = CALL_control_flow___VariableContext___sub(variable
[5])(variable
[5], variable
[6]) /*VariableContext::sub*/;
1991 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5]) /*TypingVisitor::variable_ctx=*/;
1992 /* Register variable[5]: Result */
1993 variable
[5] = CALL_parser_nodes___AIfExpr___n_else(variable
[0])(variable
[0]) /*AIfExpr::n_else*/;
1994 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5]) /*TypingVisitor::visit*/;
1996 /* Register variable[5]: Result */
1997 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
1998 /* Register variable[6]: Result */
1999 variable
[6] = CALL_typing___TypingVisitor___base_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::base_variable_ctx*/;
2000 CALL_control_flow___VariableContext___merge2( variable
[3] /*old_var_ctx*/)( variable
[3] /*old_var_ctx*/, variable
[4] /*then_var_ctx*/, variable
[5], variable
[6]) /*VariableContext::merge2*/;
2001 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
2002 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
2003 return_label69
: while(false);
2004 tracehead
= trace
.prev
;
2007 void typing___AWhileExpr___accept_typing(val_t self
, val_t param0
) {
2008 struct trace_t trace
= {NULL
, NULL
, 471, LOCATE_typing___AWhileExpr___accept_typing
};
2010 struct WBT_
**closurevariable
= NULL
;
2011 trace
.prev
= tracehead
; tracehead
= &trace
;
2012 trace
.file
= LOCATE_typing
;
2013 /* Register variable[0]: Local variable */
2015 /* Register variable[1]: Local variable */
2016 variable
[1] = param0
;
2017 /* Register variable[2]: Method return value and escape marker */
2018 /* Register variable[3]: Result */
2019 variable
[3] = NEW_EscapableBlock_escape___EscapableBlock___init(variable
[0]) /*new EscapableBlock*/;
2020 ATTR_typing___AWhileExpr____escapable(variable
[0]) /*AWhileExpr::_escapable*/ = variable
[3];
2021 /* Register variable[3]: Result */
2022 variable
[3] = CALL_typing___TypingVisitor___escapable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::escapable_ctx*/;
2023 /* Register variable[4]: Result */
2024 variable
[4] = ATTR_typing___AWhileExpr____escapable(variable
[0]) /*AWhileExpr::_escapable*/;
2025 CALL_escape___EscapableContext___push(variable
[3])(variable
[3], variable
[4]) /*EscapableContext::push*/;
2026 /* Register variable[3]: Local variable */
2027 /* Register variable[4]: Result */
2028 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2029 variable
[3] = variable
[4];
2030 /* Register variable[4]: Local variable */
2031 /* Register variable[5]: Result */
2032 variable
[5] = CALL_typing___TypingVisitor___base_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::base_variable_ctx*/;
2033 variable
[4] = variable
[5];
2034 /* Register variable[5]: Result */
2035 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2036 CALL_typing___TypingVisitor___base_variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5]) /*TypingVisitor::base_variable_ctx=*/;
2037 /* Register variable[5]: Result */
2038 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2039 /* Register variable[5]: Result */
2040 variable
[5] = CALL_control_flow___VariableContext___sub(variable
[5])(variable
[5], variable
[0]) /*VariableContext::sub*/;
2041 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5]) /*TypingVisitor::variable_ctx=*/;
2042 /* Register variable[5]: Result */
2043 variable
[5] = CALL_parser_nodes___AWhileExpr___n_expr(variable
[0])(variable
[0]) /*AWhileExpr::n_expr*/;
2044 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5]) /*TypingVisitor::visit*/;
2045 /* Register variable[5]: Result */
2046 variable
[5] = CALL_parser_nodes___AWhileExpr___n_expr(variable
[0])(variable
[0]) /*AWhileExpr::n_expr*/;
2047 /* Register variable[6]: Result */
2048 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
2049 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[6]) /*AbsSyntaxVisitor::check_conform_expr*/;
2050 /* Register variable[5]: Result */
2051 variable
[5] = CALL_parser_nodes___AWhileExpr___n_expr(variable
[0])(variable
[0]) /*AWhileExpr::n_expr*/;
2052 CALL_typing___TypingVisitor___use_if_true_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5]) /*TypingVisitor::use_if_true_variable_ctx*/;
2053 /* Register variable[5]: Result */
2054 variable
[5] = CALL_parser_nodes___AWhileExpr___n_block(variable
[0])(variable
[0]) /*AWhileExpr::n_block*/;
2055 /* Register variable[5]: Result */
2056 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))))));
2057 if (UNTAG_Bool(variable
[5])) { /*if*/
2058 /* Register variable[5]: Result */
2059 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2060 /* Register variable[6]: Result */
2061 variable
[6] = CALL_parser_nodes___AWhileExpr___n_block(variable
[0])(variable
[0]) /*AWhileExpr::n_block*/;
2062 /* Register variable[5]: Result */
2063 variable
[5] = CALL_control_flow___VariableContext___sub(variable
[5])(variable
[5], variable
[6]) /*VariableContext::sub*/;
2064 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5]) /*TypingVisitor::variable_ctx=*/;
2065 /* Register variable[5]: Result */
2066 variable
[5] = CALL_parser_nodes___AWhileExpr___n_block(variable
[0])(variable
[0]) /*AWhileExpr::n_block*/;
2067 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5]) /*TypingVisitor::visit*/;
2069 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
2070 CALL_typing___TypingVisitor___base_variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4] /*old_base_var_ctx*/) /*TypingVisitor::base_variable_ctx=*/;
2071 /* Register variable[5]: Result */
2072 variable
[5] = CALL_typing___TypingVisitor___escapable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::escapable_ctx*/;
2073 CALL_escape___EscapableContext___pop(variable
[5])(variable
[5]) /*EscapableContext::pop*/;
2074 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
2075 return_label70
: while(false);
2076 tracehead
= trace
.prev
;
2079 val_t
typing___AWhileExpr___escapable(val_t self
) {
2080 struct trace_t trace
= {NULL
, NULL
, 468, LOCATE_typing___AWhileExpr___escapable
};
2081 val_t
*variable
= NULL
;
2082 struct WBT_
**closurevariable
= NULL
;
2083 trace
.prev
= tracehead
; tracehead
= &trace
;
2084 trace
.file
= LOCATE_typing
;
2085 tracehead
= trace
.prev
;
2086 return ATTR_typing___AWhileExpr____escapable( self
) /*AWhileExpr::_escapable*/;
2088 void typing___AForExpr___accept_typing(val_t self
, val_t param0
) {
2089 struct trace_t trace
= {NULL
, NULL
, 508, LOCATE_typing___AForExpr___accept_typing
};
2090 static val_t once_value_72
; static int once_bool_72
; /* Once value for variable[8]*/
2091 static val_t once_value_73
= NIT_NULL
; /* Once value for string variable[8]*/
2092 static val_t once_value_74
= NIT_NULL
; /* Once value for string variable[7]*/
2093 static val_t once_value_75
; static int once_bool_75
; /* Once value for variable[9]*/
2094 static val_t once_value_76
= NIT_NULL
; /* Once value for string variable[9]*/
2095 static val_t once_value_77
= NIT_NULL
; /* Once value for string variable[9]*/
2096 static val_t once_value_78
= NIT_NULL
; /* Once value for string variable[9]*/
2097 static val_t once_value_79
; static int once_bool_79
; /* Once value for variable[9]*/
2098 static val_t once_value_80
= NIT_NULL
; /* Once value for string variable[9]*/
2099 static val_t once_value_81
= NIT_NULL
; /* Once value for string variable[9]*/
2100 static val_t once_value_82
= NIT_NULL
; /* Once value for string variable[9]*/
2101 static val_t once_value_83
; static int once_bool_83
; /* Once value for variable[9]*/
2102 static val_t once_value_84
= NIT_NULL
; /* Once value for string variable[9]*/
2103 static val_t once_value_85
= NIT_NULL
; /* Once value for string variable[9]*/
2104 static val_t once_value_86
= NIT_NULL
; /* Once value for string variable[9]*/
2106 struct WBT_
**closurevariable
= NULL
;
2107 trace
.prev
= tracehead
; tracehead
= &trace
;
2108 trace
.file
= LOCATE_typing
;
2109 /* Register variable[0]: Local variable */
2111 /* Register variable[1]: Local variable */
2112 variable
[1] = param0
;
2113 /* Register variable[2]: Method return value and escape marker */
2114 /* Register variable[3]: Result */
2115 variable
[3] = NEW_EscapableBlock_escape___EscapableBlock___init(variable
[0]) /*new EscapableBlock*/;
2116 ATTR_typing___AForExpr____escapable(variable
[0]) /*AForExpr::_escapable*/ = variable
[3];
2117 /* Register variable[3]: Result */
2118 variable
[3] = CALL_typing___TypingVisitor___escapable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::escapable_ctx*/;
2119 /* Register variable[4]: Result */
2120 variable
[4] = ATTR_typing___AForExpr____escapable(variable
[0]) /*AForExpr::_escapable*/;
2121 CALL_escape___EscapableContext___push(variable
[3])(variable
[3], variable
[4]) /*EscapableContext::push*/;
2122 /* Register variable[3]: Local variable */
2123 /* Register variable[4]: Result */
2124 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2125 variable
[3] = variable
[4];
2126 /* Register variable[4]: Local variable */
2127 /* Register variable[5]: Result */
2128 variable
[5] = CALL_typing___TypingVisitor___base_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::base_variable_ctx*/;
2129 variable
[4] = variable
[5];
2130 /* Register variable[5]: Result */
2131 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2132 CALL_typing___TypingVisitor___base_variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5]) /*TypingVisitor::base_variable_ctx=*/;
2133 /* Register variable[5]: Result */
2134 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2135 /* Register variable[5]: Result */
2136 variable
[5] = CALL_control_flow___VariableContext___sub(variable
[5])(variable
[5], variable
[0]) /*VariableContext::sub*/;
2137 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5]) /*TypingVisitor::variable_ctx=*/;
2138 /* Register variable[5]: Local variable */
2139 /* Register variable[6]: Result */
2140 variable
[6] = CALL_parser_nodes___AForExpr___n_id(variable
[0])(variable
[0]) /*AForExpr::n_id*/;
2141 /* Register variable[6]: Result */
2142 variable
[6] = CALL_syntax_base___Token___to_symbol(variable
[6])(variable
[6]) /*Token::to_symbol*/;
2143 /* Register variable[6]: Result */
2144 variable
[6] = NEW_AutoVariable_syntax_base___AutoVariable___init(variable
[6], variable
[0]) /*new AutoVariable*/;
2145 variable
[5] = variable
[6];
2146 CALL_syntax_base___AForExpr___variable__eq(variable
[0])(variable
[0], variable
[5] /*va*/) /*AForExpr::variable=*/;
2147 /* Register variable[6]: Result */
2148 variable
[6] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2149 CALL_control_flow___VariableContext___add(variable
[6])(variable
[6], variable
[5] /*va*/) /*VariableContext::add*/;
2150 /* Register variable[6]: Result */
2151 variable
[6] = CALL_parser_nodes___AForExpr___n_expr(variable
[0])(variable
[0]) /*AForExpr::n_expr*/;
2152 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6]) /*TypingVisitor::visit*/;
2153 /* Register variable[6]: Result */
2154 variable
[6] = CALL_parser_nodes___AForExpr___n_expr(variable
[0])(variable
[0]) /*AForExpr::n_expr*/;
2155 /* Register variable[7]: Result */
2156 variable
[7] = CALL_syntax_base___AbsSyntaxVisitor___type_collection( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_collection*/;
2157 /* Register variable[6]: Result */
2158 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[7]) /*AbsSyntaxVisitor::check_conform_expr*/;
2159 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[6])))) { /*if*/
2160 goto return_label71
;
2162 /* Register variable[6]: Local variable */
2163 /* Register variable[7]: Result */
2164 variable
[7] = CALL_parser_nodes___AForExpr___n_expr(variable
[0])(variable
[0]) /*AForExpr::n_expr*/;
2165 /* Register variable[7]: Result */
2166 variable
[7] = CALL_syntax_base___PExpr___stype(variable
[7])(variable
[7]) /*PExpr::stype*/;
2167 variable
[6] = variable
[7];
2168 /* Register variable[7]: Result */
2169 variable
[7] = CALL_static_type___MMType___local_class( variable
[6] /*expr_type*/)( variable
[6] /*expr_type*/) /*MMType::local_class*/;
2170 /* Register variable[8]: Once expression result */
2171 if (once_bool_72
) variable
[8] = once_value_72
;
2173 /* Register variable[8]: Once String constant */
2174 if (once_value_73
!= NIT_NULL
) variable
[8] = once_value_73
;
2176 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("iterator"), TAG_Int(8)) /*new String*/;
2177 once_value_73
= variable
[8];
2179 /* Register variable[8]: Result */
2180 /* Register variable[8]: Result */
2181 variable
[8] = CALL_symbol___String___to_symbol(variable
[8])(variable
[8]) /*String::to_symbol*/;
2182 once_value_72
= variable
[8];
2183 once_bool_72
= true;
2185 /* Register variable[8]: Result */
2186 /* Register variable[7]: Result */
2187 variable
[7] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[7])(variable
[7], variable
[8]) /*MMLocalClass::select_method*/;
2188 ATTR_typing___AForExpr____meth_iterator(variable
[0]) /*AForExpr::_meth_iterator*/ = variable
[7];
2189 /* Register variable[7]: Result */
2190 variable
[7] = ATTR_typing___AForExpr____meth_iterator(variable
[0]) /*AForExpr::_meth_iterator*/;
2191 /* Register variable[7]: Result */
2192 variable
[7] = TAG_Bool((variable
[7] == NIT_NULL
/*null*/) || ((variable
[7] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[7])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[7], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[7])(variable
[7], NIT_NULL
/*null*/) /*Object::==*/)))));
2193 if (UNTAG_Bool(variable
[7])) { /*if*/
2194 /* Register variable[7]: Once String constant */
2195 if (once_value_74
!= NIT_NULL
) variable
[7] = once_value_74
;
2197 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: Collection MUST have an iterate method"), TAG_Int(45)) /*new String*/;
2198 once_value_74
= variable
[7];
2200 /* Register variable[7]: Result */
2201 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[7]) /*AbsSyntaxVisitor::error*/;
2202 goto return_label71
;
2204 /* Register variable[7]: Local variable */
2205 /* Register variable[8]: Result */
2206 variable
[8] = ATTR_typing___AForExpr____meth_iterator(variable
[0]) /*AForExpr::_meth_iterator*/;
2207 /* Register variable[8]: Result */
2208 variable
[8] = CALL_static_type___MMLocalProperty___signature_for(variable
[8])(variable
[8], variable
[6] /*expr_type*/) /*MMLocalProperty::signature_for*/;
2209 /* Register variable[8]: Result */
2210 variable
[8] = CALL_static_type___MMSignature___return_type(variable
[8])(variable
[8]) /*MMSignature::return_type*/;
2211 variable
[7] = variable
[8];
2212 /* Register variable[8]: Result */
2213 variable
[8] = CALL_static_type___MMType___local_class( variable
[7] /*iter_type*/)( variable
[7] /*iter_type*/) /*MMType::local_class*/;
2214 /* Register variable[9]: Once expression result */
2215 if (once_bool_75
) variable
[9] = once_value_75
;
2217 /* Register variable[9]: Once String constant */
2218 if (once_value_76
!= NIT_NULL
) variable
[9] = once_value_76
;
2220 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("is_ok"), TAG_Int(5)) /*new String*/;
2221 once_value_76
= variable
[9];
2223 /* Register variable[9]: Result */
2224 /* Register variable[9]: Result */
2225 variable
[9] = CALL_symbol___String___to_symbol(variable
[9])(variable
[9]) /*String::to_symbol*/;
2226 once_value_75
= variable
[9];
2227 once_bool_75
= true;
2229 /* Register variable[9]: Result */
2230 /* Register variable[8]: Result */
2231 variable
[8] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[8])(variable
[8], variable
[9]) /*MMLocalClass::select_method*/;
2232 ATTR_typing___AForExpr____meth_is_ok(variable
[0]) /*AForExpr::_meth_is_ok*/ = variable
[8];
2233 /* Register variable[8]: Result */
2234 variable
[8] = ATTR_typing___AForExpr____meth_is_ok(variable
[0]) /*AForExpr::_meth_is_ok*/;
2235 /* Register variable[8]: Result */
2236 variable
[8] = TAG_Bool((variable
[8] == NIT_NULL
/*null*/) || ((variable
[8] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[8])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[8], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[8])(variable
[8], NIT_NULL
/*null*/) /*Object::==*/)))));
2237 if (UNTAG_Bool(variable
[8])) { /*if*/
2238 variable
[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2239 /* Register variable[9]: Once String constant */
2240 if (once_value_77
!= NIT_NULL
) variable
[9] = once_value_77
;
2242 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)) /*new String*/;
2243 once_value_77
= variable
[9];
2245 /* Register variable[9]: Result */
2246 /* Ensure var variable[9]: super-string element*/
2247 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
2248 variable
[9] = variable
[7] /*iter_type*/ /* Ensure var: super-string element*/;
2249 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/) /*AbstractArray::add*/;
2250 /* Register variable[9]: Once String constant */
2251 if (once_value_78
!= NIT_NULL
) variable
[9] = once_value_78
;
2253 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have an is_ok method"), TAG_Int(26)) /*new String*/;
2254 once_value_78
= variable
[9];
2256 /* Register variable[9]: Result */
2257 /* Ensure var variable[9]: super-string element*/
2258 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
2259 /* Register variable[8]: Result */
2260 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
2261 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[8]) /*AbsSyntaxVisitor::error*/;
2262 goto return_label71
;
2264 /* Register variable[8]: Result */
2265 variable
[8] = CALL_static_type___MMType___local_class( variable
[7] /*iter_type*/)( variable
[7] /*iter_type*/) /*MMType::local_class*/;
2266 /* Register variable[9]: Once expression result */
2267 if (once_bool_79
) variable
[9] = once_value_79
;
2269 /* Register variable[9]: Once String constant */
2270 if (once_value_80
!= NIT_NULL
) variable
[9] = once_value_80
;
2272 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("item"), TAG_Int(4)) /*new String*/;
2273 once_value_80
= variable
[9];
2275 /* Register variable[9]: Result */
2276 /* Register variable[9]: Result */
2277 variable
[9] = CALL_symbol___String___to_symbol(variable
[9])(variable
[9]) /*String::to_symbol*/;
2278 once_value_79
= variable
[9];
2279 once_bool_79
= true;
2281 /* Register variable[9]: Result */
2282 /* Register variable[8]: Result */
2283 variable
[8] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[8])(variable
[8], variable
[9]) /*MMLocalClass::select_method*/;
2284 ATTR_typing___AForExpr____meth_item(variable
[0]) /*AForExpr::_meth_item*/ = variable
[8];
2285 /* Register variable[8]: Result */
2286 variable
[8] = ATTR_typing___AForExpr____meth_item(variable
[0]) /*AForExpr::_meth_item*/;
2287 /* Register variable[8]: Result */
2288 variable
[8] = TAG_Bool((variable
[8] == NIT_NULL
/*null*/) || ((variable
[8] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[8])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[8], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[8])(variable
[8], NIT_NULL
/*null*/) /*Object::==*/)))));
2289 if (UNTAG_Bool(variable
[8])) { /*if*/
2290 variable
[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2291 /* Register variable[9]: Once String constant */
2292 if (once_value_81
!= NIT_NULL
) variable
[9] = once_value_81
;
2294 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)) /*new String*/;
2295 once_value_81
= variable
[9];
2297 /* Register variable[9]: Result */
2298 /* Ensure var variable[9]: super-string element*/
2299 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
2300 variable
[9] = variable
[7] /*iter_type*/ /* Ensure var: super-string element*/;
2301 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/) /*AbstractArray::add*/;
2302 /* Register variable[9]: Once String constant */
2303 if (once_value_82
!= NIT_NULL
) variable
[9] = once_value_82
;
2305 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have an item method"), TAG_Int(25)) /*new String*/;
2306 once_value_82
= variable
[9];
2308 /* Register variable[9]: Result */
2309 /* Ensure var variable[9]: super-string element*/
2310 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
2311 /* Register variable[8]: Result */
2312 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
2313 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[8]) /*AbsSyntaxVisitor::error*/;
2314 goto return_label71
;
2316 /* Register variable[8]: Result */
2317 variable
[8] = CALL_static_type___MMType___local_class( variable
[7] /*iter_type*/)( variable
[7] /*iter_type*/) /*MMType::local_class*/;
2318 /* Register variable[9]: Once expression result */
2319 if (once_bool_83
) variable
[9] = once_value_83
;
2321 /* Register variable[9]: Once String constant */
2322 if (once_value_84
!= NIT_NULL
) variable
[9] = once_value_84
;
2324 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("next"), TAG_Int(4)) /*new String*/;
2325 once_value_84
= variable
[9];
2327 /* Register variable[9]: Result */
2328 /* Register variable[9]: Result */
2329 variable
[9] = CALL_symbol___String___to_symbol(variable
[9])(variable
[9]) /*String::to_symbol*/;
2330 once_value_83
= variable
[9];
2331 once_bool_83
= true;
2333 /* Register variable[9]: Result */
2334 /* Register variable[8]: Result */
2335 variable
[8] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[8])(variable
[8], variable
[9]) /*MMLocalClass::select_method*/;
2336 ATTR_typing___AForExpr____meth_next(variable
[0]) /*AForExpr::_meth_next*/ = variable
[8];
2337 /* Register variable[8]: Result */
2338 variable
[8] = ATTR_typing___AForExpr____meth_next(variable
[0]) /*AForExpr::_meth_next*/;
2339 /* Register variable[8]: Result */
2340 variable
[8] = TAG_Bool((variable
[8] == NIT_NULL
/*null*/) || ((variable
[8] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[8])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[8], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[8])(variable
[8], NIT_NULL
/*null*/) /*Object::==*/)))));
2341 if (UNTAG_Bool(variable
[8])) { /*if*/
2342 variable
[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2343 /* Register variable[9]: Once String constant */
2344 if (once_value_85
!= NIT_NULL
) variable
[9] = once_value_85
;
2346 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)) /*new String*/;
2347 once_value_85
= variable
[9];
2349 /* Register variable[9]: Result */
2350 /* Ensure var variable[9]: super-string element*/
2351 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
2352 variable
[9] = variable
[7] /*iter_type*/ /* Ensure var: super-string element*/;
2353 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/) /*AbstractArray::add*/;
2354 /* Register variable[9]: Once String constant */
2355 if (once_value_86
!= NIT_NULL
) variable
[9] = once_value_86
;
2357 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have a next method"), TAG_Int(24)) /*new String*/;
2358 once_value_86
= variable
[9];
2360 /* Register variable[9]: Result */
2361 /* Ensure var variable[9]: super-string element*/
2362 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
2363 /* Register variable[8]: Result */
2364 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
2365 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[8]) /*AbsSyntaxVisitor::error*/;
2366 goto return_label71
;
2368 /* Register variable[8]: Local variable */
2369 /* Register variable[9]: Result */
2370 variable
[9] = ATTR_typing___AForExpr____meth_item(variable
[0]) /*AForExpr::_meth_item*/;
2371 /* Register variable[9]: Result */
2372 variable
[9] = CALL_static_type___MMLocalProperty___signature_for(variable
[9])(variable
[9], variable
[7] /*iter_type*/) /*MMLocalProperty::signature_for*/;
2373 /* Register variable[9]: Result */
2374 variable
[9] = CALL_static_type___MMSignature___return_type(variable
[9])(variable
[9]) /*MMSignature::return_type*/;
2375 variable
[8] = variable
[9];
2376 /* Register variable[9]: Result */
2377 variable
[9] = CALL_parser_nodes___AForExpr___n_expr(variable
[0])(variable
[0]) /*AForExpr::n_expr*/;
2378 /* Register variable[9]: Result */
2379 variable
[9] = CALL_typing___PExpr___is_self(variable
[9])(variable
[9]) /*PExpr::is_self*/;
2380 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[9])))) { /*if*/
2381 /* Register variable[9]: Result */
2382 variable
[9] = CALL_static_type___MMType___not_for_self( variable
[8] /*t*/)( variable
[8] /*t*/) /*MMType::not_for_self*/;
2383 variable
[8] = variable
[9] /*t=*/;
2385 CALL_syntax_base___Variable___stype__eq( variable
[5] /*va*/)( variable
[5] /*va*/, variable
[8] /*t*/) /*Variable::stype=*/;
2386 /* Register variable[9]: Result */
2387 variable
[9] = CALL_parser_nodes___AForExpr___n_block(variable
[0])(variable
[0]) /*AForExpr::n_block*/;
2388 /* Register variable[9]: Result */
2389 variable
[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[9] == NIT_NULL
/*null*/) || ((variable
[9] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[9])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[9], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[9])(variable
[9], NIT_NULL
/*null*/) /*Object::==*/)))))));
2390 if (UNTAG_Bool(variable
[9])) { /*if*/
2391 /* Register variable[9]: Result */
2392 variable
[9] = CALL_parser_nodes___AForExpr___n_block(variable
[0])(variable
[0]) /*AForExpr::n_block*/;
2393 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[9]) /*TypingVisitor::visit*/;
2395 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
2396 CALL_typing___TypingVisitor___base_variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4] /*old_base_var_ctx*/) /*TypingVisitor::base_variable_ctx=*/;
2397 /* Register variable[9]: Result */
2398 variable
[9] = CALL_typing___TypingVisitor___escapable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::escapable_ctx*/;
2399 CALL_escape___EscapableContext___pop(variable
[9])(variable
[9]) /*EscapableContext::pop*/;
2400 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
2401 return_label71
: while(false);
2402 tracehead
= trace
.prev
;
2405 val_t
typing___AForExpr___escapable(val_t self
) {
2406 struct trace_t trace
= {NULL
, NULL
, 501, LOCATE_typing___AForExpr___escapable
};
2407 val_t
*variable
= NULL
;
2408 struct WBT_
**closurevariable
= NULL
;
2409 trace
.prev
= tracehead
; tracehead
= &trace
;
2410 trace
.file
= LOCATE_typing
;
2411 tracehead
= trace
.prev
;
2412 return ATTR_typing___AForExpr____escapable( self
) /*AForExpr::_escapable*/;
2414 val_t
typing___AForExpr___meth_iterator(val_t self
) {
2415 struct trace_t trace
= {NULL
, NULL
, 504, LOCATE_typing___AForExpr___meth_iterator
};
2416 val_t
*variable
= NULL
;
2417 struct WBT_
**closurevariable
= NULL
;
2418 trace
.prev
= tracehead
; tracehead
= &trace
;
2419 trace
.file
= LOCATE_typing
;
2420 tracehead
= trace
.prev
;
2421 return ATTR_typing___AForExpr____meth_iterator( self
) /*AForExpr::_meth_iterator*/;
2423 val_t
typing___AForExpr___meth_is_ok(val_t self
) {
2424 struct trace_t trace
= {NULL
, NULL
, 505, LOCATE_typing___AForExpr___meth_is_ok
};
2425 val_t
*variable
= NULL
;
2426 struct WBT_
**closurevariable
= NULL
;
2427 trace
.prev
= tracehead
; tracehead
= &trace
;
2428 trace
.file
= LOCATE_typing
;
2429 tracehead
= trace
.prev
;
2430 return ATTR_typing___AForExpr____meth_is_ok( self
) /*AForExpr::_meth_is_ok*/;
2432 val_t
typing___AForExpr___meth_item(val_t self
) {
2433 struct trace_t trace
= {NULL
, NULL
, 506, LOCATE_typing___AForExpr___meth_item
};
2434 val_t
*variable
= NULL
;
2435 struct WBT_
**closurevariable
= NULL
;
2436 trace
.prev
= tracehead
; tracehead
= &trace
;
2437 trace
.file
= LOCATE_typing
;
2438 tracehead
= trace
.prev
;
2439 return ATTR_typing___AForExpr____meth_item( self
) /*AForExpr::_meth_item*/;
2441 val_t
typing___AForExpr___meth_next(val_t self
) {
2442 struct trace_t trace
= {NULL
, NULL
, 507, LOCATE_typing___AForExpr___meth_next
};
2443 val_t
*variable
= NULL
;
2444 struct WBT_
**closurevariable
= NULL
;
2445 trace
.prev
= tracehead
; tracehead
= &trace
;
2446 trace
.file
= LOCATE_typing
;
2447 tracehead
= trace
.prev
;
2448 return ATTR_typing___AForExpr____meth_next( self
) /*AForExpr::_meth_next*/;
2450 void typing___AAssertExpr___after_typing(val_t self
, val_t param0
) {
2451 struct trace_t trace
= {NULL
, NULL
, 561, LOCATE_typing___AAssertExpr___after_typing
};
2453 struct WBT_
**closurevariable
= NULL
;
2454 trace
.prev
= tracehead
; tracehead
= &trace
;
2455 trace
.file
= LOCATE_typing
;
2456 /* Register variable[0]: Local variable */
2458 /* Register variable[1]: Local variable */
2459 variable
[1] = param0
;
2460 /* Register variable[2]: Method return value and escape marker */
2461 /* Register variable[3]: Result */
2462 variable
[3] = CALL_parser_nodes___AAssertExpr___n_expr(variable
[0])(variable
[0]) /*AAssertExpr::n_expr*/;
2463 /* Register variable[4]: Result */
2464 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
2465 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
2466 /* Register variable[3]: Result */
2467 variable
[3] = CALL_parser_nodes___AAssertExpr___n_expr(variable
[0])(variable
[0]) /*AAssertExpr::n_expr*/;
2468 CALL_typing___TypingVisitor___use_if_true_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*TypingVisitor::use_if_true_variable_ctx*/;
2469 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
2470 return_label87
: while(false);
2471 tracehead
= trace
.prev
;
2474 void typing___AVarExpr___after_typing(val_t self
, val_t param0
) {
2475 struct trace_t trace
= {NULL
, NULL
, 572, LOCATE_typing___AVarExpr___after_typing
};
2477 struct WBT_
**closurevariable
= NULL
;
2478 trace
.prev
= tracehead
; tracehead
= &trace
;
2479 trace
.file
= LOCATE_typing
;
2480 /* Register variable[0]: Local variable */
2482 /* Register variable[1]: Local variable */
2483 variable
[1] = param0
;
2484 /* Register variable[2]: Method return value and escape marker */
2485 /* Register variable[3]: Result */
2486 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2487 /* Register variable[4]: Result */
2488 variable
[4] = CALL_syntax_base___AVarFormExpr___variable(variable
[0])(variable
[0]) /*AVarFormExpr::variable*/;
2489 CALL_control_flow___VariableContext___check_is_set(variable
[3])(variable
[3], variable
[0], variable
[4]) /*VariableContext::check_is_set*/;
2490 /* Register variable[3]: Result */
2491 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2492 /* Register variable[4]: Result */
2493 variable
[4] = CALL_syntax_base___AVarFormExpr___variable(variable
[0])(variable
[0]) /*AVarFormExpr::variable*/;
2494 /* Register variable[3]: Result */
2495 variable
[3] = CALL_control_flow___VariableContext___stype(variable
[3])(variable
[3], variable
[4]) /*VariableContext::stype*/;
2496 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
2497 /* Register variable[3]: Result */
2498 variable
[3] = ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/;
2499 /* Register variable[3]: Result */
2500 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
2501 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = variable
[3];
2502 return_label88
: while(false);
2503 tracehead
= trace
.prev
;
2506 val_t
typing___AVarExpr___its_variable(val_t self
) {
2507 struct trace_t trace
= {NULL
, NULL
, 570, LOCATE_typing___AVarExpr___its_variable
};
2509 struct WBT_
**closurevariable
= NULL
;
2510 trace
.prev
= tracehead
; tracehead
= &trace
;
2511 trace
.file
= LOCATE_typing
;
2512 /* Register variable[0]: Local variable */
2514 /* Register variable[1]: Method return value and escape marker */
2515 /* Register variable[2]: Result */
2516 variable
[2] = CALL_syntax_base___AVarFormExpr___variable(variable
[0])(variable
[0]) /*AVarFormExpr::variable*/;
2517 variable
[1] = variable
[2];
2518 goto return_label89
;
2519 return_label89
: while(false);
2520 tracehead
= trace
.prev
;
2523 void typing___AVarAssignExpr___after_typing(val_t self
, val_t param0
) {
2524 struct trace_t trace
= {NULL
, NULL
, 581, LOCATE_typing___AVarAssignExpr___after_typing
};
2526 struct WBT_
**closurevariable
= NULL
;
2527 trace
.prev
= tracehead
; tracehead
= &trace
;
2528 trace
.file
= LOCATE_typing
;
2529 /* Register variable[0]: Local variable */
2531 /* Register variable[1]: Local variable */
2532 variable
[1] = param0
;
2533 /* Register variable[2]: Method return value and escape marker */
2534 /* Register variable[3]: Result */
2535 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2536 /* Register variable[4]: Result */
2537 variable
[4] = CALL_syntax_base___AVarFormExpr___variable(variable
[0])(variable
[0]) /*AVarFormExpr::variable*/;
2538 CALL_control_flow___VariableContext___mark_is_set(variable
[3])(variable
[3], variable
[4]) /*VariableContext::mark_is_set*/;
2539 /* Register variable[3]: Local variable */
2540 /* Register variable[4]: Result */
2541 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2542 /* Register variable[5]: Result */
2543 variable
[5] = CALL_syntax_base___AVarFormExpr___variable(variable
[0])(variable
[0]) /*AVarFormExpr::variable*/;
2544 /* Register variable[4]: Result */
2545 variable
[4] = CALL_control_flow___VariableContext___stype(variable
[4])(variable
[4], variable
[5]) /*VariableContext::stype*/;
2546 variable
[3] = variable
[4];
2547 /* Register variable[4]: Local variable */
2548 /* Register variable[5]: Result */
2549 variable
[5] = CALL_typing___TypingVisitor___base_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::base_variable_ctx*/;
2550 /* Register variable[6]: Result */
2551 variable
[6] = CALL_syntax_base___AVarFormExpr___variable(variable
[0])(variable
[0]) /*AVarFormExpr::variable*/;
2552 /* Register variable[5]: Result */
2553 variable
[5] = CALL_control_flow___VariableContext___stype(variable
[5])(variable
[5], variable
[6]) /*VariableContext::stype*/;
2554 variable
[4] = variable
[5];
2555 /* Register variable[5]: Result */
2556 variable
[5] = CALL_parser_nodes___AAssignFormExpr___n_value(variable
[0])(variable
[0]) /*AAssignFormExpr::n_value*/;
2557 /* Register variable[5]: Result */
2558 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5], variable
[4] /*btype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
2559 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[5])))) { /*if*/
2560 goto return_label90
;
2562 /* Register variable[5]: Result */
2563 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2564 /* Register variable[6]: Result */
2565 variable
[6] = CALL_syntax_base___AVarFormExpr___variable(variable
[0])(variable
[0]) /*AVarFormExpr::variable*/;
2566 /* Register variable[7]: Result */
2567 variable
[7] = CALL_parser_nodes___AAssignFormExpr___n_value(variable
[0])(variable
[0]) /*AAssignFormExpr::n_value*/;
2568 /* Register variable[7]: Result */
2569 variable
[7] = CALL_syntax_base___PExpr___stype(variable
[7])(variable
[7]) /*PExpr::stype*/;
2570 CALL_control_flow___VariableContext___stype__eq(variable
[5])(variable
[5], variable
[6], variable
[7]) /*VariableContext::stype=*/;
2571 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
2572 return_label90
: while(false);
2573 tracehead
= trace
.prev
;
2576 val_t
typing___AReassignFormExpr___do_rvalue_typing(val_t self
, val_t param0
, val_t param1
) {
2577 struct trace_t trace
= {NULL
, NULL
, 598, LOCATE_typing___AReassignFormExpr___do_rvalue_typing
};
2578 static val_t once_value_92
= NIT_NULL
; /* Once value for string variable[7]*/
2579 static val_t once_value_93
= NIT_NULL
; /* Once value for string variable[7]*/
2580 static val_t once_value_94
= NIT_NULL
; /* Once value for string variable[7]*/
2582 struct WBT_
**closurevariable
= NULL
;
2583 trace
.prev
= tracehead
; tracehead
= &trace
;
2584 trace
.file
= LOCATE_typing
;
2585 /* Register variable[0]: Local variable */
2587 /* Register variable[1]: Local variable */
2588 variable
[1] = param0
;
2589 /* Register variable[2]: Local variable */
2590 variable
[2] = param1
;
2591 /* Register variable[3]: Method return value and escape marker */
2592 /* Register variable[4]: Result */
2593 variable
[4] = TAG_Bool(( variable
[2] /*type_lvalue*/ == NIT_NULL
/*null*/) || (( variable
[2] /*type_lvalue*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[2] /*type_lvalue*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[2] /*type_lvalue*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[2] /*type_lvalue*/)( variable
[2] /*type_lvalue*/, NIT_NULL
/*null*/) /*Object::==*/)))));
2594 if (UNTAG_Bool(variable
[4])) { /*if*/
2595 variable
[3] = NIT_NULL
/*null*/;
2596 goto return_label91
;
2598 /* Register variable[4]: Local variable */
2599 /* Register variable[5]: Result */
2600 variable
[5] = CALL_parser_nodes___AReassignFormExpr___n_assign_op(variable
[0])(variable
[0]) /*AReassignFormExpr::n_assign_op*/;
2601 /* Register variable[5]: Result */
2602 variable
[5] = CALL_typing___PAssignOp___method_name(variable
[5])(variable
[5]) /*PAssignOp::method_name*/;
2603 variable
[4] = variable
[5];
2604 /* Register variable[5]: Local variable */
2605 /* Register variable[6]: Result */
2606 variable
[6] = CALL_static_type___MMType___local_class( variable
[2] /*type_lvalue*/)( variable
[2] /*type_lvalue*/) /*MMType::local_class*/;
2607 variable
[5] = variable
[6];
2608 /* Register variable[6]: Result */
2609 variable
[6] = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name( variable
[5] /*lc*/)( variable
[5] /*lc*/, variable
[4] /*name*/) /*MMLocalClass::has_global_property_by_name*/;
2610 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[6])))) { /*if*/
2611 variable
[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2612 /* Register variable[7]: Once String constant */
2613 if (once_value_92
!= NIT_NULL
) variable
[7] = once_value_92
;
2615 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: Method '"), TAG_Int(15)) /*new String*/;
2616 once_value_92
= variable
[7];
2618 /* Register variable[7]: Result */
2619 /* Ensure var variable[7]: super-string element*/
2620 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[7]) /*AbstractArray::add*/;
2621 variable
[7] = variable
[4] /*name*/ /* Ensure var: super-string element*/;
2622 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/) /*AbstractArray::add*/;
2623 /* Register variable[7]: Once String constant */
2624 if (once_value_93
!= NIT_NULL
) variable
[7] = once_value_93
;
2626 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("' doesn't exists in "), TAG_Int(20)) /*new String*/;
2627 once_value_93
= variable
[7];
2629 /* Register variable[7]: Result */
2630 /* Ensure var variable[7]: super-string element*/
2631 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[7]) /*AbstractArray::add*/;
2632 variable
[7] = variable
[2] /*type_lvalue*/ /* Ensure var: super-string element*/;
2633 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/) /*AbstractArray::add*/;
2634 /* Register variable[7]: Once String constant */
2635 if (once_value_94
!= NIT_NULL
) variable
[7] = once_value_94
;
2637 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
2638 once_value_94
= variable
[7];
2640 /* Register variable[7]: Result */
2641 /* Ensure var variable[7]: super-string element*/
2642 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[7]) /*AbstractArray::add*/;
2643 /* Register variable[6]: Result */
2644 variable
[6] = CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/;
2645 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[6]) /*AbsSyntaxVisitor::error*/;
2646 variable
[3] = NIT_NULL
/*null*/;
2647 goto return_label91
;
2649 /* Register variable[6]: Local variable */
2650 /* Register variable[7]: Result */
2651 variable
[7] = CALL_abstractmetamodel___MMLocalClass___select_method( variable
[5] /*lc*/)( variable
[5] /*lc*/, variable
[4] /*name*/) /*MMLocalClass::select_method*/;
2652 variable
[6] = variable
[7];
2653 /* Register variable[7]: Result */
2654 variable
[7] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[6] /*prop*/)( variable
[6] /*prop*/) /*MMLocalProperty::global*/;
2655 /* Register variable[8]: Result */
2656 variable
[8] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
2657 CALL_syntax_base___MMGlobalProperty___check_visibility(variable
[7])(variable
[7], variable
[1] /*v*/, variable
[0], variable
[8], TAG_Bool(false)) /*MMGlobalProperty::check_visibility*/;
2658 /* Register variable[7]: Local variable */
2659 /* Register variable[8]: Result */
2660 variable
[8] = CALL_static_type___MMLocalProperty___signature_for( variable
[6] /*prop*/)( variable
[6] /*prop*/, variable
[2] /*type_lvalue*/) /*MMLocalProperty::signature_for*/;
2661 variable
[7] = variable
[8];
2662 ATTR_typing___AReassignFormExpr____assign_method(variable
[0]) /*AReassignFormExpr::_assign_method*/ = variable
[6] /*prop*/;
2663 /* Register variable[8]: Result */
2664 variable
[8] = CALL_parser_nodes___AReassignFormExpr___n_value(variable
[0])(variable
[0]) /*AReassignFormExpr::n_value*/;
2665 /* Register variable[9]: Result */
2666 variable
[9] = CALL_static_type___MMSignature_____bra( variable
[7] /*psig*/)( variable
[7] /*psig*/, TAG_Int(0)) /*MMSignature::[]*/;
2667 /* Register variable[9]: Result */
2668 variable
[9] = CALL_static_type___MMType___not_for_self(variable
[9])(variable
[9]) /*MMType::not_for_self*/;
2669 /* Register variable[8]: Result */
2670 variable
[8] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[8], variable
[9]) /*AbsSyntaxVisitor::check_conform_expr*/;
2671 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[8])))) { /*if*/
2672 variable
[3] = NIT_NULL
/*null*/;
2673 goto return_label91
;
2675 /* Register variable[8]: Result */
2676 variable
[8] = CALL_static_type___MMSignature___return_type( variable
[7] /*psig*/)( variable
[7] /*psig*/) /*MMSignature::return_type*/;
2677 /* Register variable[8]: Result */
2678 variable
[8] = CALL_static_type___MMType___not_for_self(variable
[8])(variable
[8]) /*MMType::not_for_self*/;
2679 variable
[3] = variable
[8];
2680 goto return_label91
;
2681 return_label91
: while(false);
2682 tracehead
= trace
.prev
;
2685 val_t
typing___AReassignFormExpr___assign_method(val_t self
) {
2686 struct trace_t trace
= {NULL
, NULL
, 620, LOCATE_typing___AReassignFormExpr___assign_method
};
2687 val_t
*variable
= NULL
;
2688 struct WBT_
**closurevariable
= NULL
;
2689 trace
.prev
= tracehead
; tracehead
= &trace
;
2690 trace
.file
= LOCATE_typing
;
2691 tracehead
= trace
.prev
;
2692 return ATTR_typing___AReassignFormExpr____assign_method( self
) /*AReassignFormExpr::_assign_method*/;
2694 void typing___AVarReassignExpr___after_typing(val_t self
, val_t param0
) {
2695 struct trace_t trace
= {NULL
, NULL
, 625, LOCATE_typing___AVarReassignExpr___after_typing
};
2697 struct WBT_
**closurevariable
= NULL
;
2698 trace
.prev
= tracehead
; tracehead
= &trace
;
2699 trace
.file
= LOCATE_typing
;
2700 /* Register variable[0]: Local variable */
2702 /* Register variable[1]: Local variable */
2703 variable
[1] = param0
;
2704 /* Register variable[2]: Method return value and escape marker */
2705 /* Register variable[3]: Result */
2706 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2707 /* Register variable[4]: Result */
2708 variable
[4] = CALL_syntax_base___AVarFormExpr___variable(variable
[0])(variable
[0]) /*AVarFormExpr::variable*/;
2709 CALL_control_flow___VariableContext___check_is_set(variable
[3])(variable
[3], variable
[0], variable
[4]) /*VariableContext::check_is_set*/;
2710 /* Register variable[3]: Result */
2711 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2712 /* Register variable[4]: Result */
2713 variable
[4] = CALL_syntax_base___AVarFormExpr___variable(variable
[0])(variable
[0]) /*AVarFormExpr::variable*/;
2714 CALL_control_flow___VariableContext___mark_is_set(variable
[3])(variable
[3], variable
[4]) /*VariableContext::mark_is_set*/;
2715 /* Register variable[3]: Local variable */
2716 /* Register variable[4]: Result */
2717 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2718 /* Register variable[5]: Result */
2719 variable
[5] = CALL_syntax_base___AVarFormExpr___variable(variable
[0])(variable
[0]) /*AVarFormExpr::variable*/;
2720 /* Register variable[4]: Result */
2721 variable
[4] = CALL_control_flow___VariableContext___stype(variable
[4])(variable
[4], variable
[5]) /*VariableContext::stype*/;
2722 variable
[3] = variable
[4];
2723 /* Register variable[4]: Local variable */
2724 /* Register variable[5]: Result */
2725 variable
[5] = CALL_typing___AReassignFormExpr___do_rvalue_typing(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[3] /*t*/) /*AReassignFormExpr::do_rvalue_typing*/;
2726 variable
[4] = variable
[5];
2727 /* Register variable[5]: Result */
2728 variable
[5] = TAG_Bool(( variable
[4] /*t2*/ == NIT_NULL
/*null*/) || (( variable
[4] /*t2*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*t2*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*t2*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*t2*/)( variable
[4] /*t2*/, NIT_NULL
/*null*/) /*Object::==*/)))));
2729 if (UNTAG_Bool(variable
[5])) { /*if*/
2730 goto return_label95
;
2732 /* Register variable[5]: Local variable */
2733 /* Register variable[6]: Result */
2734 variable
[6] = CALL_typing___TypingVisitor___base_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::base_variable_ctx*/;
2735 /* Register variable[7]: Result */
2736 variable
[7] = CALL_syntax_base___AVarFormExpr___variable(variable
[0])(variable
[0]) /*AVarFormExpr::variable*/;
2737 /* Register variable[6]: Result */
2738 variable
[6] = CALL_control_flow___VariableContext___stype(variable
[6])(variable
[6], variable
[7]) /*VariableContext::stype*/;
2739 variable
[5] = variable
[6];
2740 /* Register variable[6]: Result */
2741 variable
[6] = CALL_parser_nodes___AReassignFormExpr___n_value(variable
[0])(variable
[0]) /*AReassignFormExpr::n_value*/;
2742 /* Register variable[6]: Result */
2743 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___check_conform( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[4] /*t2*/, variable
[5] /*btype*/) /*AbsSyntaxVisitor::check_conform*/;
2744 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[6])))) { /*if*/
2745 goto return_label95
;
2747 /* Register variable[6]: Result */
2748 variable
[6] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2749 /* Register variable[7]: Result */
2750 variable
[7] = CALL_syntax_base___AVarFormExpr___variable(variable
[0])(variable
[0]) /*AVarFormExpr::variable*/;
2751 CALL_control_flow___VariableContext___stype__eq(variable
[6])(variable
[6], variable
[7], variable
[4] /*t2*/) /*VariableContext::stype=*/;
2752 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
2753 return_label95
: while(false);
2754 tracehead
= trace
.prev
;
2757 val_t
typing___PAssignOp___method_name(val_t self
) {
2758 struct trace_t trace
= {NULL
, NULL
, 645, LOCATE_typing___PAssignOp___method_name
};
2759 val_t
*variable
= NULL
;
2760 struct WBT_
**closurevariable
= NULL
;
2761 trace
.prev
= tracehead
; tracehead
= &trace
;
2762 trace
.file
= LOCATE_typing
;
2763 fprintf(stderr
, "Deferred method called");
2764 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 645);
2766 tracehead
= trace
.prev
;
2769 val_t
typing___APlusAssignOp___method_name(val_t self
) {
2770 struct trace_t trace
= {NULL
, NULL
, 648, LOCATE_typing___APlusAssignOp___method_name
};
2771 static val_t once_value_97
; static int once_bool_97
; /* Once value for variable[2]*/
2772 static val_t once_value_98
= NIT_NULL
; /* Once value for string variable[2]*/
2774 struct WBT_
**closurevariable
= NULL
;
2775 trace
.prev
= tracehead
; tracehead
= &trace
;
2776 trace
.file
= LOCATE_typing
;
2777 /* Register variable[0]: Local variable */
2779 /* Register variable[1]: Method return value and escape marker */
2780 /* Register variable[2]: Once expression result */
2781 if (once_bool_97
) variable
[2] = once_value_97
;
2783 /* Register variable[2]: Once String constant */
2784 if (once_value_98
!= NIT_NULL
) variable
[2] = once_value_98
;
2786 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)) /*new String*/;
2787 once_value_98
= variable
[2];
2789 /* Register variable[2]: Result */
2790 /* Register variable[2]: Result */
2791 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
2792 once_value_97
= variable
[2];
2793 once_bool_97
= true;
2795 /* Register variable[2]: Result */
2796 variable
[1] = variable
[2];
2797 goto return_label96
;
2798 return_label96
: while(false);
2799 tracehead
= trace
.prev
;
2802 val_t
typing___AMinusAssignOp___method_name(val_t self
) {
2803 struct trace_t trace
= {NULL
, NULL
, 651, LOCATE_typing___AMinusAssignOp___method_name
};
2804 static val_t once_value_100
; static int once_bool_100
; /* Once value for variable[2]*/
2805 static val_t once_value_101
= NIT_NULL
; /* Once value for string variable[2]*/
2807 struct WBT_
**closurevariable
= NULL
;
2808 trace
.prev
= tracehead
; tracehead
= &trace
;
2809 trace
.file
= LOCATE_typing
;
2810 /* Register variable[0]: Local variable */
2812 /* Register variable[1]: Method return value and escape marker */
2813 /* Register variable[2]: Once expression result */
2814 if (once_bool_100
) variable
[2] = once_value_100
;
2816 /* Register variable[2]: Once String constant */
2817 if (once_value_101
!= NIT_NULL
) variable
[2] = once_value_101
;
2819 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)) /*new String*/;
2820 once_value_101
= variable
[2];
2822 /* Register variable[2]: Result */
2823 /* Register variable[2]: Result */
2824 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
2825 once_value_100
= variable
[2];
2826 once_bool_100
= true;
2828 /* Register variable[2]: Result */
2829 variable
[1] = variable
[2];
2830 goto return_label99
;
2831 return_label99
: while(false);
2832 tracehead
= trace
.prev
;
2835 void typing___ASelfExpr___after_typing(val_t self
, val_t param0
) {
2836 struct trace_t trace
= {NULL
, NULL
, 657, LOCATE_typing___ASelfExpr___after_typing
};
2838 struct WBT_
**closurevariable
= NULL
;
2839 trace
.prev
= tracehead
; tracehead
= &trace
;
2840 trace
.file
= LOCATE_typing
;
2841 /* Register variable[0]: Local variable */
2843 /* Register variable[1]: Local variable */
2844 variable
[1] = param0
;
2845 /* Register variable[2]: Method return value and escape marker */
2846 /* Register variable[3]: Result */
2847 variable
[3] = CALL_typing___TypingVisitor___self_var( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::self_var*/;
2848 CALL_syntax_base___ASelfExpr___variable__eq(variable
[0])(variable
[0], variable
[3]) /*ASelfExpr::variable=*/;
2849 /* Register variable[3]: Result */
2850 variable
[3] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2851 /* Register variable[4]: Result */
2852 variable
[4] = CALL_syntax_base___ASelfExpr___variable(variable
[0])(variable
[0]) /*ASelfExpr::variable*/;
2853 /* Register variable[3]: Result */
2854 variable
[3] = CALL_control_flow___VariableContext___stype(variable
[3])(variable
[3], variable
[4]) /*VariableContext::stype*/;
2855 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
2856 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
2857 return_label102
: while(false);
2858 tracehead
= trace
.prev
;
2861 val_t
typing___ASelfExpr___is_self(val_t self
) {
2862 struct trace_t trace
= {NULL
, NULL
, 664, LOCATE_typing___ASelfExpr___is_self
};
2864 struct WBT_
**closurevariable
= NULL
;
2865 trace
.prev
= tracehead
; tracehead
= &trace
;
2866 trace
.file
= LOCATE_typing
;
2867 /* Register variable[0]: Local variable */
2869 /* Register variable[1]: Method return value and escape marker */
2870 variable
[1] = TAG_Bool(true);
2871 goto return_label103
;
2872 return_label103
: while(false);
2873 tracehead
= trace
.prev
;
2876 val_t
typing___ASelfExpr___its_variable(val_t self
) {
2877 struct trace_t trace
= {NULL
, NULL
, 655, LOCATE_typing___ASelfExpr___its_variable
};
2879 struct WBT_
**closurevariable
= NULL
;
2880 trace
.prev
= tracehead
; tracehead
= &trace
;
2881 trace
.file
= LOCATE_typing
;
2882 /* Register variable[0]: Local variable */
2884 /* Register variable[1]: Method return value and escape marker */
2885 /* Register variable[2]: Result */
2886 variable
[2] = CALL_syntax_base___ASelfExpr___variable(variable
[0])(variable
[0]) /*ASelfExpr::variable*/;
2887 variable
[1] = variable
[2];
2888 goto return_label104
;
2889 return_label104
: while(false);
2890 tracehead
= trace
.prev
;
2893 val_t
typing___AImplicitSelfExpr___is_implicit_self(val_t self
) {
2894 struct trace_t trace
= {NULL
, NULL
, 668, LOCATE_typing___AImplicitSelfExpr___is_implicit_self
};
2896 struct WBT_
**closurevariable
= NULL
;
2897 trace
.prev
= tracehead
; tracehead
= &trace
;
2898 trace
.file
= LOCATE_typing
;
2899 /* Register variable[0]: Local variable */
2901 /* Register variable[1]: Method return value and escape marker */
2902 variable
[1] = TAG_Bool(true);
2903 goto return_label105
;
2904 return_label105
: while(false);
2905 tracehead
= trace
.prev
;
2908 void typing___AIfexprExpr___accept_typing(val_t self
, val_t param0
) {
2909 struct trace_t trace
= {NULL
, NULL
, 672, LOCATE_typing___AIfexprExpr___accept_typing
};
2911 struct WBT_
**closurevariable
= NULL
;
2912 trace
.prev
= tracehead
; tracehead
= &trace
;
2913 trace
.file
= LOCATE_typing
;
2914 /* Register variable[0]: Local variable */
2916 /* Register variable[1]: Local variable */
2917 variable
[1] = param0
;
2918 /* Register variable[2]: Method return value and escape marker */
2919 /* Register variable[3]: Local variable */
2920 /* Register variable[4]: Result */
2921 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2922 variable
[3] = variable
[4];
2923 /* Register variable[4]: Result */
2924 variable
[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable
[0])(variable
[0]) /*AIfexprExpr::n_expr*/;
2925 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
2926 /* Register variable[4]: Result */
2927 variable
[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable
[0])(variable
[0]) /*AIfexprExpr::n_expr*/;
2928 CALL_typing___TypingVisitor___use_if_true_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::use_if_true_variable_ctx*/;
2929 /* Register variable[4]: Result */
2930 variable
[4] = CALL_parser_nodes___AIfexprExpr___n_then(variable
[0])(variable
[0]) /*AIfexprExpr::n_then*/;
2931 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
2932 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
2933 /* Register variable[4]: Result */
2934 variable
[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable
[0])(variable
[0]) /*AIfexprExpr::n_expr*/;
2935 CALL_typing___TypingVisitor___use_if_false_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::use_if_false_variable_ctx*/;
2936 /* Register variable[4]: Result */
2937 variable
[4] = CALL_parser_nodes___AIfexprExpr___n_else(variable
[0])(variable
[0]) /*AIfexprExpr::n_else*/;
2938 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
2939 /* Register variable[4]: Result */
2940 variable
[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable
[0])(variable
[0]) /*AIfexprExpr::n_expr*/;
2941 /* Register variable[5]: Result */
2942 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
2943 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
2944 variable
[4] = NEW_Array_array___Array___with_capacity(TAG_Int(2)) /*new Array[PExpr]*/ /* Ensure var: Literal array*/;
2945 /* Register variable[5]: Result */
2946 variable
[5] = CALL_parser_nodes___AIfexprExpr___n_then(variable
[0])(variable
[0]) /*AIfexprExpr::n_then*/;
2947 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
2948 /* Register variable[6]: Result */
2949 variable
[6] = CALL_parser_nodes___AIfexprExpr___n_else(variable
[0])(variable
[0]) /*AIfexprExpr::n_else*/;
2950 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[6]) /*AbstractArray::add*/;
2951 /* Register variable[4]: Result */
2952 /* Register variable[4]: Result */
2953 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_multiexpr( variable
[1] /*v*/)( variable
[1] /*v*/, NIT_NULL
/*null*/, variable
[4]) /*AbsSyntaxVisitor::check_conform_multiexpr*/;
2954 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[4];
2955 /* Register variable[4]: Result */
2956 variable
[4] = ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/;
2957 /* Register variable[4]: Result */
2958 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
2959 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = variable
[4];
2960 return_label106
: while(false);
2961 tracehead
= trace
.prev
;
2964 void typing___ABoolExpr___after_typing(val_t self
, val_t param0
) {
2965 struct trace_t trace
= {NULL
, NULL
, 691, LOCATE_typing___ABoolExpr___after_typing
};
2967 struct WBT_
**closurevariable
= NULL
;
2968 trace
.prev
= tracehead
; tracehead
= &trace
;
2969 trace
.file
= LOCATE_typing
;
2970 /* Register variable[0]: Local variable */
2972 /* Register variable[1]: Local variable */
2973 variable
[1] = param0
;
2974 /* Register variable[2]: Method return value and escape marker */
2975 /* Register variable[3]: Result */
2976 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
2977 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
2978 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
2979 return_label107
: while(false);
2980 tracehead
= trace
.prev
;
2983 void typing___AOrExpr___accept_typing(val_t self
, val_t param0
) {
2984 struct trace_t trace
= {NULL
, NULL
, 699, LOCATE_typing___AOrExpr___accept_typing
};
2986 struct WBT_
**closurevariable
= NULL
;
2987 trace
.prev
= tracehead
; tracehead
= &trace
;
2988 trace
.file
= LOCATE_typing
;
2989 /* Register variable[0]: Local variable */
2991 /* Register variable[1]: Local variable */
2992 variable
[1] = param0
;
2993 /* Register variable[2]: Method return value and escape marker */
2994 /* Register variable[3]: Local variable */
2995 /* Register variable[4]: Result */
2996 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
2997 variable
[3] = variable
[4];
2998 /* Register variable[4]: Result */
2999 variable
[4] = CALL_parser_nodes___AOrExpr___n_expr(variable
[0])(variable
[0]) /*AOrExpr::n_expr*/;
3000 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
3001 /* Register variable[4]: Result */
3002 variable
[4] = CALL_parser_nodes___AOrExpr___n_expr(variable
[0])(variable
[0]) /*AOrExpr::n_expr*/;
3003 CALL_typing___TypingVisitor___use_if_false_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::use_if_false_variable_ctx*/;
3004 /* Register variable[4]: Result */
3005 variable
[4] = CALL_parser_nodes___AOrExpr___n_expr2(variable
[0])(variable
[0]) /*AOrExpr::n_expr2*/;
3006 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
3007 /* Register variable[4]: Result */
3008 variable
[4] = CALL_parser_nodes___AOrExpr___n_expr2(variable
[0])(variable
[0]) /*AOrExpr::n_expr2*/;
3009 /* Register variable[4]: Result */
3010 variable
[4] = CALL_typing___PExpr___if_false_variable_ctx(variable
[4])(variable
[4]) /*PExpr::if_false_variable_ctx*/;
3011 /* Register variable[4]: Result */
3012 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
3013 if (UNTAG_Bool(variable
[4])) { /*if*/
3014 /* Register variable[4]: Result */
3015 variable
[4] = CALL_parser_nodes___AOrExpr___n_expr2(variable
[0])(variable
[0]) /*AOrExpr::n_expr2*/;
3016 /* Register variable[4]: Result */
3017 variable
[4] = CALL_typing___PExpr___if_false_variable_ctx(variable
[4])(variable
[4]) /*PExpr::if_false_variable_ctx*/;
3018 ATTR_typing___PExpr____if_false_variable_ctx(variable
[0]) /*PExpr::_if_false_variable_ctx*/ = variable
[4];
3020 /* Register variable[4]: Result */
3021 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
3022 ATTR_typing___PExpr____if_false_variable_ctx(variable
[0]) /*PExpr::_if_false_variable_ctx*/ = variable
[4];
3024 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
3025 /* Register variable[4]: Result */
3026 variable
[4] = CALL_parser_nodes___AOrExpr___n_expr(variable
[0])(variable
[0]) /*AOrExpr::n_expr*/;
3027 /* Register variable[5]: Result */
3028 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
3029 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
3030 /* Register variable[4]: Result */
3031 variable
[4] = CALL_parser_nodes___AOrExpr___n_expr2(variable
[0])(variable
[0]) /*AOrExpr::n_expr2*/;
3032 /* Register variable[5]: Result */
3033 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
3034 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
3035 /* Register variable[4]: Result */
3036 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
3037 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[4];
3038 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
3039 return_label108
: while(false);
3040 tracehead
= trace
.prev
;
3043 void typing___AAndExpr___accept_typing(val_t self
, val_t param0
) {
3044 struct trace_t trace
= {NULL
, NULL
, 723, LOCATE_typing___AAndExpr___accept_typing
};
3046 struct WBT_
**closurevariable
= NULL
;
3047 trace
.prev
= tracehead
; tracehead
= &trace
;
3048 trace
.file
= LOCATE_typing
;
3049 /* Register variable[0]: Local variable */
3051 /* Register variable[1]: Local variable */
3052 variable
[1] = param0
;
3053 /* Register variable[2]: Method return value and escape marker */
3054 /* Register variable[3]: Local variable */
3055 /* Register variable[4]: Result */
3056 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
3057 variable
[3] = variable
[4];
3058 /* Register variable[4]: Result */
3059 variable
[4] = CALL_parser_nodes___AAndExpr___n_expr(variable
[0])(variable
[0]) /*AAndExpr::n_expr*/;
3060 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
3061 /* Register variable[4]: Result */
3062 variable
[4] = CALL_parser_nodes___AAndExpr___n_expr(variable
[0])(variable
[0]) /*AAndExpr::n_expr*/;
3063 CALL_typing___TypingVisitor___use_if_true_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::use_if_true_variable_ctx*/;
3064 /* Register variable[4]: Result */
3065 variable
[4] = CALL_parser_nodes___AAndExpr___n_expr2(variable
[0])(variable
[0]) /*AAndExpr::n_expr2*/;
3066 CALL_parser_prod___Visitor___visit( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4]) /*TypingVisitor::visit*/;
3067 /* Register variable[4]: Result */
3068 variable
[4] = CALL_parser_nodes___AAndExpr___n_expr2(variable
[0])(variable
[0]) /*AAndExpr::n_expr2*/;
3069 /* Register variable[4]: Result */
3070 variable
[4] = CALL_typing___PExpr___if_true_variable_ctx(variable
[4])(variable
[4]) /*PExpr::if_true_variable_ctx*/;
3071 /* Register variable[4]: Result */
3072 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
3073 if (UNTAG_Bool(variable
[4])) { /*if*/
3074 /* Register variable[4]: Result */
3075 variable
[4] = CALL_parser_nodes___AAndExpr___n_expr2(variable
[0])(variable
[0]) /*AAndExpr::n_expr2*/;
3076 /* Register variable[4]: Result */
3077 variable
[4] = CALL_typing___PExpr___if_true_variable_ctx(variable
[4])(variable
[4]) /*PExpr::if_true_variable_ctx*/;
3078 ATTR_typing___PExpr____if_true_variable_ctx(variable
[0]) /*PExpr::_if_true_variable_ctx*/ = variable
[4];
3080 /* Register variable[4]: Result */
3081 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
3082 ATTR_typing___PExpr____if_true_variable_ctx(variable
[0]) /*PExpr::_if_true_variable_ctx*/ = variable
[4];
3084 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
3085 /* Register variable[4]: Result */
3086 variable
[4] = CALL_parser_nodes___AAndExpr___n_expr(variable
[0])(variable
[0]) /*AAndExpr::n_expr*/;
3087 /* Register variable[5]: Result */
3088 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
3089 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
3090 /* Register variable[4]: Result */
3091 variable
[4] = CALL_parser_nodes___AAndExpr___n_expr2(variable
[0])(variable
[0]) /*AAndExpr::n_expr2*/;
3092 /* Register variable[5]: Result */
3093 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
3094 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
3095 /* Register variable[4]: Result */
3096 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
3097 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[4];
3098 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
3099 return_label109
: while(false);
3100 tracehead
= trace
.prev
;
3103 void typing___ANotExpr___after_typing(val_t self
, val_t param0
) {
3104 struct trace_t trace
= {NULL
, NULL
, 747, LOCATE_typing___ANotExpr___after_typing
};
3106 struct WBT_
**closurevariable
= NULL
;
3107 trace
.prev
= tracehead
; tracehead
= &trace
;
3108 trace
.file
= LOCATE_typing
;
3109 /* Register variable[0]: Local variable */
3111 /* Register variable[1]: Local variable */
3112 variable
[1] = param0
;
3113 /* Register variable[2]: Method return value and escape marker */
3114 /* Register variable[3]: Result */
3115 variable
[3] = CALL_parser_nodes___ANotExpr___n_expr(variable
[0])(variable
[0]) /*ANotExpr::n_expr*/;
3116 /* Register variable[4]: Result */
3117 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
3118 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
3119 /* Register variable[3]: Result */
3120 variable
[3] = CALL_parser_nodes___ANotExpr___n_expr(variable
[0])(variable
[0]) /*ANotExpr::n_expr*/;
3121 /* Register variable[3]: Result */
3122 variable
[3] = ATTR_typing___PExpr____if_true_variable_ctx(variable
[3]) /*PExpr::_if_true_variable_ctx*/;
3123 ATTR_typing___PExpr____if_false_variable_ctx(variable
[0]) /*PExpr::_if_false_variable_ctx*/ = variable
[3];
3124 /* Register variable[3]: Result */
3125 variable
[3] = CALL_parser_nodes___ANotExpr___n_expr(variable
[0])(variable
[0]) /*ANotExpr::n_expr*/;
3126 /* Register variable[3]: Result */
3127 variable
[3] = ATTR_typing___PExpr____if_false_variable_ctx(variable
[3]) /*PExpr::_if_false_variable_ctx*/;
3128 ATTR_typing___PExpr____if_true_variable_ctx(variable
[0]) /*PExpr::_if_true_variable_ctx*/ = variable
[3];
3129 /* Register variable[3]: Result */
3130 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
3131 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
3132 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
3133 return_label110
: while(false);
3134 tracehead
= trace
.prev
;
3137 void typing___AIntExpr___after_typing(val_t self
, val_t param0
) {
3138 struct trace_t trace
= {NULL
, NULL
, 761, LOCATE_typing___AIntExpr___after_typing
};
3140 struct WBT_
**closurevariable
= NULL
;
3141 trace
.prev
= tracehead
; tracehead
= &trace
;
3142 trace
.file
= LOCATE_typing
;
3143 /* Register variable[0]: Local variable */
3145 /* Register variable[1]: Local variable */
3146 variable
[1] = param0
;
3147 /* Register variable[2]: Method return value and escape marker */
3148 /* Register variable[3]: Result */
3149 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_int( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_int*/;
3150 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
3151 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
3152 return_label111
: while(false);
3153 tracehead
= trace
.prev
;
3156 void typing___AFloatExpr___after_typing(val_t self
, val_t param0
) {
3157 struct trace_t trace
= {NULL
, NULL
, 769, LOCATE_typing___AFloatExpr___after_typing
};
3159 struct WBT_
**closurevariable
= NULL
;
3160 trace
.prev
= tracehead
; tracehead
= &trace
;
3161 trace
.file
= LOCATE_typing
;
3162 /* Register variable[0]: Local variable */
3164 /* Register variable[1]: Local variable */
3165 variable
[1] = param0
;
3166 /* Register variable[2]: Method return value and escape marker */
3167 /* Register variable[3]: Result */
3168 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_float( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_float*/;
3169 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
3170 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
3171 return_label112
: while(false);
3172 tracehead
= trace
.prev
;
3175 void typing___ACharExpr___after_typing(val_t self
, val_t param0
) {
3176 struct trace_t trace
= {NULL
, NULL
, 777, LOCATE_typing___ACharExpr___after_typing
};
3178 struct WBT_
**closurevariable
= NULL
;
3179 trace
.prev
= tracehead
; tracehead
= &trace
;
3180 trace
.file
= LOCATE_typing
;
3181 /* Register variable[0]: Local variable */
3183 /* Register variable[1]: Local variable */
3184 variable
[1] = param0
;
3185 /* Register variable[2]: Method return value and escape marker */
3186 /* Register variable[3]: Result */
3187 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_char( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_char*/;
3188 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
3189 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
3190 return_label113
: while(false);
3191 tracehead
= trace
.prev
;
3194 void typing___AStringFormExpr___after_typing(val_t self
, val_t param0
) {
3195 struct trace_t trace
= {NULL
, NULL
, 786, LOCATE_typing___AStringFormExpr___after_typing
};
3196 static val_t once_value_115
; static int once_bool_115
; /* Once value for variable[4]*/
3197 static val_t once_value_116
= NIT_NULL
; /* Once value for string variable[4]*/
3198 static val_t once_value_117
= NIT_NULL
; /* Once value for string variable[4]*/
3199 static val_t once_value_118
= NIT_NULL
; /* Once value for string variable[4]*/
3201 struct WBT_
**closurevariable
= NULL
;
3202 trace
.prev
= tracehead
; tracehead
= &trace
;
3203 trace
.file
= LOCATE_typing
;
3204 /* Register variable[0]: Local variable */
3206 /* Register variable[1]: Local variable */
3207 variable
[1] = param0
;
3208 /* Register variable[2]: Method return value and escape marker */
3209 /* Register variable[3]: Result */
3210 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_string( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_string*/;
3211 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
3212 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
3213 /* Register variable[3]: Result */
3214 variable
[3] = ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/;
3215 /* Register variable[3]: Result */
3216 variable
[3] = CALL_static_type___MMType___local_class(variable
[3])(variable
[3]) /*MMType::local_class*/;
3217 /* Register variable[4]: Once expression result */
3218 if (once_bool_115
) variable
[4] = once_value_115
;
3220 /* Register variable[4]: Once String constant */
3221 if (once_value_116
!= NIT_NULL
) variable
[4] = once_value_116
;
3223 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("with_native"), TAG_Int(11)) /*new String*/;
3224 once_value_116
= variable
[4];
3226 /* Register variable[4]: Result */
3227 /* Register variable[4]: Result */
3228 variable
[4] = CALL_symbol___String___to_symbol(variable
[4])(variable
[4]) /*String::to_symbol*/;
3229 once_value_115
= variable
[4];
3230 once_bool_115
= true;
3232 /* Register variable[4]: Result */
3233 /* Register variable[3]: Result */
3234 variable
[3] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[3])(variable
[3], variable
[4]) /*MMLocalClass::select_method*/;
3235 ATTR_typing___AStringFormExpr____meth_with_native(variable
[0]) /*AStringFormExpr::_meth_with_native*/ = variable
[3];
3236 /* Register variable[3]: Result */
3237 variable
[3] = ATTR_typing___AStringFormExpr____meth_with_native(variable
[0]) /*AStringFormExpr::_meth_with_native*/;
3238 /* Register variable[3]: Result */
3239 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
3240 if (UNTAG_Bool(variable
[3])) { /*if*/
3241 variable
[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3242 /* Register variable[4]: Once String constant */
3243 if (once_value_117
!= NIT_NULL
) variable
[4] = once_value_117
;
3245 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
3246 once_value_117
= variable
[4];
3248 /* Register variable[4]: Result */
3249 /* Ensure var variable[4]: super-string element*/
3250 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
3251 /* Register variable[4]: Result */
3252 variable
[4] = ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/;
3253 /* Ensure var variable[4]: super-string element*/
3254 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/) /*AbstractArray::add*/;
3255 /* Register variable[4]: Once String constant */
3256 if (once_value_118
!= NIT_NULL
) variable
[4] = once_value_118
;
3258 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have a with_native method."), TAG_Int(32)) /*new String*/;
3259 once_value_118
= variable
[4];
3261 /* Register variable[4]: Result */
3262 /* Ensure var variable[4]: super-string element*/
3263 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
3264 /* Register variable[3]: Result */
3265 variable
[3] = CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/;
3266 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[3]) /*AbsSyntaxVisitor::error*/;
3268 return_label114
: while(false);
3269 tracehead
= trace
.prev
;
3272 val_t
typing___AStringFormExpr___meth_with_native(val_t self
) {
3273 struct trace_t trace
= {NULL
, NULL
, 785, LOCATE_typing___AStringFormExpr___meth_with_native
};
3274 val_t
*variable
= NULL
;
3275 struct WBT_
**closurevariable
= NULL
;
3276 trace
.prev
= tracehead
; tracehead
= &trace
;
3277 trace
.file
= LOCATE_typing
;
3278 tracehead
= trace
.prev
;
3279 return ATTR_typing___AStringFormExpr____meth_with_native( self
) /*AStringFormExpr::_meth_with_native*/;
3281 void typing___ASuperstringExpr___after_typing(val_t self
, val_t param0
) {
3282 struct trace_t trace
= {NULL
, NULL
, 800, LOCATE_typing___ASuperstringExpr___after_typing
};
3283 static val_t once_value_120
; static int once_bool_120
; /* Once value for variable[4]*/
3284 static val_t once_value_121
= NIT_NULL
; /* Once value for string variable[4]*/
3285 static val_t once_value_122
= NIT_NULL
; /* Once value for string variable[4]*/
3286 static val_t once_value_123
= NIT_NULL
; /* Once value for string variable[4]*/
3287 static val_t once_value_124
; static int once_bool_124
; /* Once value for variable[4]*/
3288 static val_t once_value_125
= NIT_NULL
; /* Once value for string variable[4]*/
3289 static val_t once_value_126
= NIT_NULL
; /* Once value for string variable[4]*/
3290 static val_t once_value_127
= NIT_NULL
; /* Once value for string variable[4]*/
3291 static val_t once_value_128
; static int once_bool_128
; /* Once value for variable[4]*/
3292 static val_t once_value_129
= NIT_NULL
; /* Once value for string variable[4]*/
3293 static val_t once_value_130
= NIT_NULL
; /* Once value for string variable[3]*/
3295 struct WBT_
**closurevariable
= NULL
;
3296 trace
.prev
= tracehead
; tracehead
= &trace
;
3297 trace
.file
= LOCATE_typing
;
3298 /* Register variable[0]: Local variable */
3300 /* Register variable[1]: Local variable */
3301 variable
[1] = param0
;
3302 /* Register variable[2]: Method return value and escape marker */
3303 /* Register variable[3]: Result */
3304 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_string( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_string*/;
3305 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
3306 /* Register variable[3]: Result */
3307 variable
[3] = ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/;
3308 /* Register variable[3]: Result */
3309 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_array( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*AbsSyntaxVisitor::type_array*/;
3310 ATTR_typing___ASuperstringExpr____atype(variable
[0]) /*ASuperstringExpr::_atype*/ = variable
[3];
3311 /* Register variable[3]: Result */
3312 variable
[3] = ATTR_typing___ASuperstringExpr____atype(variable
[0]) /*ASuperstringExpr::_atype*/;
3313 /* Register variable[3]: Result */
3314 variable
[3] = CALL_static_type___MMType___local_class(variable
[3])(variable
[3]) /*MMType::local_class*/;
3315 /* Register variable[4]: Once expression result */
3316 if (once_bool_120
) variable
[4] = once_value_120
;
3318 /* Register variable[4]: Once String constant */
3319 if (once_value_121
!= NIT_NULL
) variable
[4] = once_value_121
;
3321 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("with_capacity"), TAG_Int(13)) /*new String*/;
3322 once_value_121
= variable
[4];
3324 /* Register variable[4]: Result */
3325 /* Register variable[4]: Result */
3326 variable
[4] = CALL_symbol___String___to_symbol(variable
[4])(variable
[4]) /*String::to_symbol*/;
3327 once_value_120
= variable
[4];
3328 once_bool_120
= true;
3330 /* Register variable[4]: Result */
3331 /* Register variable[3]: Result */
3332 variable
[3] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[3])(variable
[3], variable
[4]) /*MMLocalClass::select_method*/;
3333 ATTR_typing___ASuperstringExpr____meth_with_capacity(variable
[0]) /*ASuperstringExpr::_meth_with_capacity*/ = variable
[3];
3334 /* Register variable[3]: Result */
3335 variable
[3] = ATTR_typing___ASuperstringExpr____meth_with_capacity(variable
[0]) /*ASuperstringExpr::_meth_with_capacity*/;
3336 /* Register variable[3]: Result */
3337 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
3338 if (UNTAG_Bool(variable
[3])) { /*if*/
3339 variable
[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3340 /* Register variable[4]: Once String constant */
3341 if (once_value_122
!= NIT_NULL
) variable
[4] = once_value_122
;
3343 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
3344 once_value_122
= variable
[4];
3346 /* Register variable[4]: Result */
3347 /* Ensure var variable[4]: super-string element*/
3348 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
3349 /* Register variable[4]: Result */
3350 variable
[4] = ATTR_typing___ASuperstringExpr____atype(variable
[0]) /*ASuperstringExpr::_atype*/;
3351 /* Ensure var variable[4]: super-string element*/
3352 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/) /*AbstractArray::add*/;
3353 /* Register variable[4]: Once String constant */
3354 if (once_value_123
!= NIT_NULL
) variable
[4] = once_value_123
;
3356 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have a with_capacity method."), TAG_Int(34)) /*new String*/;
3357 once_value_123
= variable
[4];
3359 /* Register variable[4]: Result */
3360 /* Ensure var variable[4]: super-string element*/
3361 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
3362 /* Register variable[3]: Result */
3363 variable
[3] = CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/;
3364 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[3]) /*AbsSyntaxVisitor::error*/;
3366 /* Register variable[3]: Result */
3367 variable
[3] = ATTR_typing___ASuperstringExpr____atype(variable
[0]) /*ASuperstringExpr::_atype*/;
3368 /* Register variable[3]: Result */
3369 variable
[3] = CALL_static_type___MMType___local_class(variable
[3])(variable
[3]) /*MMType::local_class*/;
3370 /* Register variable[4]: Once expression result */
3371 if (once_bool_124
) variable
[4] = once_value_124
;
3373 /* Register variable[4]: Once String constant */
3374 if (once_value_125
!= NIT_NULL
) variable
[4] = once_value_125
;
3376 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("add"), TAG_Int(3)) /*new String*/;
3377 once_value_125
= variable
[4];
3379 /* Register variable[4]: Result */
3380 /* Register variable[4]: Result */
3381 variable
[4] = CALL_symbol___String___to_symbol(variable
[4])(variable
[4]) /*String::to_symbol*/;
3382 once_value_124
= variable
[4];
3383 once_bool_124
= true;
3385 /* Register variable[4]: Result */
3386 /* Register variable[3]: Result */
3387 variable
[3] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[3])(variable
[3], variable
[4]) /*MMLocalClass::select_method*/;
3388 ATTR_typing___ASuperstringExpr____meth_add(variable
[0]) /*ASuperstringExpr::_meth_add*/ = variable
[3];
3389 /* Register variable[3]: Result */
3390 variable
[3] = ATTR_typing___ASuperstringExpr____meth_add(variable
[0]) /*ASuperstringExpr::_meth_add*/;
3391 /* Register variable[3]: Result */
3392 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
3393 if (UNTAG_Bool(variable
[3])) { /*if*/
3394 variable
[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3395 /* Register variable[4]: Once String constant */
3396 if (once_value_126
!= NIT_NULL
) variable
[4] = once_value_126
;
3398 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
3399 once_value_126
= variable
[4];
3401 /* Register variable[4]: Result */
3402 /* Ensure var variable[4]: super-string element*/
3403 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
3404 /* Register variable[4]: Result */
3405 variable
[4] = ATTR_typing___ASuperstringExpr____atype(variable
[0]) /*ASuperstringExpr::_atype*/;
3406 /* Ensure var variable[4]: super-string element*/
3407 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/) /*AbstractArray::add*/;
3408 /* Register variable[4]: Once String constant */
3409 if (once_value_127
!= NIT_NULL
) variable
[4] = once_value_127
;
3411 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have an add method."), TAG_Int(25)) /*new String*/;
3412 once_value_127
= variable
[4];
3414 /* Register variable[4]: Result */
3415 /* Ensure var variable[4]: super-string element*/
3416 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
3417 /* Register variable[3]: Result */
3418 variable
[3] = CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/;
3419 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[3]) /*AbsSyntaxVisitor::error*/;
3421 /* Register variable[3]: Result */
3422 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_object( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_object*/;
3423 /* Register variable[3]: Result */
3424 variable
[3] = CALL_static_type___MMType___local_class(variable
[3])(variable
[3]) /*MMType::local_class*/;
3425 /* Register variable[4]: Once expression result */
3426 if (once_bool_128
) variable
[4] = once_value_128
;
3428 /* Register variable[4]: Once String constant */
3429 if (once_value_129
!= NIT_NULL
) variable
[4] = once_value_129
;
3431 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("to_s"), TAG_Int(4)) /*new String*/;
3432 once_value_129
= variable
[4];
3434 /* Register variable[4]: Result */
3435 /* Register variable[4]: Result */
3436 variable
[4] = CALL_symbol___String___to_symbol(variable
[4])(variable
[4]) /*String::to_symbol*/;
3437 once_value_128
= variable
[4];
3438 once_bool_128
= true;
3440 /* Register variable[4]: Result */
3441 /* Register variable[3]: Result */
3442 variable
[3] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[3])(variable
[3], variable
[4]) /*MMLocalClass::select_method*/;
3443 ATTR_typing___ASuperstringExpr____meth_to_s(variable
[0]) /*ASuperstringExpr::_meth_to_s*/ = variable
[3];
3444 /* Register variable[3]: Result */
3445 variable
[3] = ATTR_typing___ASuperstringExpr____meth_to_s(variable
[0]) /*ASuperstringExpr::_meth_to_s*/;
3446 /* Register variable[3]: Result */
3447 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
3448 if (UNTAG_Bool(variable
[3])) { /*if*/
3449 /* Register variable[3]: Once String constant */
3450 if (once_value_130
!= NIT_NULL
) variable
[3] = once_value_130
;
3452 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("Object MUST have a to_s method."), TAG_Int(31)) /*new String*/;
3453 once_value_130
= variable
[3];
3455 /* Register variable[3]: Result */
3456 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[3]) /*AbsSyntaxVisitor::error*/;
3458 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
3459 return_label119
: while(false);
3460 tracehead
= trace
.prev
;
3463 val_t
typing___ASuperstringExpr___meth_with_capacity(val_t self
) {
3464 struct trace_t trace
= {NULL
, NULL
, 796, LOCATE_typing___ASuperstringExpr___meth_with_capacity
};
3465 val_t
*variable
= NULL
;
3466 struct WBT_
**closurevariable
= NULL
;
3467 trace
.prev
= tracehead
; tracehead
= &trace
;
3468 trace
.file
= LOCATE_typing
;
3469 tracehead
= trace
.prev
;
3470 return ATTR_typing___ASuperstringExpr____meth_with_capacity( self
) /*ASuperstringExpr::_meth_with_capacity*/;
3472 val_t
typing___ASuperstringExpr___meth_add(val_t self
) {
3473 struct trace_t trace
= {NULL
, NULL
, 797, LOCATE_typing___ASuperstringExpr___meth_add
};
3474 val_t
*variable
= NULL
;
3475 struct WBT_
**closurevariable
= NULL
;
3476 trace
.prev
= tracehead
; tracehead
= &trace
;
3477 trace
.file
= LOCATE_typing
;
3478 tracehead
= trace
.prev
;
3479 return ATTR_typing___ASuperstringExpr____meth_add( self
) /*ASuperstringExpr::_meth_add*/;
3481 val_t
typing___ASuperstringExpr___meth_to_s(val_t self
) {
3482 struct trace_t trace
= {NULL
, NULL
, 798, LOCATE_typing___ASuperstringExpr___meth_to_s
};
3483 val_t
*variable
= NULL
;
3484 struct WBT_
**closurevariable
= NULL
;
3485 trace
.prev
= tracehead
; tracehead
= &trace
;
3486 trace
.file
= LOCATE_typing
;
3487 tracehead
= trace
.prev
;
3488 return ATTR_typing___ASuperstringExpr____meth_to_s( self
) /*ASuperstringExpr::_meth_to_s*/;
3490 val_t
typing___ASuperstringExpr___atype(val_t self
) {
3491 struct trace_t trace
= {NULL
, NULL
, 799, LOCATE_typing___ASuperstringExpr___atype
};
3492 val_t
*variable
= NULL
;
3493 struct WBT_
**closurevariable
= NULL
;
3494 trace
.prev
= tracehead
; tracehead
= &trace
;
3495 trace
.file
= LOCATE_typing
;
3496 tracehead
= trace
.prev
;
3497 return ATTR_typing___ASuperstringExpr____atype( self
) /*ASuperstringExpr::_atype*/;
3499 void typing___ANullExpr___after_typing(val_t self
, val_t param0
) {
3500 struct trace_t trace
= {NULL
, NULL
, 815, LOCATE_typing___ANullExpr___after_typing
};
3502 struct WBT_
**closurevariable
= NULL
;
3503 trace
.prev
= tracehead
; tracehead
= &trace
;
3504 trace
.file
= LOCATE_typing
;
3505 /* Register variable[0]: Local variable */
3507 /* Register variable[1]: Local variable */
3508 variable
[1] = param0
;
3509 /* Register variable[2]: Method return value and escape marker */
3510 /* Register variable[3]: Result */
3511 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_none( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_none*/;
3512 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
3513 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
3514 return_label131
: while(false);
3515 tracehead
= trace
.prev
;
3518 void typing___AArrayExpr___after_typing(val_t self
, val_t param0
) {
3519 struct trace_t trace
= {NULL
, NULL
, 826, LOCATE_typing___AArrayExpr___after_typing
};
3521 struct WBT_
**closurevariable
= NULL
;
3522 trace
.prev
= tracehead
; tracehead
= &trace
;
3523 trace
.file
= LOCATE_typing
;
3524 /* Register variable[0]: Local variable */
3526 /* Register variable[1]: Local variable */
3527 variable
[1] = param0
;
3528 /* Register variable[2]: Method return value and escape marker */
3529 /* Register variable[3]: Local variable */
3530 /* Register variable[4]: Result */
3531 variable
[4] = CALL_parser_nodes___AArrayExpr___n_exprs(variable
[0])(variable
[0]) /*AArrayExpr::n_exprs*/;
3532 /* Register variable[4]: Result */
3533 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_multiexpr( variable
[1] /*v*/)( variable
[1] /*v*/, NIT_NULL
/*null*/, variable
[4]) /*AbsSyntaxVisitor::check_conform_multiexpr*/;
3534 variable
[3] = variable
[4];
3535 /* Register variable[4]: Result */
3536 variable
[4] = TAG_Bool(( variable
[3] /*stype*/ == NIT_NULL
/*null*/) || (( variable
[3] /*stype*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*stype*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*stype*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*stype*/)( variable
[3] /*stype*/, NIT_NULL
/*null*/) /*Object::==*/)))));
3537 if (UNTAG_Bool(variable
[4])) { /*if*/
3538 goto return_label132
;
3540 CALL_typing___AArrayExpr___do_typing(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[3] /*stype*/) /*AArrayExpr::do_typing*/;
3541 return_label132
: while(false);
3542 tracehead
= trace
.prev
;
3545 val_t
typing___AArrayExpr___meth_with_capacity(val_t self
) {
3546 struct trace_t trace
= {NULL
, NULL
, 823, LOCATE_typing___AArrayExpr___meth_with_capacity
};
3547 val_t
*variable
= NULL
;
3548 struct WBT_
**closurevariable
= NULL
;
3549 trace
.prev
= tracehead
; tracehead
= &trace
;
3550 trace
.file
= LOCATE_typing
;
3551 tracehead
= trace
.prev
;
3552 return ATTR_typing___AArrayExpr____meth_with_capacity( self
) /*AArrayExpr::_meth_with_capacity*/;
3554 val_t
typing___AArrayExpr___meth_add(val_t self
) {
3555 struct trace_t trace
= {NULL
, NULL
, 824, LOCATE_typing___AArrayExpr___meth_add
};
3556 val_t
*variable
= NULL
;
3557 struct WBT_
**closurevariable
= NULL
;
3558 trace
.prev
= tracehead
; tracehead
= &trace
;
3559 trace
.file
= LOCATE_typing
;
3560 tracehead
= trace
.prev
;
3561 return ATTR_typing___AArrayExpr____meth_add( self
) /*AArrayExpr::_meth_add*/;
3563 void typing___AArrayExpr___do_typing(val_t self
, val_t param0
, val_t param1
) {
3564 struct trace_t trace
= {NULL
, NULL
, 833, LOCATE_typing___AArrayExpr___do_typing
};
3565 static val_t once_value_134
; static int once_bool_134
; /* Once value for variable[5]*/
3566 static val_t once_value_135
= NIT_NULL
; /* Once value for string variable[5]*/
3567 static val_t once_value_136
= NIT_NULL
; /* Once value for string variable[5]*/
3568 static val_t once_value_137
= NIT_NULL
; /* Once value for string variable[5]*/
3569 static val_t once_value_138
; static int once_bool_138
; /* Once value for variable[5]*/
3570 static val_t once_value_139
= NIT_NULL
; /* Once value for string variable[5]*/
3571 static val_t once_value_140
= NIT_NULL
; /* Once value for string variable[5]*/
3572 static val_t once_value_141
= NIT_NULL
; /* Once value for string variable[5]*/
3574 struct WBT_
**closurevariable
= NULL
;
3575 trace
.prev
= tracehead
; tracehead
= &trace
;
3576 trace
.file
= LOCATE_typing
;
3577 /* Register variable[0]: Local variable */
3579 /* Register variable[1]: Local variable */
3580 variable
[1] = param0
;
3581 /* Register variable[2]: Local variable */
3582 variable
[2] = param1
;
3583 /* Register variable[3]: Method return value and escape marker */
3584 /* Register variable[4]: Result */
3585 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_array( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[2] /*element_type*/) /*AbsSyntaxVisitor::type_array*/;
3586 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[4];
3587 /* Register variable[4]: Result */
3588 variable
[4] = ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/;
3589 /* Register variable[4]: Result */
3590 variable
[4] = CALL_static_type___MMType___local_class(variable
[4])(variable
[4]) /*MMType::local_class*/;
3591 /* Register variable[5]: Once expression result */
3592 if (once_bool_134
) variable
[5] = once_value_134
;
3594 /* Register variable[5]: Once String constant */
3595 if (once_value_135
!= NIT_NULL
) variable
[5] = once_value_135
;
3597 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("with_capacity"), TAG_Int(13)) /*new String*/;
3598 once_value_135
= variable
[5];
3600 /* Register variable[5]: Result */
3601 /* Register variable[5]: Result */
3602 variable
[5] = CALL_symbol___String___to_symbol(variable
[5])(variable
[5]) /*String::to_symbol*/;
3603 once_value_134
= variable
[5];
3604 once_bool_134
= true;
3606 /* Register variable[5]: Result */
3607 /* Register variable[4]: Result */
3608 variable
[4] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[4])(variable
[4], variable
[5]) /*MMLocalClass::select_method*/;
3609 ATTR_typing___AArrayExpr____meth_with_capacity(variable
[0]) /*AArrayExpr::_meth_with_capacity*/ = variable
[4];
3610 /* Register variable[4]: Result */
3611 variable
[4] = ATTR_typing___AArrayExpr____meth_with_capacity(variable
[0]) /*AArrayExpr::_meth_with_capacity*/;
3612 /* Register variable[4]: Result */
3613 variable
[4] = TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))));
3614 if (UNTAG_Bool(variable
[4])) { /*if*/
3615 variable
[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3616 /* Register variable[5]: Once String constant */
3617 if (once_value_136
!= NIT_NULL
) variable
[5] = once_value_136
;
3619 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
3620 once_value_136
= variable
[5];
3622 /* Register variable[5]: Result */
3623 /* Ensure var variable[5]: super-string element*/
3624 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
3625 /* Register variable[5]: Result */
3626 variable
[5] = ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/;
3627 /* Ensure var variable[5]: super-string element*/
3628 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/) /*AbstractArray::add*/;
3629 /* Register variable[5]: Once String constant */
3630 if (once_value_137
!= NIT_NULL
) variable
[5] = once_value_137
;
3632 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have a with_capacity method."), TAG_Int(34)) /*new String*/;
3633 once_value_137
= variable
[5];
3635 /* Register variable[5]: Result */
3636 /* Ensure var variable[5]: super-string element*/
3637 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
3638 /* Register variable[4]: Result */
3639 variable
[4] = CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/;
3640 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[4]) /*AbsSyntaxVisitor::error*/;
3642 /* Register variable[4]: Result */
3643 variable
[4] = ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/;
3644 /* Register variable[4]: Result */
3645 variable
[4] = CALL_static_type___MMType___local_class(variable
[4])(variable
[4]) /*MMType::local_class*/;
3646 /* Register variable[5]: Once expression result */
3647 if (once_bool_138
) variable
[5] = once_value_138
;
3649 /* Register variable[5]: Once String constant */
3650 if (once_value_139
!= NIT_NULL
) variable
[5] = once_value_139
;
3652 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("add"), TAG_Int(3)) /*new String*/;
3653 once_value_139
= variable
[5];
3655 /* Register variable[5]: Result */
3656 /* Register variable[5]: Result */
3657 variable
[5] = CALL_symbol___String___to_symbol(variable
[5])(variable
[5]) /*String::to_symbol*/;
3658 once_value_138
= variable
[5];
3659 once_bool_138
= true;
3661 /* Register variable[5]: Result */
3662 /* Register variable[4]: Result */
3663 variable
[4] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[4])(variable
[4], variable
[5]) /*MMLocalClass::select_method*/;
3664 ATTR_typing___AArrayExpr____meth_add(variable
[0]) /*AArrayExpr::_meth_add*/ = variable
[4];
3665 /* Register variable[4]: Result */
3666 variable
[4] = ATTR_typing___AArrayExpr____meth_add(variable
[0]) /*AArrayExpr::_meth_add*/;
3667 /* Register variable[4]: Result */
3668 variable
[4] = TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))));
3669 if (UNTAG_Bool(variable
[4])) { /*if*/
3670 variable
[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3671 /* Register variable[5]: Once String constant */
3672 if (once_value_140
!= NIT_NULL
) variable
[5] = once_value_140
;
3674 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
3675 once_value_140
= variable
[5];
3677 /* Register variable[5]: Result */
3678 /* Ensure var variable[5]: super-string element*/
3679 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
3680 /* Register variable[5]: Result */
3681 variable
[5] = ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/;
3682 /* Ensure var variable[5]: super-string element*/
3683 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/) /*AbstractArray::add*/;
3684 /* Register variable[5]: Once String constant */
3685 if (once_value_141
!= NIT_NULL
) variable
[5] = once_value_141
;
3687 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have an add method."), TAG_Int(25)) /*new String*/;
3688 once_value_141
= variable
[5];
3690 /* Register variable[5]: Result */
3691 /* Ensure var variable[5]: super-string element*/
3692 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
3693 /* Register variable[4]: Result */
3694 variable
[4] = CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/;
3695 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[4]) /*AbsSyntaxVisitor::error*/;
3697 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
3698 return_label133
: while(false);
3699 tracehead
= trace
.prev
;
3702 void typing___ARangeExpr___after_typing(val_t self
, val_t param0
) {
3703 struct trace_t trace
= {NULL
, NULL
, 848, LOCATE_typing___ARangeExpr___after_typing
};
3704 static val_t once_value_143
= NIT_NULL
; /* Once value for string variable[6]*/
3705 static val_t once_value_144
= NIT_NULL
; /* Once value for string variable[6]*/
3706 static val_t once_value_145
= NIT_NULL
; /* Once value for string variable[6]*/
3708 struct WBT_
**closurevariable
= NULL
;
3709 trace
.prev
= tracehead
; tracehead
= &trace
;
3710 trace
.file
= LOCATE_typing
;
3711 /* Register variable[0]: Local variable */
3713 /* Register variable[1]: Local variable */
3714 variable
[1] = param0
;
3715 /* Register variable[2]: Method return value and escape marker */
3716 /* Register variable[3]: Result */
3717 variable
[3] = CALL_parser_nodes___ARangeExpr___n_expr(variable
[0])(variable
[0]) /*ARangeExpr::n_expr*/;
3718 /* Register variable[3]: Result */
3719 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*AbsSyntaxVisitor::check_expr*/;
3720 variable
[3] = TAG_Bool(!UNTAG_Bool(variable
[3])) /* Ensure var: Left 'or' operand*/;
3721 if (!UNTAG_Bool(variable
[3])) { /* or */
3722 /* Register variable[3]: Result */
3723 variable
[3] = CALL_parser_nodes___ARangeExpr___n_expr2(variable
[0])(variable
[0]) /*ARangeExpr::n_expr2*/;
3724 /* Register variable[3]: Result */
3725 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*AbsSyntaxVisitor::check_expr*/;
3726 variable
[3] = TAG_Bool(!UNTAG_Bool(variable
[3]));
3728 /* Register variable[3]: Result */
3729 if (UNTAG_Bool(variable
[3])) { /*if*/
3730 goto return_label142
;
3732 /* Register variable[3]: Local variable */
3733 /* Register variable[4]: Result */
3734 variable
[4] = CALL_parser_nodes___ARangeExpr___n_expr(variable
[0])(variable
[0]) /*ARangeExpr::n_expr*/;
3735 /* Register variable[4]: Result */
3736 variable
[4] = CALL_syntax_base___PExpr___stype(variable
[4])(variable
[4]) /*PExpr::stype*/;
3737 variable
[3] = variable
[4];
3738 /* Register variable[4]: Local variable */
3739 /* Register variable[5]: Result */
3740 variable
[5] = CALL_parser_nodes___ARangeExpr___n_expr2(variable
[0])(variable
[0]) /*ARangeExpr::n_expr2*/;
3741 /* Register variable[5]: Result */
3742 variable
[5] = CALL_syntax_base___PExpr___stype(variable
[5])(variable
[5]) /*PExpr::stype*/;
3743 variable
[4] = variable
[5];
3744 /* Register variable[5]: Result */
3745 variable
[5] = CALL_static_type___MMType_____l( variable
[3] /*ntype*/)( variable
[3] /*ntype*/, variable
[4] /*ntype2*/) /*MMType::<*/;
3746 if (UNTAG_Bool(variable
[5])) { /*if*/
3747 variable
[3] = variable
[4] /*ntype2*/ /*ntype=*/;
3749 /* Register variable[5]: Result */
3750 variable
[5] = CALL_static_type___MMType_____l( variable
[4] /*ntype2*/)( variable
[4] /*ntype2*/, variable
[3] /*ntype*/) /*MMType::<*/;
3751 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[5])))) { /*if*/
3752 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3753 /* Register variable[6]: Once String constant */
3754 if (once_value_143
!= NIT_NULL
) variable
[6] = once_value_143
;
3756 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)) /*new String*/;
3757 once_value_143
= variable
[6];
3759 /* Register variable[6]: Result */
3760 /* Ensure var variable[6]: super-string element*/
3761 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
3762 variable
[6] = variable
[3] /*ntype*/ /* Ensure var: super-string element*/;
3763 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/) /*AbstractArray::add*/;
3764 /* Register variable[6]: Once String constant */
3765 if (once_value_144
!= NIT_NULL
) variable
[6] = once_value_144
;
3767 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(" incompatible with "), TAG_Int(19)) /*new String*/;
3768 once_value_144
= variable
[6];
3770 /* Register variable[6]: Result */
3771 /* Ensure var variable[6]: super-string element*/
3772 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
3773 variable
[6] = variable
[4] /*ntype2*/ /* Ensure var: super-string element*/;
3774 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/) /*AbstractArray::add*/;
3775 /* Register variable[6]: Once String constant */
3776 if (once_value_145
!= NIT_NULL
) variable
[6] = once_value_145
;
3778 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
3779 once_value_145
= variable
[6];
3781 /* Register variable[6]: Result */
3782 /* Ensure var variable[6]: super-string element*/
3783 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
3784 /* Register variable[5]: Result */
3785 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
3786 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[5]) /*AbsSyntaxVisitor::error*/;
3787 goto return_label142
;
3790 /* Register variable[5]: Local variable */
3791 /* Register variable[6]: Result */
3792 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___type_discrete( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_discrete*/;
3793 variable
[5] = variable
[6];
3794 /* Register variable[6]: Result */
3795 variable
[6] = CALL_parser_nodes___ARangeExpr___n_expr(variable
[0])(variable
[0]) /*ARangeExpr::n_expr*/;
3796 /* Register variable[6]: Result */
3797 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[5] /*dtype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
3798 variable
[6] = TAG_Bool(!UNTAG_Bool(variable
[6])) /* Ensure var: Left 'or' operand*/;
3799 if (!UNTAG_Bool(variable
[6])) { /* or */
3800 /* Register variable[6]: Result */
3801 variable
[6] = CALL_parser_nodes___ARangeExpr___n_expr2(variable
[0])(variable
[0]) /*ARangeExpr::n_expr2*/;
3802 /* Register variable[6]: Result */
3803 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6], variable
[5] /*dtype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
3804 variable
[6] = TAG_Bool(!UNTAG_Bool(variable
[6]));
3806 /* Register variable[6]: Result */
3807 if (UNTAG_Bool(variable
[6])) { /*if*/
3808 goto return_label142
;
3810 /* Register variable[6]: Result */
3811 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___type_range( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3] /*ntype*/) /*AbsSyntaxVisitor::type_range*/;
3812 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[6];
3813 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
3814 return_label142
: while(false);
3815 tracehead
= trace
.prev
;
3818 val_t
typing___ARangeExpr___meth_init(val_t self
) {
3819 struct trace_t trace
= {NULL
, NULL
, 847, LOCATE_typing___ARangeExpr___meth_init
};
3820 val_t
*variable
= NULL
;
3821 struct WBT_
**closurevariable
= NULL
;
3822 trace
.prev
= tracehead
; tracehead
= &trace
;
3823 trace
.file
= LOCATE_typing
;
3824 tracehead
= trace
.prev
;
3825 return ATTR_typing___ARangeExpr____meth_init( self
) /*ARangeExpr::_meth_init*/;
3827 void typing___ACrangeExpr___after_typing(val_t self
, val_t param0
) {
3828 struct trace_t trace
= {NULL
, NULL
, 867, LOCATE_typing___ACrangeExpr___after_typing
};
3829 static val_t once_value_147
; static int once_bool_147
; /* Once value for variable[4]*/
3830 static val_t once_value_148
= NIT_NULL
; /* Once value for string variable[4]*/
3832 struct WBT_
**closurevariable
= NULL
;
3833 trace
.prev
= tracehead
; tracehead
= &trace
;
3834 trace
.file
= LOCATE_typing
;
3835 /* Register variable[0]: Local variable */
3837 /* Register variable[1]: Local variable */
3838 variable
[1] = param0
;
3839 /* Register variable[2]: Method return value and escape marker */
3840 CALL_SUPER_typing___ACrangeExpr___after_typing(variable
[0])(variable
[0], variable
[1]) /*super ACrangeExpr::after_typing*/;
3841 /* Register variable[3]: Result */
3842 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[0])(variable
[0]) /*PExpr::stype*/;
3843 /* Register variable[3]: Result */
3844 variable
[3] = CALL_static_type___MMType___local_class(variable
[3])(variable
[3]) /*MMType::local_class*/;
3845 /* Register variable[4]: Once expression result */
3846 if (once_bool_147
) variable
[4] = once_value_147
;
3848 /* Register variable[4]: Once String constant */
3849 if (once_value_148
!= NIT_NULL
) variable
[4] = once_value_148
;
3851 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)) /*new String*/;
3852 once_value_148
= variable
[4];
3854 /* Register variable[4]: Result */
3855 /* Register variable[4]: Result */
3856 variable
[4] = CALL_symbol___String___to_symbol(variable
[4])(variable
[4]) /*String::to_symbol*/;
3857 once_value_147
= variable
[4];
3858 once_bool_147
= true;
3860 /* Register variable[4]: Result */
3861 /* Register variable[3]: Result */
3862 variable
[3] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[3])(variable
[3], variable
[4]) /*MMLocalClass::select_method*/;
3863 ATTR_typing___ARangeExpr____meth_init(variable
[0]) /*ARangeExpr::_meth_init*/ = variable
[3];
3864 return_label146
: while(false);
3865 tracehead
= trace
.prev
;
3868 void typing___AOrangeExpr___after_typing(val_t self
, val_t param0
) {
3869 struct trace_t trace
= {NULL
, NULL
, 874, LOCATE_typing___AOrangeExpr___after_typing
};
3870 static val_t once_value_150
; static int once_bool_150
; /* Once value for variable[4]*/
3871 static val_t once_value_151
= NIT_NULL
; /* Once value for string variable[4]*/
3873 struct WBT_
**closurevariable
= NULL
;
3874 trace
.prev
= tracehead
; tracehead
= &trace
;
3875 trace
.file
= LOCATE_typing
;
3876 /* Register variable[0]: Local variable */
3878 /* Register variable[1]: Local variable */
3879 variable
[1] = param0
;
3880 /* Register variable[2]: Method return value and escape marker */
3881 CALL_SUPER_typing___AOrangeExpr___after_typing(variable
[0])(variable
[0], variable
[1]) /*super AOrangeExpr::after_typing*/;
3882 /* Register variable[3]: Result */
3883 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[0])(variable
[0]) /*PExpr::stype*/;
3884 /* Register variable[3]: Result */
3885 variable
[3] = CALL_static_type___MMType___local_class(variable
[3])(variable
[3]) /*MMType::local_class*/;
3886 /* Register variable[4]: Once expression result */
3887 if (once_bool_150
) variable
[4] = once_value_150
;
3889 /* Register variable[4]: Once String constant */
3890 if (once_value_151
!= NIT_NULL
) variable
[4] = once_value_151
;
3892 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("without_last"), TAG_Int(12)) /*new String*/;
3893 once_value_151
= variable
[4];
3895 /* Register variable[4]: Result */
3896 /* Register variable[4]: Result */
3897 variable
[4] = CALL_symbol___String___to_symbol(variable
[4])(variable
[4]) /*String::to_symbol*/;
3898 once_value_150
= variable
[4];
3899 once_bool_150
= true;
3901 /* Register variable[4]: Result */
3902 /* Register variable[3]: Result */
3903 variable
[3] = CALL_abstractmetamodel___MMLocalClass___select_method(variable
[3])(variable
[3], variable
[4]) /*MMLocalClass::select_method*/;
3904 ATTR_typing___ARangeExpr____meth_init(variable
[0]) /*ARangeExpr::_meth_init*/ = variable
[3];
3905 return_label149
: while(false);
3906 tracehead
= trace
.prev
;
3909 void typing___ASuperExpr___after_typing(val_t self
, val_t param0
) {
3910 struct trace_t trace
= {NULL
, NULL
, 886, LOCATE_typing___ASuperExpr___after_typing
};
3911 static val_t once_value_154
= NIT_NULL
; /* Once value for string variable[9]*/
3912 static val_t once_value_155
= NIT_NULL
; /* Once value for string variable[9]*/
3913 static val_t once_value_156
= NIT_NULL
; /* Once value for string variable[9]*/
3914 static val_t once_value_157
= NIT_NULL
; /* Once value for string variable[6]*/
3915 static val_t once_value_158
= NIT_NULL
; /* Once value for string variable[6]*/
3916 static val_t once_value_159
= NIT_NULL
; /* Once value for string variable[6]*/
3917 static val_t once_value_160
= NIT_NULL
; /* Once value for string variable[6]*/
3918 static val_t once_value_161
= NIT_NULL
; /* Once value for string variable[6]*/
3919 static val_t once_value_162
= NIT_NULL
; /* Once value for string variable[6]*/
3920 static val_t once_value_163
= NIT_NULL
; /* Once value for string variable[5]*/
3921 static val_t once_value_164
= NIT_NULL
; /* Once value for string variable[5]*/
3923 struct WBT_
**closurevariable
= NULL
;
3924 trace
.prev
= tracehead
; tracehead
= &trace
;
3925 trace
.file
= LOCATE_typing
;
3926 /* Register variable[0]: Local variable */
3928 /* Register variable[1]: Local variable */
3929 variable
[1] = param0
;
3930 /* Register variable[2]: Method return value and escape marker */
3931 /* Register variable[3]: Local variable */
3932 /* Register variable[4]: Result */
3933 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
3934 /* Register variable[4]: Result */
3935 variable
[4] = CALL_abstractmetamodel___MMLocalProperty___prhe(variable
[4])(variable
[4]) /*MMLocalProperty::prhe*/;
3936 /* Register variable[4]: Result */
3937 variable
[4] = CALL_partial_order___PartialOrderElement___direct_greaters(variable
[4])(variable
[4]) /*PartialOrderElement::direct_greaters*/;
3938 variable
[3] = variable
[4];
3939 /* Register variable[4]: Result */
3940 variable
[4] = CALL_abstract_collection___Collection___is_empty( variable
[3] /*precs*/)( variable
[3] /*precs*/) /*AbstractArrayRead::is_empty*/;
3941 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[4])))) { /*if*/
3942 /* Register variable[4]: Result */
3943 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
3944 CALL_abstractmetamodel___MMLocalProperty___need_super__eq(variable
[4])(variable
[4], TAG_Bool(true)) /*MMLocalProperty::need_super=*/;
3946 /* Register variable[4]: Result */
3947 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
3948 /* Register variable[4]: Result */
3949 variable
[4] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[4])(variable
[4]) /*MMLocalProperty::global*/;
3950 /* Register variable[4]: Result */
3951 variable
[4] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[4])(variable
[4]) /*MMGlobalProperty::is_init*/;
3952 if (UNTAG_Bool(variable
[4])) { /*if*/
3953 /* Register variable[4]: Local variable */
3954 /* Register variable[5]: Result */
3955 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
3956 /* Register variable[6]: Result */
3957 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
3958 /* Register variable[6]: Result */
3959 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___name(variable
[6])(variable
[6]) /*MMLocalProperty::name*/;
3960 /* Register variable[5]: Result */
3961 variable
[5] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(variable
[5])(variable
[5], variable
[6]) /*MMLocalClass::super_methods_named*/;
3962 variable
[4] = variable
[5];
3963 /* Register variable[5]: For iterator */
3964 variable
[5] = CALL_abstract_collection___Collection___iterator( variable
[4] /*base_precs*/)( variable
[4] /*base_precs*/) /*AbstractArrayRead::iterator*/;
3965 while (true) { /*for*/
3966 /* Register variable[6]: For 'is_ok' result */
3967 variable
[6] = CALL_abstract_collection___Iterator___is_ok(variable
[5])(variable
[5]) /*ArrayIterator::is_ok*/;
3968 if (!UNTAG_Bool(variable
[6])) break; /*for*/
3969 variable
[6] = CALL_abstract_collection___Iterator___item(variable
[5])(variable
[5]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
3970 /* Register variable[7]: Local variable */
3971 variable
[7] = variable
[6];
3972 /* Register variable[8]: Result */
3973 variable
[8] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[7] /*p*/)( variable
[7] /*p*/) /*MMLocalProperty::global*/;
3974 /* Register variable[8]: Result */
3975 variable
[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[8])(variable
[8]) /*MMGlobalProperty::is_init*/;
3976 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[8])))) { /*if*/
3977 variable
[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3978 /* Register variable[9]: Once String constant */
3979 if (once_value_154
!= NIT_NULL
) variable
[9] = once_value_154
;
3981 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)) /*new String*/;
3982 once_value_154
= variable
[9];
3984 /* Register variable[9]: Result */
3985 /* Ensure var variable[9]: super-string element*/
3986 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
3987 /* Register variable[9]: Result */
3988 variable
[9] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable
[7] /*p*/)( variable
[7] /*p*/) /*MMLocalProperty::local_class*/;
3989 /* Ensure var variable[9]: super-string element*/
3990 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/) /*AbstractArray::add*/;
3991 /* Register variable[9]: Once String constant */
3992 if (once_value_155
!= NIT_NULL
) variable
[9] = once_value_155
;
3994 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/;
3995 once_value_155
= variable
[9];
3997 /* Register variable[9]: Result */
3998 /* Ensure var variable[9]: super-string element*/
3999 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
4000 variable
[9] = variable
[7] /*p*/ /* Ensure var: super-string element*/;
4001 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/) /*AbstractArray::add*/;
4002 /* Register variable[9]: Once String constant */
4003 if (once_value_156
!= NIT_NULL
) variable
[9] = once_value_156
;
4005 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString(" is not a constructor."), TAG_Int(22)) /*new String*/;
4006 once_value_156
= variable
[9];
4008 /* Register variable[9]: Result */
4009 /* Ensure var variable[9]: super-string element*/
4010 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
4011 /* Register variable[8]: Result */
4012 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
4013 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[8]) /*AbsSyntaxVisitor::error*/;
4015 /* Register variable[8]: Result */
4016 variable
[8] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
4017 /* Register variable[9]: Result */
4018 variable
[9] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[7] /*p*/)( variable
[7] /*p*/) /*MMLocalProperty::global*/;
4019 /* Register variable[8]: Result */
4020 variable
[8] = CALL_abstractmetamodel___MMLocalClass_____bra(variable
[8])(variable
[8], variable
[9]) /*MMLocalClass::[]*/;
4021 CALL_abstract_collection___SimpleCollection___add( variable
[3] /*precs*/)( variable
[3] /*precs*/, variable
[8]) /*AbstractArray::add*/;
4023 continue_153
: while(0);
4024 CALL_abstract_collection___Iterator___next(variable
[5])(variable
[5]) /*ArrayIterator::next*/;
4026 break_153
: while(0);
4027 /* Register variable[5]: Result */
4028 variable
[5] = CALL_abstract_collection___Collection___is_empty( variable
[3] /*precs*/)( variable
[3] /*precs*/) /*AbstractArrayRead::is_empty*/;
4029 if (UNTAG_Bool(variable
[5])) { /*if*/
4030 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4031 /* Register variable[6]: Once String constant */
4032 if (once_value_157
!= NIT_NULL
) variable
[6] = once_value_157
;
4034 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: No contructor named "), TAG_Int(27)) /*new String*/;
4035 once_value_157
= variable
[6];
4037 /* Register variable[6]: Result */
4038 /* Ensure var variable[6]: super-string element*/
4039 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
4040 /* Register variable[6]: Result */
4041 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
4042 /* Register variable[6]: Result */
4043 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___name(variable
[6])(variable
[6]) /*MMLocalProperty::name*/;
4044 /* Ensure var variable[6]: super-string element*/
4045 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/) /*AbstractArray::add*/;
4046 /* Register variable[6]: Once String constant */
4047 if (once_value_158
!= NIT_NULL
) variable
[6] = once_value_158
;
4049 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(" in superclasses."), TAG_Int(17)) /*new String*/;
4050 once_value_158
= variable
[6];
4052 /* Register variable[6]: Result */
4053 /* Ensure var variable[6]: super-string element*/
4054 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
4055 /* Register variable[5]: Result */
4056 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
4057 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[5]) /*AbsSyntaxVisitor::error*/;
4058 goto return_label152
;
4060 /* Register variable[5]: Result */
4061 variable
[5] = CALL_abstract_collection___Collection___length( variable
[3] /*precs*/)( variable
[3] /*precs*/) /*AbstractArrayRead::length*/;
4062 /* Register variable[5]: Result */
4063 variable
[5] = TAG_Bool(UNTAG_Int(variable
[5])>UNTAG_Int( TAG_Int(1)));
4064 if (UNTAG_Bool(variable
[5])) { /*if*/
4065 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4066 /* Register variable[6]: Once String constant */
4067 if (once_value_159
!= NIT_NULL
) variable
[6] = once_value_159
;
4069 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: Conflicting contructors named "), TAG_Int(37)) /*new String*/;
4070 once_value_159
= variable
[6];
4072 /* Register variable[6]: Result */
4073 /* Ensure var variable[6]: super-string element*/
4074 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
4075 /* Register variable[6]: Result */
4076 variable
[6] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
4077 /* Register variable[6]: Result */
4078 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___name(variable
[6])(variable
[6]) /*MMLocalProperty::name*/;
4079 /* Ensure var variable[6]: super-string element*/
4080 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/) /*AbstractArray::add*/;
4081 /* Register variable[6]: Once String constant */
4082 if (once_value_160
!= NIT_NULL
) variable
[6] = once_value_160
;
4084 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(" in superclasses: "), TAG_Int(18)) /*new String*/;
4085 once_value_160
= variable
[6];
4087 /* Register variable[6]: Result */
4088 /* Ensure var variable[6]: super-string element*/
4089 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
4090 /* Register variable[6]: Once String constant */
4091 if (once_value_161
!= NIT_NULL
) variable
[6] = once_value_161
;
4093 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
4094 once_value_161
= variable
[6];
4096 /* Register variable[6]: Result */
4097 /* Register variable[6]: Result */
4098 variable
[6] = CALL_string___Collection___join( variable
[3] /*precs*/)( variable
[3] /*precs*/, variable
[6]) /*Collection::join*/;
4099 /* Ensure var variable[6]: super-string element*/
4100 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
4101 /* Register variable[6]: Once String constant */
4102 if (once_value_162
!= NIT_NULL
) variable
[6] = once_value_162
;
4104 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
4105 once_value_162
= variable
[6];
4107 /* Register variable[6]: Result */
4108 /* Ensure var variable[6]: super-string element*/
4109 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
4110 /* Register variable[5]: Result */
4111 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
4112 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[5]) /*AbsSyntaxVisitor::error*/;
4113 goto return_label152
;
4116 /* Register variable[5]: Local variable */
4117 /* Register variable[6]: Result */
4118 variable
[6] = CALL_abstract_collection___Collection___first( variable
[4] /*base_precs*/)( variable
[4] /*base_precs*/) /*IndexedCollectionRead::first*/;
4119 variable
[5] = variable
[6];
4120 /* Register variable[6]: Result */
4121 variable
[6] = TAG_Bool(( variable
[5] /*p*/==NIT_NULL
) || VAL_ISA( variable
[5] /*p*/, COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
4122 if (!UNTAG_Bool(variable
[6])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing
, LOCATE_typing
, 908); nit_exit(1);}
4123 ATTR_typing___ASuperExpr____init_in_superclass(variable
[0]) /*ASuperExpr::_init_in_superclass*/ = variable
[5] /*p*/;
4124 CALL_typing___ASuperInitCall___register_super_init_call(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[5] /*p*/) /*ASuperInitCall::register_super_init_call*/;
4125 /* Register variable[6]: Result */
4126 variable
[6] = CALL_parser_nodes___ASuperExpr___n_args(variable
[0])(variable
[0]) /*ASuperExpr::n_args*/;
4127 /* Register variable[6]: Result */
4128 variable
[6] = CALL_abstract_collection___Collection___length(variable
[6])(variable
[6]) /*List::length*/;
4129 /* Register variable[6]: Result */
4130 variable
[6] = TAG_Bool(UNTAG_Int(variable
[6])>UNTAG_Int( TAG_Int(0)));
4131 if (UNTAG_Bool(variable
[6])) { /*if*/
4132 /* Register variable[6]: Local variable */
4133 /* Register variable[7]: Result */
4134 variable
[7] = CALL_typing___TypingVisitor___self_var( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::self_var*/;
4135 /* Register variable[7]: Result */
4136 variable
[7] = CALL_syntax_base___Variable___stype(variable
[7])(variable
[7]) /*Variable::stype*/;
4137 /* Register variable[7]: Result */
4138 variable
[7] = CALL_typing___AAbsSendExpr___get_signature(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[7], variable
[5] /*p*/, TAG_Bool(true)) /*AAbsSendExpr::get_signature*/;
4139 variable
[6] = variable
[7];
4140 /* Register variable[7]: Result */
4141 variable
[7] = CALL_abstractmetamodel___MMLocalProperty___name( variable
[5] /*p*/)( variable
[5] /*p*/) /*MMLocalProperty::name*/;
4142 /* Register variable[8]: Result */
4143 variable
[8] = CALL_parser_nodes___ASuperExpr___n_args(variable
[0])(variable
[0]) /*ASuperExpr::n_args*/;
4144 /* Register variable[8]: Result */
4145 variable
[8] = CALL_array___Collection___to_a(variable
[8])(variable
[8]) /*Collection::to_a*/;
4146 /* Register variable[7]: Result */
4147 variable
[7] = CALL_typing___AAbsAbsSendExpr___process_signature(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[6] /*signature*/, variable
[7], variable
[8]) /*AAbsAbsSendExpr::process_signature*/;
4148 ATTR_typing___AAbsAbsSendExpr____arguments(variable
[0]) /*AAbsAbsSendExpr::_arguments*/ = variable
[7];
4151 variable
[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4152 /* Register variable[5]: Once String constant */
4153 if (once_value_163
!= NIT_NULL
) variable
[5] = once_value_163
;
4155 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: No super method to call for "), TAG_Int(35)) /*new String*/;
4156 once_value_163
= variable
[5];
4158 /* Register variable[5]: Result */
4159 /* Ensure var variable[5]: super-string element*/
4160 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
4161 /* Register variable[5]: Result */
4162 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
4163 /* Ensure var variable[5]: super-string element*/
4164 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/) /*AbstractArray::add*/;
4165 /* Register variable[5]: Once String constant */
4166 if (once_value_164
!= NIT_NULL
) variable
[5] = once_value_164
;
4168 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
4169 once_value_164
= variable
[5];
4171 /* Register variable[5]: Result */
4172 /* Ensure var variable[5]: super-string element*/
4173 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
4174 /* Register variable[4]: Result */
4175 variable
[4] = CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/;
4176 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[4]) /*AbsSyntaxVisitor::error*/;
4177 goto return_label152
;
4180 /* Register variable[4]: Result */
4181 variable
[4] = CALL_abstract_collection___Collection___first( variable
[3] /*precs*/)( variable
[3] /*precs*/) /*IndexedCollectionRead::first*/;
4182 /* Register variable[5]: Result */
4183 variable
[5] = CALL_typing___TypingVisitor___self_var( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::self_var*/;
4184 /* Register variable[5]: Result */
4185 variable
[5] = CALL_syntax_base___Variable___stype(variable
[5])(variable
[5]) /*Variable::stype*/;
4186 /* Register variable[4]: Result */
4187 variable
[4] = CALL_static_type___MMLocalProperty___signature_for(variable
[4])(variable
[4], variable
[5]) /*MMLocalProperty::signature_for*/;
4188 /* Register variable[4]: Result */
4189 variable
[4] = CALL_static_type___MMSignature___return_type(variable
[4])(variable
[4]) /*MMSignature::return_type*/;
4190 /* Register variable[4]: Result */
4191 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
4192 if (UNTAG_Bool(variable
[4])) { /*if*/
4193 /* Register variable[4]: Local variable */
4194 /* Register variable[5]: Result */
4195 variable
[5] = NEW_Array_array___Array___init() /*new Array[MMType]*/;
4196 variable
[4] = variable
[5];
4197 /* Register variable[5]: Local variable */
4198 variable
[5] = NIT_NULL
/*null*/;
4199 /* Register variable[6]: For iterator */
4200 variable
[6] = CALL_abstract_collection___Collection___iterator( variable
[3] /*precs*/)( variable
[3] /*precs*/) /*AbstractArrayRead::iterator*/;
4201 while (true) { /*for*/
4202 /* Register variable[7]: For 'is_ok' result */
4203 variable
[7] = CALL_abstract_collection___Iterator___is_ok(variable
[6])(variable
[6]) /*ArrayIterator::is_ok*/;
4204 if (!UNTAG_Bool(variable
[7])) break; /*for*/
4205 variable
[7] = CALL_abstract_collection___Iterator___item(variable
[6])(variable
[6]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
4206 /* Register variable[8]: Local variable */
4207 variable
[8] = variable
[7];
4208 /* Register variable[9]: Result */
4209 variable
[9] = TAG_Bool(( variable
[8] /*prop*/==NIT_NULL
) || VAL_ISA( variable
[8] /*prop*/, COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
4210 if (!UNTAG_Bool(variable
[9])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing
, LOCATE_typing
, 924); nit_exit(1);}
4211 /* Register variable[9]: Local variable */
4212 /* Register variable[10]: Result */
4213 variable
[10] = CALL_typing___TypingVisitor___self_var( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::self_var*/;
4214 /* Register variable[10]: Result */
4215 variable
[10] = CALL_syntax_base___Variable___stype(variable
[10])(variable
[10]) /*Variable::stype*/;
4216 /* Register variable[10]: Result */
4217 variable
[10] = CALL_static_type___MMLocalProperty___signature_for( variable
[8] /*prop*/)( variable
[8] /*prop*/, variable
[10]) /*MMLocalProperty::signature_for*/;
4218 /* Register variable[10]: Result */
4219 variable
[10] = CALL_static_type___MMSignature___return_type(variable
[10])(variable
[10]) /*MMSignature::return_type*/;
4220 /* Register variable[11]: Result */
4221 variable
[11] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
4222 /* Register variable[10]: Result */
4223 variable
[10] = CALL_static_type___MMType___for_module(variable
[10])(variable
[10], variable
[11]) /*MMType::for_module*/;
4224 /* Register variable[11]: Result */
4225 variable
[11] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
4226 /* Register variable[11]: Result */
4227 variable
[11] = CALL_static_type___MMLocalProperty___signature(variable
[11])(variable
[11]) /*MMLocalProperty::signature*/;
4228 /* Register variable[11]: Result */
4229 variable
[11] = CALL_static_type___MMSignature___recv(variable
[11])(variable
[11]) /*MMSignature::recv*/;
4230 /* Register variable[10]: Result */
4231 variable
[10] = CALL_static_type___MMType___adapt_to(variable
[10])(variable
[10], variable
[11]) /*MMType::adapt_to*/;
4232 variable
[9] = variable
[10];
4233 CALL_abstract_collection___SimpleCollection___add( variable
[4] /*stypes*/)( variable
[4] /*stypes*/, variable
[9] /*t*/) /*AbstractArray::add*/;
4234 /* Register variable[10]: Result */
4235 variable
[10] = TAG_Bool(( variable
[5] /*stype*/ == NIT_NULL
/*null*/) || (( variable
[5] /*stype*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[5] /*stype*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[5] /*stype*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*stype*/)( variable
[5] /*stype*/, NIT_NULL
/*null*/) /*Object::==*/)))));
4236 /* Ensure var variable[10]: Left 'or' operand*/
4237 if (!UNTAG_Bool(variable
[10])) { /* or */
4238 /* Register variable[10]: Result */
4239 variable
[10] = CALL_static_type___MMType_____l( variable
[5] /*stype*/)( variable
[5] /*stype*/, variable
[9] /*t*/) /*MMType::<*/;
4241 /* Register variable[10]: Result */
4242 if (UNTAG_Bool(variable
[10])) { /*if*/
4243 variable
[5] = variable
[9] /*t*/ /*stype=*/;
4245 continue_165
: while(0);
4246 CALL_abstract_collection___Iterator___next(variable
[6])(variable
[6]) /*ArrayIterator::next*/;
4248 break_165
: while(0);
4249 /* Register variable[6]: For iterator */
4250 variable
[6] = CALL_abstract_collection___Collection___iterator( variable
[4] /*stypes*/)( variable
[4] /*stypes*/) /*AbstractArrayRead::iterator*/;
4251 while (true) { /*for*/
4252 /* Register variable[7]: For 'is_ok' result */
4253 variable
[7] = CALL_abstract_collection___Iterator___is_ok(variable
[6])(variable
[6]) /*ArrayIterator::is_ok*/;
4254 if (!UNTAG_Bool(variable
[7])) break; /*for*/
4255 variable
[7] = CALL_abstract_collection___Iterator___item(variable
[6])(variable
[6]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
4256 /* Register variable[8]: Local variable */
4257 variable
[8] = variable
[7];
4258 CALL_syntax_base___AbsSyntaxVisitor___check_conform( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[8] /*t*/, variable
[5] /*stype*/) /*AbsSyntaxVisitor::check_conform*/;
4259 continue_166
: while(0);
4260 CALL_abstract_collection___Iterator___next(variable
[6])(variable
[6]) /*ArrayIterator::next*/;
4262 break_166
: while(0);
4263 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[5] /*stype*/;
4265 /* Register variable[4]: Local variable */
4266 /* Register variable[5]: Result */
4267 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
4268 variable
[4] = variable
[5];
4269 /* Register variable[5]: Result */
4270 variable
[5] = TAG_Bool(( variable
[4] /*p*/==NIT_NULL
) || VAL_ISA( variable
[4] /*p*/, COLOR_MMSrcMethod
, ID_MMSrcMethod
)) /*cast MMSrcMethod*/;
4271 if (!UNTAG_Bool(variable
[5])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing
, LOCATE_typing
, 937); nit_exit(1);}
4272 ATTR_typing___AAbsSendExpr____prop(variable
[0]) /*AAbsSendExpr::_prop*/ = variable
[4] /*p*/;
4273 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
4274 return_label152
: while(false);
4275 tracehead
= trace
.prev
;
4278 val_t
typing___ASuperExpr___init_in_superclass(val_t self
) {
4279 struct trace_t trace
= {NULL
, NULL
, 884, LOCATE_typing___ASuperExpr___init_in_superclass
};
4280 val_t
*variable
= NULL
;
4281 struct WBT_
**closurevariable
= NULL
;
4282 trace
.prev
= tracehead
; tracehead
= &trace
;
4283 trace
.file
= LOCATE_typing
;
4284 tracehead
= trace
.prev
;
4285 return ATTR_typing___ASuperExpr____init_in_superclass( self
) /*ASuperExpr::_init_in_superclass*/;
4287 val_t
typing___AAttrFormExpr___prop(val_t self
) {
4288 struct trace_t trace
= {NULL
, NULL
, 944, LOCATE_typing___AAttrFormExpr___prop
};
4289 val_t
*variable
= NULL
;
4290 struct WBT_
**closurevariable
= NULL
;
4291 trace
.prev
= tracehead
; tracehead
= &trace
;
4292 trace
.file
= LOCATE_typing
;
4293 tracehead
= trace
.prev
;
4294 return ATTR_typing___AAttrFormExpr____prop( self
) /*AAttrFormExpr::_prop*/;
4296 val_t
typing___AAttrFormExpr___attr_type(val_t self
) {
4297 struct trace_t trace
= {NULL
, NULL
, 947, LOCATE_typing___AAttrFormExpr___attr_type
};
4298 val_t
*variable
= NULL
;
4299 struct WBT_
**closurevariable
= NULL
;
4300 trace
.prev
= tracehead
; tracehead
= &trace
;
4301 trace
.file
= LOCATE_typing
;
4302 tracehead
= trace
.prev
;
4303 return ATTR_typing___AAttrFormExpr____attr_type( self
) /*AAttrFormExpr::_attr_type*/;
4305 void typing___AAttrFormExpr___do_typing(val_t self
, val_t param0
) {
4306 struct trace_t trace
= {NULL
, NULL
, 950, LOCATE_typing___AAttrFormExpr___do_typing
};
4307 static val_t once_value_168
= NIT_NULL
; /* Once value for string variable[7]*/
4308 static val_t once_value_169
= NIT_NULL
; /* Once value for string variable[7]*/
4309 static val_t once_value_170
= NIT_NULL
; /* Once value for string variable[7]*/
4310 static val_t once_value_171
= NIT_NULL
; /* Once value for string variable[8]*/
4311 static val_t once_value_172
= NIT_NULL
; /* Once value for string variable[8]*/
4312 static val_t once_value_173
= NIT_NULL
; /* Once value for string variable[8]*/
4313 static val_t once_value_174
= NIT_NULL
; /* Once value for string variable[8]*/
4315 struct WBT_
**closurevariable
= NULL
;
4316 trace
.prev
= tracehead
; tracehead
= &trace
;
4317 trace
.file
= LOCATE_typing
;
4318 /* Register variable[0]: Local variable */
4320 /* Register variable[1]: Local variable */
4321 variable
[1] = param0
;
4322 /* Register variable[2]: Method return value and escape marker */
4323 /* Register variable[3]: Result */
4324 variable
[3] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable
[0])(variable
[0]) /*AAttrFormExpr::n_expr*/;
4325 /* Register variable[3]: Result */
4326 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*AbsSyntaxVisitor::check_expr*/;
4327 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
4328 goto return_label167
;
4330 /* Register variable[3]: Local variable */
4331 /* Register variable[4]: Result */
4332 variable
[4] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable
[0])(variable
[0]) /*AAttrFormExpr::n_expr*/;
4333 /* Register variable[4]: Result */
4334 variable
[4] = CALL_syntax_base___PExpr___stype(variable
[4])(variable
[4]) /*PExpr::stype*/;
4335 variable
[3] = variable
[4];
4336 /* Register variable[4]: Local variable */
4337 /* Register variable[5]: Result */
4338 variable
[5] = CALL_parser_nodes___AAttrFormExpr___n_id(variable
[0])(variable
[0]) /*AAttrFormExpr::n_id*/;
4339 /* Register variable[5]: Result */
4340 variable
[5] = CALL_syntax_base___Token___to_symbol(variable
[5])(variable
[5]) /*Token::to_symbol*/;
4341 variable
[4] = variable
[5];
4342 /* Register variable[5]: Local variable */
4343 /* Register variable[6]: Result */
4344 variable
[6] = CALL_static_type___MMType___local_class( variable
[3] /*type_recv*/)( variable
[3] /*type_recv*/) /*MMType::local_class*/;
4345 variable
[5] = variable
[6];
4346 /* Register variable[6]: Result */
4347 variable
[6] = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name( variable
[5] /*lc*/)( variable
[5] /*lc*/, variable
[4] /*name*/) /*MMLocalClass::has_global_property_by_name*/;
4348 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[6])))) { /*if*/
4349 variable
[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4350 /* Register variable[7]: Once String constant */
4351 if (once_value_168
!= NIT_NULL
) variable
[7] = once_value_168
;
4353 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attribute "), TAG_Int(17)) /*new String*/;
4354 once_value_168
= variable
[7];
4356 /* Register variable[7]: Result */
4357 /* Ensure var variable[7]: super-string element*/
4358 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[7]) /*AbstractArray::add*/;
4359 variable
[7] = variable
[4] /*name*/ /* Ensure var: super-string element*/;
4360 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/) /*AbstractArray::add*/;
4361 /* Register variable[7]: Once String constant */
4362 if (once_value_169
!= NIT_NULL
) variable
[7] = once_value_169
;
4364 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString(" doesn't exists in "), TAG_Int(19)) /*new String*/;
4365 once_value_169
= variable
[7];
4367 /* Register variable[7]: Result */
4368 /* Ensure var variable[7]: super-string element*/
4369 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[7]) /*AbstractArray::add*/;
4370 variable
[7] = variable
[3] /*type_recv*/ /* Ensure var: super-string element*/;
4371 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/) /*AbstractArray::add*/;
4372 /* Register variable[7]: Once String constant */
4373 if (once_value_170
!= NIT_NULL
) variable
[7] = once_value_170
;
4375 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
4376 once_value_170
= variable
[7];
4378 /* Register variable[7]: Result */
4379 /* Ensure var variable[7]: super-string element*/
4380 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[7]) /*AbstractArray::add*/;
4381 /* Register variable[6]: Result */
4382 variable
[6] = CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/;
4383 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[6]) /*AbsSyntaxVisitor::error*/;
4384 goto return_label167
;
4386 /* Register variable[6]: Local variable */
4387 /* Register variable[7]: Result */
4388 variable
[7] = CALL_abstractmetamodel___MMLocalClass___select_attribute( variable
[5] /*lc*/)( variable
[5] /*lc*/, variable
[4] /*name*/) /*MMLocalClass::select_attribute*/;
4389 variable
[6] = variable
[7];
4390 /* Register variable[7]: Result */
4391 variable
[7] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
4392 /* Register variable[8]: Result */
4393 variable
[8] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[6] /*prop*/)( variable
[6] /*prop*/) /*MMLocalProperty::global*/;
4394 /* Register variable[8]: Result */
4395 variable
[8] = CALL_abstractmetamodel___MMGlobalProperty___local_class(variable
[8])(variable
[8]) /*MMGlobalProperty::local_class*/;
4396 /* Register variable[8]: Result */
4397 variable
[8] = CALL_abstractmetamodel___MMLocalClass___module(variable
[8])(variable
[8]) /*MMLocalClass::module*/;
4398 /* Register variable[7]: Result */
4399 variable
[7] = CALL_abstractmetamodel___MMModule___visibility_for(variable
[7])(variable
[7], variable
[8]) /*MMModule::visibility_for*/;
4400 /* Register variable[7]: Result */
4401 variable
[7] = TAG_Bool(UNTAG_Int(variable
[7])<UNTAG_Int( TAG_Int(3)));
4402 if (UNTAG_Bool(variable
[7])) { /*if*/
4403 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4404 /* Register variable[8]: Once String constant */
4405 if (once_value_171
!= NIT_NULL
) variable
[8] = once_value_171
;
4407 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attribute "), TAG_Int(17)) /*new String*/;
4408 once_value_171
= variable
[8];
4410 /* Register variable[8]: Result */
4411 /* Ensure var variable[8]: super-string element*/
4412 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
4413 variable
[8] = variable
[4] /*name*/ /* Ensure var: super-string element*/;
4414 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/) /*AbstractArray::add*/;
4415 /* Register variable[8]: Once String constant */
4416 if (once_value_172
!= NIT_NULL
) variable
[8] = once_value_172
;
4418 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(" from "), TAG_Int(6)) /*new String*/;
4419 once_value_172
= variable
[8];
4421 /* Register variable[8]: Result */
4422 /* Ensure var variable[8]: super-string element*/
4423 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
4424 /* Register variable[8]: Result */
4425 variable
[8] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[6] /*prop*/)( variable
[6] /*prop*/) /*MMLocalProperty::global*/;
4426 /* Register variable[8]: Result */
4427 variable
[8] = CALL_abstractmetamodel___MMGlobalProperty___local_class(variable
[8])(variable
[8]) /*MMGlobalProperty::local_class*/;
4428 /* Register variable[8]: Result */
4429 variable
[8] = CALL_abstractmetamodel___MMLocalClass___module(variable
[8])(variable
[8]) /*MMLocalClass::module*/;
4430 /* Ensure var variable[8]: super-string element*/
4431 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/) /*AbstractArray::add*/;
4432 /* Register variable[8]: Once String constant */
4433 if (once_value_173
!= NIT_NULL
) variable
[8] = once_value_173
;
4435 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(" is invisible in "), TAG_Int(17)) /*new String*/;
4436 once_value_173
= variable
[8];
4438 /* Register variable[8]: Result */
4439 /* Ensure var variable[8]: super-string element*/
4440 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
4441 /* Register variable[8]: Result */
4442 variable
[8] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
4443 /* Ensure var variable[8]: super-string element*/
4444 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/) /*AbstractArray::add*/;
4445 /* Register variable[8]: Once String constant */
4446 if (once_value_174
!= NIT_NULL
) variable
[8] = once_value_174
;
4448 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
4449 once_value_174
= variable
[8];
4451 /* Register variable[8]: Result */
4452 /* Ensure var variable[8]: super-string element*/
4453 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
4454 /* Register variable[7]: Result */
4455 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
4456 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[7]) /*AbsSyntaxVisitor::error*/;
4458 ATTR_typing___AAttrFormExpr____prop(variable
[0]) /*AAttrFormExpr::_prop*/ = variable
[6] /*prop*/;
4459 /* Register variable[7]: Local variable */
4460 /* Register variable[8]: Result */
4461 variable
[8] = CALL_static_type___MMLocalProperty___signature_for( variable
[6] /*prop*/)( variable
[6] /*prop*/, variable
[3] /*type_recv*/) /*MMLocalProperty::signature_for*/;
4462 /* Register variable[8]: Result */
4463 variable
[8] = CALL_static_type___MMSignature___return_type(variable
[8])(variable
[8]) /*MMSignature::return_type*/;
4464 variable
[7] = variable
[8];
4465 /* Register variable[8]: Result */
4466 variable
[8] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable
[0])(variable
[0]) /*AAttrFormExpr::n_expr*/;
4467 /* Register variable[8]: Result */
4468 variable
[8] = CALL_typing___PExpr___is_self(variable
[8])(variable
[8]) /*PExpr::is_self*/;
4469 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[8])))) { /*if*/
4470 /* Register variable[8]: Result */
4471 variable
[8] = CALL_static_type___MMType___not_for_self( variable
[7] /*at*/)( variable
[7] /*at*/) /*MMType::not_for_self*/;
4472 variable
[7] = variable
[8] /*at=*/;
4474 ATTR_typing___AAttrFormExpr____attr_type(variable
[0]) /*AAttrFormExpr::_attr_type*/ = variable
[7] /*at*/;
4475 return_label167
: while(false);
4476 tracehead
= trace
.prev
;
4479 void typing___AAttrExpr___after_typing(val_t self
, val_t param0
) {
4480 struct trace_t trace
= {NULL
, NULL
, 973, LOCATE_typing___AAttrExpr___after_typing
};
4482 struct WBT_
**closurevariable
= NULL
;
4483 trace
.prev
= tracehead
; tracehead
= &trace
;
4484 trace
.file
= LOCATE_typing
;
4485 /* Register variable[0]: Local variable */
4487 /* Register variable[1]: Local variable */
4488 variable
[1] = param0
;
4489 /* Register variable[2]: Method return value and escape marker */
4490 CALL_typing___AAttrFormExpr___do_typing(variable
[0])(variable
[0], variable
[1] /*v*/) /*AAttrFormExpr::do_typing*/;
4491 /* Register variable[3]: Result */
4492 variable
[3] = CALL_typing___AAttrFormExpr___prop(variable
[0])(variable
[0]) /*AAttrFormExpr::prop*/;
4493 /* Register variable[3]: Result */
4494 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
4495 if (UNTAG_Bool(variable
[3])) { /*if*/
4496 goto return_label175
;
4498 /* Register variable[3]: Result */
4499 variable
[3] = CALL_typing___AAttrFormExpr___attr_type(variable
[0])(variable
[0]) /*AAttrFormExpr::attr_type*/;
4500 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
4501 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
4502 return_label175
: while(false);
4503 tracehead
= trace
.prev
;
4506 void typing___AAttrAssignExpr___after_typing(val_t self
, val_t param0
) {
4507 struct trace_t trace
= {NULL
, NULL
, 983, LOCATE_typing___AAttrAssignExpr___after_typing
};
4509 struct WBT_
**closurevariable
= NULL
;
4510 trace
.prev
= tracehead
; tracehead
= &trace
;
4511 trace
.file
= LOCATE_typing
;
4512 /* Register variable[0]: Local variable */
4514 /* Register variable[1]: Local variable */
4515 variable
[1] = param0
;
4516 /* Register variable[2]: Method return value and escape marker */
4517 CALL_typing___AAttrFormExpr___do_typing(variable
[0])(variable
[0], variable
[1] /*v*/) /*AAttrFormExpr::do_typing*/;
4518 /* Register variable[3]: Result */
4519 variable
[3] = CALL_typing___AAttrFormExpr___prop(variable
[0])(variable
[0]) /*AAttrFormExpr::prop*/;
4520 /* Register variable[3]: Result */
4521 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
4522 if (UNTAG_Bool(variable
[3])) { /*if*/
4523 goto return_label176
;
4525 /* Register variable[3]: Result */
4526 variable
[3] = CALL_parser_nodes___AAssignFormExpr___n_value(variable
[0])(variable
[0]) /*AAssignFormExpr::n_value*/;
4527 /* Register variable[4]: Result */
4528 variable
[4] = CALL_typing___AAttrFormExpr___attr_type(variable
[0])(variable
[0]) /*AAttrFormExpr::attr_type*/;
4529 /* Register variable[3]: Result */
4530 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3], variable
[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
4531 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
4532 goto return_label176
;
4534 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
4535 return_label176
: while(false);
4536 tracehead
= trace
.prev
;
4539 void typing___AAttrReassignExpr___after_typing(val_t self
, val_t param0
) {
4540 struct trace_t trace
= {NULL
, NULL
, 993, LOCATE_typing___AAttrReassignExpr___after_typing
};
4542 struct WBT_
**closurevariable
= NULL
;
4543 trace
.prev
= tracehead
; tracehead
= &trace
;
4544 trace
.file
= LOCATE_typing
;
4545 /* Register variable[0]: Local variable */
4547 /* Register variable[1]: Local variable */
4548 variable
[1] = param0
;
4549 /* Register variable[2]: Method return value and escape marker */
4550 CALL_typing___AAttrFormExpr___do_typing(variable
[0])(variable
[0], variable
[1] /*v*/) /*AAttrFormExpr::do_typing*/;
4551 /* Register variable[3]: Result */
4552 variable
[3] = CALL_typing___AAttrFormExpr___prop(variable
[0])(variable
[0]) /*AAttrFormExpr::prop*/;
4553 /* Register variable[3]: Result */
4554 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
4555 if (UNTAG_Bool(variable
[3])) { /*if*/
4556 goto return_label177
;
4558 /* Register variable[3]: Local variable */
4559 /* Register variable[4]: Result */
4560 variable
[4] = CALL_typing___AAttrFormExpr___attr_type(variable
[0])(variable
[0]) /*AAttrFormExpr::attr_type*/;
4561 /* Register variable[4]: Result */
4562 variable
[4] = CALL_typing___AReassignFormExpr___do_rvalue_typing(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[4]) /*AReassignFormExpr::do_rvalue_typing*/;
4563 variable
[3] = variable
[4];
4564 /* Register variable[4]: Result */
4565 variable
[4] = TAG_Bool(( variable
[3] /*t*/ == NIT_NULL
/*null*/) || (( variable
[3] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*t*/)( variable
[3] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))));
4566 if (UNTAG_Bool(variable
[4])) { /*if*/
4567 goto return_label177
;
4569 /* Register variable[4]: Result */
4570 variable
[4] = CALL_parser_nodes___AReassignFormExpr___n_value(variable
[0])(variable
[0]) /*AReassignFormExpr::n_value*/;
4571 /* Register variable[4]: Result */
4572 variable
[4] = CALL_syntax_base___PExpr___stype(variable
[4])(variable
[4]) /*PExpr::stype*/;
4573 CALL_syntax_base___AbsSyntaxVisitor___check_conform( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[3] /*t*/, variable
[4]) /*AbsSyntaxVisitor::check_conform*/;
4574 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
4575 return_label177
: while(false);
4576 tracehead
= trace
.prev
;
4579 void typing___AIssetAttrExpr___after_typing(val_t self
, val_t param0
) {
4580 struct trace_t trace
= {NULL
, NULL
, 1005, LOCATE_typing___AIssetAttrExpr___after_typing
};
4581 static val_t once_value_179
= NIT_NULL
; /* Once value for string variable[3]*/
4583 struct WBT_
**closurevariable
= NULL
;
4584 trace
.prev
= tracehead
; tracehead
= &trace
;
4585 trace
.file
= LOCATE_typing
;
4586 /* Register variable[0]: Local variable */
4588 /* Register variable[1]: Local variable */
4589 variable
[1] = param0
;
4590 /* Register variable[2]: Method return value and escape marker */
4591 CALL_typing___AAttrFormExpr___do_typing(variable
[0])(variable
[0], variable
[1] /*v*/) /*AAttrFormExpr::do_typing*/;
4592 /* Register variable[3]: Result */
4593 variable
[3] = CALL_typing___AAttrFormExpr___prop(variable
[0])(variable
[0]) /*AAttrFormExpr::prop*/;
4594 /* Register variable[3]: Result */
4595 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
4596 if (UNTAG_Bool(variable
[3])) { /*if*/
4597 goto return_label178
;
4599 /* Register variable[3]: Result */
4600 variable
[3] = CALL_typing___AAttrFormExpr___attr_type(variable
[0])(variable
[0]) /*AAttrFormExpr::attr_type*/;
4601 /* Register variable[3]: Result */
4602 variable
[3] = CALL_static_type___MMType___is_nullable(variable
[3])(variable
[3]) /*MMType::is_nullable*/;
4603 if (UNTAG_Bool(variable
[3])) { /*if*/
4604 /* Register variable[3]: Once String constant */
4605 if (once_value_179
!= NIT_NULL
) variable
[3] = once_value_179
;
4607 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("Error: isset on a nullable attribute."), TAG_Int(37)) /*new String*/;
4608 once_value_179
= variable
[3];
4610 /* Register variable[3]: Result */
4611 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[3]) /*AbsSyntaxVisitor::error*/;
4613 /* Register variable[3]: Result */
4614 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
4615 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
4616 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
4617 return_label178
: while(false);
4618 tracehead
= trace
.prev
;
4621 val_t
typing___AAbsAbsSendExpr___prop_signature(val_t self
) {
4622 struct trace_t trace
= {NULL
, NULL
, 1019, LOCATE_typing___AAbsAbsSendExpr___prop_signature
};
4623 val_t
*variable
= NULL
;
4624 struct WBT_
**closurevariable
= NULL
;
4625 trace
.prev
= tracehead
; tracehead
= &trace
;
4626 trace
.file
= LOCATE_typing
;
4627 tracehead
= trace
.prev
;
4628 return ATTR_typing___AAbsAbsSendExpr____prop_signature( self
) /*AAbsAbsSendExpr::_prop_signature*/;
4630 val_t
typing___AAbsAbsSendExpr___arguments(val_t self
) {
4631 struct trace_t trace
= {NULL
, NULL
, 1022, LOCATE_typing___AAbsAbsSendExpr___arguments
};
4632 val_t
*variable
= NULL
;
4633 struct WBT_
**closurevariable
= NULL
;
4634 trace
.prev
= tracehead
; tracehead
= &trace
;
4635 trace
.file
= LOCATE_typing
;
4636 tracehead
= trace
.prev
;
4637 return ATTR_typing___AAbsAbsSendExpr____arguments( self
) /*AAbsAbsSendExpr::_arguments*/;
4639 val_t
typing___AAbsAbsSendExpr___process_signature(val_t self
, val_t param0
, val_t param1
, val_t param2
, val_t param3
) {
4640 struct trace_t trace
= {NULL
, NULL
, 1025, LOCATE_typing___AAbsAbsSendExpr___process_signature
};
4641 static val_t once_value_181
= NIT_NULL
; /* Once value for string variable[10]*/
4642 static val_t once_value_182
= NIT_NULL
; /* Once value for string variable[10]*/
4644 struct WBT_
**closurevariable
= NULL
;
4645 trace
.prev
= tracehead
; tracehead
= &trace
;
4646 trace
.file
= LOCATE_typing
;
4647 /* Register variable[0]: Local variable */
4649 /* Register variable[1]: Local variable */
4650 variable
[1] = param0
;
4651 /* Register variable[2]: Local variable */
4652 variable
[2] = param1
;
4653 /* Register variable[3]: Local variable */
4654 variable
[3] = param2
;
4655 /* Register variable[4]: Local variable */
4656 variable
[4] = param3
;
4657 /* Register variable[5]: Method return value and escape marker */
4658 /* Register variable[6]: Local variable */
4659 /* Register variable[7]: Result */
4660 variable
[7] = CALL_vararg___MMSignature___vararg_rank( variable
[2] /*psig*/)( variable
[2] /*psig*/) /*MMSignature::vararg_rank*/;
4661 variable
[6] = variable
[7];
4662 /* Register variable[7]: Local variable */
4663 /* Register variable[8]: Result */
4664 variable
[8] = CALL_static_type___MMSignature___arity( variable
[2] /*psig*/)( variable
[2] /*psig*/) /*MMSignature::arity*/;
4665 variable
[7] = variable
[8];
4666 /* Register variable[8]: Local variable */
4667 /*variable[8] is variable raw_arity*/
4668 /* Register variable[9]: Result */
4669 variable
[9] = TAG_Bool(( variable
[4] /*raw_args*/ == NIT_NULL
/*null*/) || (( variable
[4] /*raw_args*/ != NIT_NULL
) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*raw_args*/)( variable
[4] /*raw_args*/, NIT_NULL
/*null*/) /*AbstractArrayRead::==*/)));
4670 if (UNTAG_Bool(variable
[9])) { /*if*/
4671 variable
[8] = TAG_Int(0) /*raw_arity=*/;
4673 /* Register variable[9]: Result */
4674 variable
[9] = CALL_abstract_collection___Collection___length( variable
[4] /*raw_args*/)( variable
[4] /*raw_args*/) /*AbstractArrayRead::length*/;
4675 variable
[8] = variable
[9] /*raw_arity=*/;
4677 /* Register variable[9]: Result */
4678 variable
[9] = TAG_Bool(UNTAG_Int( variable
[7] /*par_arity*/)>UNTAG_Int( variable
[8] /*raw_arity*/));
4679 /* Ensure var variable[9]: Left 'or' operand*/
4680 if (!UNTAG_Bool(variable
[9])) { /* or */
4681 /* Register variable[9]: Result */
4682 variable
[9] = TAG_Bool(( variable
[7] /*par_arity*/)!=( variable
[8] /*raw_arity*/));
4683 /* Ensure var variable[9]: Left 'and' operand*/
4684 if (UNTAG_Bool(variable
[9])) { /* and */
4685 /* Register variable[9]: Result */
4686 variable
[9] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
4687 /* Register variable[9]: Result */
4688 variable
[9] = TAG_Bool(( variable
[6] /*par_vararg*/)==(variable
[9]));
4690 /* Register variable[9]: Result */
4692 /* Register variable[9]: Result */
4693 if (UNTAG_Bool(variable
[9])) { /*if*/
4694 variable
[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4695 /* Register variable[10]: Once String constant */
4696 if (once_value_181
!= NIT_NULL
) variable
[10] = once_value_181
;
4698 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: '"), TAG_Int(8)) /*new String*/;
4699 once_value_181
= variable
[10];
4701 /* Register variable[10]: Result */
4702 /* Ensure var variable[10]: super-string element*/
4703 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
4704 variable
[10] = variable
[3] /*name*/ /* Ensure var: super-string element*/;
4705 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/) /*AbstractArray::add*/;
4706 /* Register variable[10]: Once String constant */
4707 if (once_value_182
!= NIT_NULL
) variable
[10] = once_value_182
;
4709 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString("' arity missmatch."), TAG_Int(18)) /*new String*/;
4710 once_value_182
= variable
[10];
4712 /* Register variable[10]: Result */
4713 /* Ensure var variable[10]: super-string element*/
4714 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
4715 /* Register variable[9]: Result */
4716 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
4717 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[9]) /*AbsSyntaxVisitor::error*/;
4718 variable
[5] = NIT_NULL
/*null*/;
4719 goto return_label180
;
4721 /* Register variable[9]: Local variable */
4722 variable
[9] = TAG_Int(0);
4723 /* Register variable[10]: Local variable */
4724 /* Register variable[11]: Result */
4725 variable
[11] = NEW_Array_array___Array___init() /*new Array[PExpr]*/;
4726 variable
[10] = variable
[11];
4727 /* Register variable[11]: Result */
4728 variable
[11] = NEW_Range_range___Range___without_last( TAG_Int(0), variable
[7] /*par_arity*/) /*new Range[Int]*/;
4729 /* Register variable[11]: For iterator */
4730 variable
[11] = CALL_abstract_collection___Collection___iterator(variable
[11])(variable
[11]) /*Range::iterator*/;
4731 while (true) { /*for*/
4732 /* Register variable[12]: For 'is_ok' result */
4733 variable
[12] = CALL_abstract_collection___Iterator___is_ok(variable
[11])(variable
[11]) /*Iterator::is_ok*/;
4734 if (!UNTAG_Bool(variable
[12])) break; /*for*/
4735 variable
[12] = CALL_abstract_collection___Iterator___item(variable
[11])(variable
[11]) /*Iterator::item*/ /* Ensure var: For item*/;
4736 /* Register variable[13]: Local variable */
4737 variable
[13] = variable
[12];
4738 /* Register variable[14]: Local variable */
4739 /*variable[14] is variable a*/
4740 /* Register variable[15]: Local variable */
4741 /* Register variable[16]: Result */
4742 variable
[16] = CALL_static_type___MMSignature_____bra( variable
[2] /*psig*/)( variable
[2] /*psig*/, variable
[13] /*par_idx*/) /*MMSignature::[]*/;
4743 variable
[15] = variable
[16];
4744 /* Register variable[16]: Result */
4745 variable
[16] = TAG_Bool(( variable
[13] /*par_idx*/)==( variable
[6] /*par_vararg*/));
4746 if (UNTAG_Bool(variable
[16])) { /*if*/
4747 /* Register variable[16]: Local variable */
4748 /* Register variable[17]: Result */
4749 variable
[17] = NEW_Array_array___Array___init() /*new Array[PExpr]*/;
4750 variable
[16] = variable
[17];
4751 /* Register variable[17]: Result */
4752 variable
[17] = TAG_Int(UNTAG_Int( variable
[8] /*raw_arity*/)-UNTAG_Int( variable
[7] /*par_arity*/));
4753 /* Register variable[17]: Result */
4754 variable
[17] = NEW_Range_range___Range___init( TAG_Int(0), variable
[17]) /*new Range[Int]*/;
4755 /* Register variable[17]: For iterator */
4756 variable
[17] = CALL_abstract_collection___Collection___iterator(variable
[17])(variable
[17]) /*Range::iterator*/;
4757 while (true) { /*for*/
4758 /* Register variable[18]: For 'is_ok' result */
4759 variable
[18] = CALL_abstract_collection___Iterator___is_ok(variable
[17])(variable
[17]) /*Iterator::is_ok*/;
4760 if (!UNTAG_Bool(variable
[18])) break; /*for*/
4761 variable
[18] = CALL_abstract_collection___Iterator___item(variable
[17])(variable
[17]) /*Iterator::item*/ /* Ensure var: For item*/;
4762 /* Register variable[19]: Local variable */
4763 variable
[19] = variable
[18];
4764 /* Register variable[20]: Local variable */
4765 variable
[20] = variable
[4] /*raw_args*/;
4766 /* Register variable[21]: Local variable */
4767 variable
[21] = variable
[9] /*arg_idx*/;
4768 /* Register variable[22]: Method return value and escape marker */
4769 /* Register variable[23]: Result */
4770 variable
[23] = TAG_Bool(UNTAG_Int( variable
[21] /*index*/)>=UNTAG_Int( TAG_Int(0)));
4771 /* Ensure var variable[23]: Left 'and' operand*/
4772 if (UNTAG_Bool(variable
[23])) { /* and */
4773 /* Register variable[23]: Result */
4774 variable
[23] = ATTR_array___AbstractArrayRead____length(variable
[20]) /*AbstractArrayRead::_length*/;
4775 /* Register variable[23]: Result */
4776 variable
[23] = TAG_Bool(UNTAG_Int( variable
[21] /*index*/)<UNTAG_Int(variable
[23]));
4778 /* Register variable[23]: Result */
4779 if (!UNTAG_Bool(variable
[23])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_typing
, 234); nit_exit(1);}
4780 /* Register variable[23]: Result */
4781 variable
[23] = ATTR_array___Array____items(variable
[20]) /*Array::_items*/;
4782 /* Register variable[23]: Result */
4783 variable
[23] = UNBOX_NativeArray(variable
[23])[UNTAG_Int( variable
[21] /*index*/)];
4784 variable
[22] = variable
[23];
4785 goto return_label185
;
4786 return_label185
: while(false);
4787 /* Register variable[20]: Result */
4788 variable
[20] = variable
[22];
4789 variable
[14] = variable
[20] /*a=*/;
4790 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[14] /*a*/, variable
[15] /*par_type*/) /*AbsSyntaxVisitor::check_conform_expr*/;
4791 CALL_abstract_collection___SimpleCollection___add( variable
[16] /*star*/)( variable
[16] /*star*/, variable
[14] /*a*/) /*AbstractArray::add*/;
4792 /* Register variable[20]: Result */
4793 variable
[20] = TAG_Int(UNTAG_Int( variable
[9] /*arg_idx*/)+UNTAG_Int( TAG_Int(1)));
4794 variable
[9] = variable
[20] /*arg_idx=*/;
4795 continue_184
: while(0);
4796 CALL_abstract_collection___Iterator___next(variable
[17])(variable
[17]) /*Iterator::next*/;
4798 break_184
: while(0);
4799 /* Register variable[17]: Local variable */
4800 /* Register variable[18]: Result */
4801 variable
[18] = NEW_AArrayExpr_parser_prod___AArrayExpr___init_aarrayexpr( variable
[16] /*star*/) /*new AArrayExpr*/;
4802 variable
[17] = variable
[18];
4803 CALL_typing___AArrayExpr___do_typing( variable
[17] /*aa*/)( variable
[17] /*aa*/, variable
[1] /*v*/, variable
[15] /*par_type*/) /*AArrayExpr::do_typing*/;
4804 variable
[14] = variable
[17] /*aa*/ /*a=*/;
4806 /* Register variable[16]: Local variable */
4807 variable
[16] = variable
[4] /*raw_args*/;
4808 /* Register variable[17]: Local variable */
4809 variable
[17] = variable
[9] /*arg_idx*/;
4810 /* Register variable[18]: Method return value and escape marker */
4811 /* Register variable[19]: Result */
4812 variable
[19] = TAG_Bool(UNTAG_Int( variable
[17] /*index*/)>=UNTAG_Int( TAG_Int(0)));
4813 /* Ensure var variable[19]: Left 'and' operand*/
4814 if (UNTAG_Bool(variable
[19])) { /* and */
4815 /* Register variable[19]: Result */
4816 variable
[19] = ATTR_array___AbstractArrayRead____length(variable
[16]) /*AbstractArrayRead::_length*/;
4817 /* Register variable[19]: Result */
4818 variable
[19] = TAG_Bool(UNTAG_Int( variable
[17] /*index*/)<UNTAG_Int(variable
[19]));
4820 /* Register variable[19]: Result */
4821 if (!UNTAG_Bool(variable
[19])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_typing
, 234); nit_exit(1);}
4822 /* Register variable[19]: Result */
4823 variable
[19] = ATTR_array___Array____items(variable
[16]) /*Array::_items*/;
4824 /* Register variable[19]: Result */
4825 variable
[19] = UNBOX_NativeArray(variable
[19])[UNTAG_Int( variable
[17] /*index*/)];
4826 variable
[18] = variable
[19];
4827 goto return_label186
;
4828 return_label186
: while(false);
4829 /* Register variable[16]: Result */
4830 variable
[16] = variable
[18];
4831 variable
[14] = variable
[16] /*a=*/;
4832 CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[14] /*a*/, variable
[15] /*par_type*/) /*AbsSyntaxVisitor::check_conform_expr*/;
4833 /* Register variable[16]: Result */
4834 variable
[16] = TAG_Int(UNTAG_Int( variable
[9] /*arg_idx*/)+UNTAG_Int( TAG_Int(1)));
4835 variable
[9] = variable
[16] /*arg_idx=*/;
4837 CALL_abstract_collection___SimpleCollection___add( variable
[10] /*args*/)( variable
[10] /*args*/, variable
[14] /*a*/) /*AbstractArray::add*/;
4838 continue_183
: while(0);
4839 CALL_abstract_collection___Iterator___next(variable
[11])(variable
[11]) /*Iterator::next*/;
4841 break_183
: while(0);
4842 variable
[5] = variable
[10] /*args*/;
4843 goto return_label180
;
4844 return_label180
: while(false);
4845 tracehead
= trace
.prev
;
4848 val_t
typing___AAbsAbsSendExpr___process_closures(val_t self
, val_t param0
, val_t param1
, val_t param2
, val_t param3
) {
4849 struct trace_t trace
= {NULL
, NULL
, 1062, LOCATE_typing___AAbsAbsSendExpr___process_closures
};
4850 static val_t once_value_189
= NIT_NULL
; /* Once value for string variable[10]*/
4851 static val_t once_value_190
= NIT_NULL
; /* Once value for string variable[10]*/
4852 static val_t once_value_191
= NIT_NULL
; /* Once value for string variable[10]*/
4853 static val_t once_value_192
= NIT_NULL
; /* Once value for string variable[10]*/
4854 static val_t once_value_193
= NIT_NULL
; /* Once value for string variable[10]*/
4855 static val_t once_value_194
= NIT_NULL
; /* Once value for string variable[10]*/
4856 static val_t once_value_198
= NIT_NULL
; /* Once value for string variable[10]*/
4857 static val_t once_value_199
= NIT_NULL
; /* Once value for string variable[10]*/
4858 static val_t once_value_200
= NIT_NULL
; /* Once value for string variable[10]*/
4860 struct WBT_
**closurevariable
= NULL
;
4861 trace
.prev
= tracehead
; tracehead
= &trace
;
4862 trace
.file
= LOCATE_typing
;
4863 /* Register variable[0]: Local variable */
4865 /* Register variable[1]: Local variable */
4866 variable
[1] = param0
;
4867 /* Register variable[2]: Local variable */
4868 variable
[2] = param1
;
4869 /* Register variable[3]: Local variable */
4870 variable
[3] = param2
;
4871 /* Register variable[4]: Local variable */
4872 variable
[4] = param3
;
4873 /* Register variable[5]: Method return value and escape marker */
4874 /* Register variable[6]: Local variable */
4875 /* Register variable[7]: Result */
4876 variable
[7] = CALL_static_type___MMSignature___return_type( variable
[2] /*psig*/)( variable
[2] /*psig*/) /*MMSignature::return_type*/;
4877 variable
[6] = variable
[7];
4878 /* Register variable[7]: Local variable */
4879 /* Register variable[8]: Result */
4880 variable
[8] = CALL_static_type___MMSignature___closures( variable
[2] /*psig*/)( variable
[2] /*psig*/) /*MMSignature::closures*/;
4881 variable
[7] = variable
[8];
4882 /* Register variable[8]: Local variable */
4883 variable
[8] = TAG_Int(0);
4884 /* Register variable[9]: For iterator */
4885 variable
[9] = CALL_abstract_collection___Collection___iterator( variable
[7] /*cs*/)( variable
[7] /*cs*/) /*AbstractArrayRead::iterator*/;
4886 while (true) { /*for*/
4887 /* Register variable[10]: For 'is_ok' result */
4888 variable
[10] = CALL_abstract_collection___Iterator___is_ok(variable
[9])(variable
[9]) /*ArrayIterator::is_ok*/;
4889 if (!UNTAG_Bool(variable
[10])) break; /*for*/
4890 variable
[10] = CALL_abstract_collection___Iterator___item(variable
[9])(variable
[9]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
4891 /* Register variable[11]: Local variable */
4892 variable
[11] = variable
[10];
4893 /* Register variable[12]: Result */
4894 variable
[12] = CALL_static_type___MMClosure___is_optional( variable
[11] /*c*/)( variable
[11] /*c*/) /*MMClosure::is_optional*/;
4895 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[12])))) { /*if*/
4896 variable
[8] = TAG_Int(UNTAG_Int(variable
[8])+UNTAG_Int( TAG_Int(1))) /*min_arity*/;
4898 continue_188
: while(0);
4899 CALL_abstract_collection___Iterator___next(variable
[9])(variable
[9]) /*ArrayIterator::next*/;
4901 break_188
: while(0);
4902 /* Register variable[9]: Result */
4903 variable
[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*cd*/ == NIT_NULL
/*null*/) || (( variable
[4] /*cd*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*cd*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*cd*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*cd*/)( variable
[4] /*cd*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
4904 if (UNTAG_Bool(variable
[9])) { /*if*/
4905 /* Register variable[9]: Result */
4906 variable
[9] = CALL_abstract_collection___Collection___length( variable
[7] /*cs*/)( variable
[7] /*cs*/) /*AbstractArrayRead::length*/;
4907 /* Register variable[9]: Result */
4908 variable
[9] = TAG_Bool((variable
[9])==( TAG_Int(0)));
4909 if (UNTAG_Bool(variable
[9])) { /*if*/
4910 variable
[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4911 /* Register variable[10]: Once String constant */
4912 if (once_value_189
!= NIT_NULL
) variable
[10] = once_value_189
;
4914 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)) /*new String*/;
4915 once_value_189
= variable
[10];
4917 /* Register variable[10]: Result */
4918 /* Ensure var variable[10]: super-string element*/
4919 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
4920 variable
[10] = variable
[3] /*name*/ /* Ensure var: super-string element*/;
4921 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/) /*AbstractArray::add*/;
4922 /* Register variable[10]: Once String constant */
4923 if (once_value_190
!= NIT_NULL
) variable
[10] = once_value_190
;
4925 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(" does not require blocks."), TAG_Int(25)) /*new String*/;
4926 once_value_190
= variable
[10];
4928 /* Register variable[10]: Result */
4929 /* Ensure var variable[10]: super-string element*/
4930 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
4931 /* Register variable[9]: Result */
4932 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
4933 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[9]) /*AbsSyntaxVisitor::error*/;
4935 /* Register variable[9]: Result */
4936 variable
[9] = CALL_abstract_collection___Collection___length( variable
[4] /*cd*/)( variable
[4] /*cd*/) /*AbstractArrayRead::length*/;
4937 /* Register variable[10]: Result */
4938 variable
[10] = CALL_abstract_collection___Collection___length( variable
[7] /*cs*/)( variable
[7] /*cs*/) /*AbstractArrayRead::length*/;
4939 /* Register variable[9]: Result */
4940 variable
[9] = TAG_Bool(UNTAG_Int(variable
[9])>UNTAG_Int(variable
[10]));
4941 /* Ensure var variable[9]: Left 'or' operand*/
4942 if (!UNTAG_Bool(variable
[9])) { /* or */
4943 /* Register variable[9]: Result */
4944 variable
[9] = CALL_abstract_collection___Collection___length( variable
[4] /*cd*/)( variable
[4] /*cd*/) /*AbstractArrayRead::length*/;
4945 /* Register variable[9]: Result */
4946 variable
[9] = TAG_Bool(UNTAG_Int(variable
[9])<UNTAG_Int( variable
[8] /*min_arity*/));
4948 /* Register variable[9]: Result */
4949 if (UNTAG_Bool(variable
[9])) { /*if*/
4950 variable
[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4951 /* Register variable[10]: Once String constant */
4952 if (once_value_191
!= NIT_NULL
) variable
[10] = once_value_191
;
4954 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)) /*new String*/;
4955 once_value_191
= variable
[10];
4957 /* Register variable[10]: Result */
4958 /* Ensure var variable[10]: super-string element*/
4959 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
4960 variable
[10] = variable
[3] /*name*/ /* Ensure var: super-string element*/;
4961 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/) /*AbstractArray::add*/;
4962 /* Register variable[10]: Once String constant */
4963 if (once_value_192
!= NIT_NULL
) variable
[10] = once_value_192
;
4965 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(" requires "), TAG_Int(10)) /*new String*/;
4966 once_value_192
= variable
[10];
4968 /* Register variable[10]: Result */
4969 /* Ensure var variable[10]: super-string element*/
4970 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
4971 /* Register variable[10]: Result */
4972 variable
[10] = CALL_abstract_collection___Collection___length( variable
[7] /*cs*/)( variable
[7] /*cs*/) /*AbstractArrayRead::length*/;
4973 /* Ensure var variable[10]: super-string element*/
4974 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/) /*AbstractArray::add*/;
4975 /* Register variable[10]: Once String constant */
4976 if (once_value_193
!= NIT_NULL
) variable
[10] = once_value_193
;
4978 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(" blocks, "), TAG_Int(9)) /*new String*/;
4979 once_value_193
= variable
[10];
4981 /* Register variable[10]: Result */
4982 /* Ensure var variable[10]: super-string element*/
4983 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
4984 /* Register variable[10]: Result */
4985 variable
[10] = CALL_abstract_collection___Collection___length( variable
[4] /*cd*/)( variable
[4] /*cd*/) /*AbstractArrayRead::length*/;
4986 /* Ensure var variable[10]: super-string element*/
4987 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/) /*AbstractArray::add*/;
4988 /* Register variable[10]: Once String constant */
4989 if (once_value_194
!= NIT_NULL
) variable
[10] = once_value_194
;
4991 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(" found."), TAG_Int(7)) /*new String*/;
4992 once_value_194
= variable
[10];
4994 /* Register variable[10]: Result */
4995 /* Ensure var variable[10]: super-string element*/
4996 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
4997 /* Register variable[9]: Result */
4998 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
4999 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[9]) /*AbsSyntaxVisitor::error*/;
5001 /* Register variable[9]: Local variable */
5002 variable
[9] = NIT_NULL
/*null*/;
5003 /* Register variable[10]: Result */
5004 variable
[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[6] /*t*/ == NIT_NULL
/*null*/) || (( variable
[6] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[6] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[6] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[6] /*t*/)( variable
[6] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
5005 if (UNTAG_Bool(variable
[10])) { /*if*/
5006 /* Register variable[10]: Result */
5007 variable
[10] = NEW_Array_array___Array___init() /*new Array[ABreakExpr]*/;
5008 variable
[9] = variable
[10] /*break_list=*/;
5010 /* Register variable[10]: Result */
5011 variable
[10] = CALL_abstract_collection___Collection___length( variable
[4] /*cd*/)( variable
[4] /*cd*/) /*AbstractArrayRead::length*/;
5012 /* Register variable[10]: Result */
5013 variable
[10] = NEW_Range_range___Range___without_last( TAG_Int(0), variable
[10]) /*new Range[Int]*/;
5014 /* Register variable[10]: For iterator */
5015 variable
[10] = CALL_abstract_collection___Collection___iterator(variable
[10])(variable
[10]) /*Range::iterator*/;
5016 while (true) { /*for*/
5017 /* Register variable[11]: For 'is_ok' result */
5018 variable
[11] = CALL_abstract_collection___Iterator___is_ok(variable
[10])(variable
[10]) /*Iterator::is_ok*/;
5019 if (!UNTAG_Bool(variable
[11])) break; /*for*/
5020 variable
[11] = CALL_abstract_collection___Iterator___item(variable
[10])(variable
[10]) /*Iterator::item*/ /* Ensure var: For item*/;
5021 /* Register variable[12]: Local variable */
5022 variable
[12] = variable
[11];
5023 /* Register variable[13]: Local variable */
5024 /* Register variable[14]: Local variable */
5025 variable
[14] = variable
[7] /*cs*/;
5026 /* Register variable[15]: Local variable */
5027 variable
[15] = variable
[12] /*i*/;
5028 /* Register variable[16]: Method return value and escape marker */
5029 /* Register variable[17]: Result */
5030 variable
[17] = TAG_Bool(UNTAG_Int( variable
[15] /*index*/)>=UNTAG_Int( TAG_Int(0)));
5031 /* Ensure var variable[17]: Left 'and' operand*/
5032 if (UNTAG_Bool(variable
[17])) { /* and */
5033 /* Register variable[17]: Result */
5034 variable
[17] = ATTR_array___AbstractArrayRead____length(variable
[14]) /*AbstractArrayRead::_length*/;
5035 /* Register variable[17]: Result */
5036 variable
[17] = TAG_Bool(UNTAG_Int( variable
[15] /*index*/)<UNTAG_Int(variable
[17]));
5038 /* Register variable[17]: Result */
5039 if (!UNTAG_Bool(variable
[17])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_typing
, 234); nit_exit(1);}
5040 /* Register variable[17]: Result */
5041 variable
[17] = ATTR_array___Array____items(variable
[14]) /*Array::_items*/;
5042 /* Register variable[17]: Result */
5043 variable
[17] = UNBOX_NativeArray(variable
[17])[UNTAG_Int( variable
[15] /*index*/)];
5044 variable
[16] = variable
[17];
5045 goto return_label196
;
5046 return_label196
: while(false);
5047 /* Register variable[14]: Result */
5048 variable
[14] = variable
[16];
5049 variable
[13] = variable
[14];
5050 /* Register variable[14]: Local variable */
5051 /* Register variable[15]: Local variable */
5052 variable
[15] = variable
[4] /*cd*/;
5053 /* Register variable[16]: Local variable */
5054 variable
[16] = variable
[12] /*i*/;
5055 /* Register variable[17]: Method return value and escape marker */
5056 /* Register variable[18]: Result */
5057 variable
[18] = TAG_Bool(UNTAG_Int( variable
[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
5058 /* Ensure var variable[18]: Left 'and' operand*/
5059 if (UNTAG_Bool(variable
[18])) { /* and */
5060 /* Register variable[18]: Result */
5061 variable
[18] = ATTR_array___AbstractArrayRead____length(variable
[15]) /*AbstractArrayRead::_length*/;
5062 /* Register variable[18]: Result */
5063 variable
[18] = TAG_Bool(UNTAG_Int( variable
[16] /*index*/)<UNTAG_Int(variable
[18]));
5065 /* Register variable[18]: Result */
5066 if (!UNTAG_Bool(variable
[18])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_typing
, 234); nit_exit(1);}
5067 /* Register variable[18]: Result */
5068 variable
[18] = ATTR_array___Array____items(variable
[15]) /*Array::_items*/;
5069 /* Register variable[18]: Result */
5070 variable
[18] = UNBOX_NativeArray(variable
[18])[UNTAG_Int( variable
[16] /*index*/)];
5071 variable
[17] = variable
[18];
5072 goto return_label197
;
5073 return_label197
: while(false);
5074 /* Register variable[15]: Result */
5075 variable
[15] = variable
[17];
5076 variable
[14] = variable
[15];
5077 /* Register variable[15]: Local variable */
5078 /* Register variable[16]: Result */
5079 variable
[16] = NEW_EscapableClosure_escape___EscapableClosure___init( variable
[14] /*cdi*/, variable
[13] /*csi*/, variable
[9] /*break_list*/) /*new EscapableClosure*/;
5080 variable
[15] = variable
[16];
5081 /* Register variable[16]: Result */
5082 variable
[16] = CALL_typing___TypingVisitor___escapable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::escapable_ctx*/;
5083 CALL_escape___EscapableContext___push(variable
[16])(variable
[16], variable
[15] /*esc*/) /*EscapableContext::push*/;
5084 CALL_typing___PClosureDef___accept_typing2( variable
[14] /*cdi*/)( variable
[14] /*cdi*/, variable
[1] /*v*/, variable
[15] /*esc*/) /*PClosureDef::accept_typing2*/;
5085 /* Register variable[16]: Result */
5086 variable
[16] = CALL_typing___TypingVisitor___escapable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::escapable_ctx*/;
5087 CALL_escape___EscapableContext___pop(variable
[16])(variable
[16]) /*EscapableContext::pop*/;
5088 continue_195
: while(0);
5089 CALL_abstract_collection___Iterator___next(variable
[10])(variable
[10]) /*Iterator::next*/;
5091 break_195
: while(0);
5092 /* Register variable[10]: Result */
5093 variable
[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[9] /*break_list*/ == NIT_NULL
/*null*/) || (( variable
[9] /*break_list*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[9] /*break_list*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[9] /*break_list*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[9] /*break_list*/)( variable
[9] /*break_list*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
5094 if (UNTAG_Bool(variable
[10])) { /*if*/
5095 /* Register variable[10]: Result */
5096 variable
[10] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_multiexpr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6] /*t*/, variable
[9] /*break_list*/) /*AbsSyntaxVisitor::check_conform_multiexpr*/;
5097 variable
[6] = variable
[10] /*t=*/;
5102 /* Register variable[9]: Result */
5103 variable
[9] = TAG_Bool(( variable
[8] /*min_arity*/)!=( TAG_Int(0)));
5104 if (UNTAG_Bool(variable
[9])) { /*if*/
5105 variable
[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5106 /* Register variable[10]: Once String constant */
5107 if (once_value_198
!= NIT_NULL
) variable
[10] = once_value_198
;
5109 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)) /*new String*/;
5110 once_value_198
= variable
[10];
5112 /* Register variable[10]: Result */
5113 /* Ensure var variable[10]: super-string element*/
5114 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
5115 variable
[10] = variable
[3] /*name*/ /* Ensure var: super-string element*/;
5116 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/) /*AbstractArray::add*/;
5117 /* Register variable[10]: Once String constant */
5118 if (once_value_199
!= NIT_NULL
) variable
[10] = once_value_199
;
5120 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(" requires "), TAG_Int(10)) /*new String*/;
5121 once_value_199
= variable
[10];
5123 /* Register variable[10]: Result */
5124 /* Ensure var variable[10]: super-string element*/
5125 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
5126 /* Register variable[10]: Result */
5127 variable
[10] = CALL_abstract_collection___Collection___length( variable
[7] /*cs*/)( variable
[7] /*cs*/) /*AbstractArrayRead::length*/;
5128 /* Ensure var variable[10]: super-string element*/
5129 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/) /*AbstractArray::add*/;
5130 /* Register variable[10]: Once String constant */
5131 if (once_value_200
!= NIT_NULL
) variable
[10] = once_value_200
;
5133 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(" blocks."), TAG_Int(8)) /*new String*/;
5134 once_value_200
= variable
[10];
5136 /* Register variable[10]: Result */
5137 /* Ensure var variable[10]: super-string element*/
5138 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
5139 /* Register variable[9]: Result */
5140 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
5141 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[9]) /*AbsSyntaxVisitor::error*/;
5144 variable
[5] = variable
[6] /*t*/;
5145 goto return_label187
;
5146 return_label187
: while(false);
5147 tracehead
= trace
.prev
;
5150 void typing___AAbsSendExpr___do_typing(val_t self
, val_t param0
, val_t param1
, val_t param2
, val_t param3
, val_t param4
, val_t param5
, val_t param6
) {
5151 struct trace_t trace
= {NULL
, NULL
, 1105, LOCATE_typing___AAbsSendExpr___do_typing
};
5153 struct WBT_
**closurevariable
= NULL
;
5154 trace
.prev
= tracehead
; tracehead
= &trace
;
5155 trace
.file
= LOCATE_typing
;
5156 /* Register variable[0]: Local variable */
5158 /* Register variable[1]: Local variable */
5159 variable
[1] = param0
;
5160 /* Register variable[2]: Local variable */
5161 variable
[2] = param1
;
5162 /* Register variable[3]: Local variable */
5163 variable
[3] = param2
;
5164 /* Register variable[4]: Local variable */
5165 variable
[4] = param3
;
5166 /* Register variable[5]: Local variable */
5167 variable
[5] = param4
;
5168 /* Register variable[6]: Local variable */
5169 variable
[6] = param5
;
5170 /* Register variable[7]: Local variable */
5171 variable
[7] = param6
;
5172 /* Register variable[8]: Method return value and escape marker */
5173 /* Register variable[9]: Local variable */
5174 /* Register variable[10]: Result */
5175 variable
[10] = CALL_typing___AAbsSendExpr___get_property(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[2] /*type_recv*/, variable
[3] /*is_implicit_self*/, variable
[5] /*name*/) /*AAbsSendExpr::get_property*/;
5176 variable
[9] = variable
[10];
5177 /* Register variable[10]: Result */
5178 variable
[10] = TAG_Bool(( variable
[9] /*prop*/ == NIT_NULL
/*null*/) || (( variable
[9] /*prop*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[9] /*prop*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[9] /*prop*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[9] /*prop*/)( variable
[9] /*prop*/, NIT_NULL
/*null*/) /*Object::==*/)))));
5179 if (UNTAG_Bool(variable
[10])) { /*if*/
5180 goto return_label201
;
5182 /* Register variable[10]: Local variable */
5183 /* Register variable[11]: Result */
5184 variable
[11] = CALL_typing___AAbsSendExpr___get_signature(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[2] /*type_recv*/, variable
[9] /*prop*/, variable
[4] /*recv_is_self*/) /*AAbsSendExpr::get_signature*/;
5185 variable
[10] = variable
[11];
5186 /* Register variable[11]: Result */
5187 variable
[11] = TAG_Bool(( variable
[10] /*sig*/ == NIT_NULL
/*null*/) || (( variable
[10] /*sig*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[10] /*sig*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[10] /*sig*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[10] /*sig*/)( variable
[10] /*sig*/, NIT_NULL
/*null*/) /*Object::==*/)))));
5188 if (UNTAG_Bool(variable
[11])) { /*if*/
5189 goto return_label201
;
5191 /* Register variable[11]: Local variable */
5192 /* Register variable[12]: Result */
5193 variable
[12] = CALL_abstractmetamodel___MMLocalProperty___name( variable
[9] /*prop*/)( variable
[9] /*prop*/) /*MMLocalProperty::name*/;
5194 /* Register variable[12]: Result */
5195 variable
[12] = CALL_typing___AAbsAbsSendExpr___process_signature(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[10] /*sig*/, variable
[12], variable
[6] /*raw_args*/) /*AAbsAbsSendExpr::process_signature*/;
5196 variable
[11] = variable
[12];
5197 /* Register variable[12]: Result */
5198 variable
[12] = TAG_Bool(( variable
[11] /*args*/ == NIT_NULL
/*null*/) || (( variable
[11] /*args*/ != NIT_NULL
) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[11] /*args*/)( variable
[11] /*args*/, NIT_NULL
/*null*/) /*AbstractArrayRead::==*/)));
5199 if (UNTAG_Bool(variable
[12])) { /*if*/
5200 goto return_label201
;
5202 /* Register variable[12]: Local variable */
5203 /* Register variable[13]: Result */
5204 variable
[13] = CALL_abstractmetamodel___MMLocalProperty___name( variable
[9] /*prop*/)( variable
[9] /*prop*/) /*MMLocalProperty::name*/;
5205 /* Register variable[13]: Result */
5206 variable
[13] = CALL_typing___AAbsAbsSendExpr___process_closures(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[10] /*sig*/, variable
[13], variable
[7] /*closure_defs*/) /*AAbsAbsSendExpr::process_closures*/;
5207 variable
[12] = variable
[13];
5208 /* Register variable[13]: Result */
5209 variable
[13] = TAG_Bool(( variable
[12] /*rtype*/ == NIT_NULL
/*null*/) || (( variable
[12] /*rtype*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[12] /*rtype*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[12] /*rtype*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[12] /*rtype*/)( variable
[12] /*rtype*/, NIT_NULL
/*null*/) /*Object::==*/)))));
5210 /* Ensure var variable[13]: Left 'and' operand*/
5211 if (UNTAG_Bool(variable
[13])) { /* and */
5212 /* Register variable[13]: Result */
5213 variable
[13] = CALL_static_type___MMSignature___return_type( variable
[10] /*sig*/)( variable
[10] /*sig*/) /*MMSignature::return_type*/;
5214 /* Register variable[13]: Result */
5215 variable
[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[13] == NIT_NULL
/*null*/) || ((variable
[13] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[13])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[13], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[13])(variable
[13], NIT_NULL
/*null*/) /*Object::==*/)))))));
5217 /* Register variable[13]: Result */
5218 if (UNTAG_Bool(variable
[13])) { /*if*/
5219 goto return_label201
;
5221 ATTR_typing___AAbsSendExpr____prop(variable
[0]) /*AAbsSendExpr::_prop*/ = variable
[9] /*prop*/;
5222 ATTR_typing___AAbsAbsSendExpr____prop_signature(variable
[0]) /*AAbsAbsSendExpr::_prop_signature*/ = variable
[10] /*sig*/;
5223 ATTR_typing___AAbsAbsSendExpr____arguments(variable
[0]) /*AAbsAbsSendExpr::_arguments*/ = variable
[11] /*args*/;
5224 ATTR_typing___AAbsSendExpr____return_type(variable
[0]) /*AAbsSendExpr::_return_type*/ = variable
[12] /*rtype*/;
5225 return_label201
: while(false);
5226 tracehead
= trace
.prev
;
5229 val_t
typing___AAbsSendExpr___get_property(val_t self
, val_t param0
, val_t param1
, val_t param2
, val_t param3
) {
5230 struct trace_t trace
= {NULL
, NULL
, 1122, LOCATE_typing___AAbsSendExpr___get_property
};
5231 static val_t once_value_203
= NIT_NULL
; /* Once value for string variable[10]*/
5232 static val_t once_value_204
= NIT_NULL
; /* Once value for string variable[10]*/
5233 static val_t once_value_205
= NIT_NULL
; /* Once value for string variable[10]*/
5234 static val_t once_value_206
= NIT_NULL
; /* Once value for string variable[10]*/
5235 static val_t once_value_207
= NIT_NULL
; /* Once value for string variable[9]*/
5236 static val_t once_value_208
= NIT_NULL
; /* Once value for string variable[9]*/
5237 static val_t once_value_209
= NIT_NULL
; /* Once value for string variable[9]*/
5238 static val_t once_value_210
= NIT_NULL
; /* Once value for string variable[9]*/
5239 static val_t once_value_211
= NIT_NULL
; /* Once value for string variable[9]*/
5240 static val_t once_value_212
= NIT_NULL
; /* Once value for string variable[9]*/
5242 struct WBT_
**closurevariable
= NULL
;
5243 trace
.prev
= tracehead
; tracehead
= &trace
;
5244 trace
.file
= LOCATE_typing
;
5245 /* Register variable[0]: Local variable */
5247 /* Register variable[1]: Local variable */
5248 variable
[1] = param0
;
5249 /* Register variable[2]: Local variable */
5250 variable
[2] = param1
;
5251 /* Register variable[3]: Local variable */
5252 variable
[3] = param2
;
5253 /* Register variable[4]: Local variable */
5254 variable
[4] = param3
;
5255 /* Register variable[5]: Method return value and escape marker */
5256 /* Register variable[6]: Result */
5257 variable
[6] = TAG_Bool(( variable
[2] /*type_recv*/ == NIT_NULL
/*null*/) || (( variable
[2] /*type_recv*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[2] /*type_recv*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[2] /*type_recv*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[2] /*type_recv*/)( variable
[2] /*type_recv*/, NIT_NULL
/*null*/) /*Object::==*/)))));
5258 if (UNTAG_Bool(variable
[6])) { /*if*/
5259 variable
[5] = NIT_NULL
/*null*/;
5260 goto return_label202
;
5262 /* Register variable[6]: Local variable */
5263 /* Register variable[7]: Result */
5264 variable
[7] = CALL_static_type___MMType___local_class( variable
[2] /*type_recv*/)( variable
[2] /*type_recv*/) /*MMType::local_class*/;
5265 variable
[6] = variable
[7];
5266 /* Register variable[7]: Local variable */
5267 variable
[7] = NIT_NULL
/*null*/;
5268 /* Register variable[8]: Result */
5269 variable
[8] = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name( variable
[6] /*lc*/)( variable
[6] /*lc*/, variable
[4] /*name*/) /*MMLocalClass::has_global_property_by_name*/;
5270 if (UNTAG_Bool(variable
[8])) { /*if*/
5271 /* Register variable[8]: Result */
5272 variable
[8] = CALL_abstractmetamodel___MMLocalClass___select_method( variable
[6] /*lc*/)( variable
[6] /*lc*/, variable
[4] /*name*/) /*MMLocalClass::select_method*/;
5273 variable
[7] = variable
[8] /*prop=*/;
5275 /* Register variable[8]: Result */
5276 variable
[8] = TAG_Bool(( variable
[7] /*prop*/ == NIT_NULL
/*null*/) || (( variable
[7] /*prop*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[7] /*prop*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[7] /*prop*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[7] /*prop*/)( variable
[7] /*prop*/, NIT_NULL
/*null*/) /*Object::==*/)))));
5277 /* Ensure var variable[8]: Left 'and' operand*/
5278 if (UNTAG_Bool(variable
[8])) { /* and */
5279 /* Register variable[8]: Result */
5280 variable
[8] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
5281 /* Register variable[8]: Result */
5282 variable
[8] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[8])(variable
[8]) /*MMLocalProperty::global*/;
5283 /* Register variable[8]: Result */
5284 variable
[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[8])(variable
[8]) /*MMGlobalProperty::is_init*/;
5286 /* Register variable[8]: Result */
5287 if (UNTAG_Bool(variable
[8])) { /*if*/
5288 /* Register variable[8]: Local variable */
5289 /* Register variable[9]: Result */
5290 variable
[9] = CALL_static_type___MMType___local_class( variable
[2] /*type_recv*/)( variable
[2] /*type_recv*/) /*MMType::local_class*/;
5291 /* Register variable[9]: Result */
5292 variable
[9] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(variable
[9])(variable
[9], variable
[4] /*name*/) /*MMLocalClass::super_methods_named*/;
5293 variable
[8] = variable
[9];
5294 /* Register variable[9]: Result */
5295 variable
[9] = CALL_abstract_collection___Collection___length( variable
[8] /*props*/)( variable
[8] /*props*/) /*AbstractArrayRead::length*/;
5296 /* Register variable[9]: Result */
5297 variable
[9] = TAG_Bool(UNTAG_Int(variable
[9])>UNTAG_Int( TAG_Int(1)));
5298 if (UNTAG_Bool(variable
[9])) { /*if*/
5299 variable
[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5300 /* Register variable[10]: Once String constant */
5301 if (once_value_203
!= NIT_NULL
) variable
[10] = once_value_203
;
5303 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Ambigous method name '"), TAG_Int(29)) /*new String*/;
5304 once_value_203
= variable
[10];
5306 /* Register variable[10]: Result */
5307 /* Ensure var variable[10]: super-string element*/
5308 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
5309 variable
[10] = variable
[4] /*name*/ /* Ensure var: super-string element*/;
5310 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/) /*AbstractArray::add*/;
5311 /* Register variable[10]: Once String constant */
5312 if (once_value_204
!= NIT_NULL
) variable
[10] = once_value_204
;
5314 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString("' for "), TAG_Int(6)) /*new String*/;
5315 once_value_204
= variable
[10];
5317 /* Register variable[10]: Result */
5318 /* Ensure var variable[10]: super-string element*/
5319 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
5320 /* Register variable[10]: Once String constant */
5321 if (once_value_205
!= NIT_NULL
) variable
[10] = once_value_205
;
5323 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
5324 once_value_205
= variable
[10];
5326 /* Register variable[10]: Result */
5327 /* Register variable[10]: Result */
5328 variable
[10] = CALL_string___Collection___join( variable
[8] /*props*/)( variable
[8] /*props*/, variable
[10]) /*Collection::join*/;
5329 /* Ensure var variable[10]: super-string element*/
5330 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
5331 /* Register variable[10]: Once String constant */
5332 if (once_value_206
!= NIT_NULL
) variable
[10] = once_value_206
;
5334 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(". Use explicit designation."), TAG_Int(27)) /*new String*/;
5335 once_value_206
= variable
[10];
5337 /* Register variable[10]: Result */
5338 /* Ensure var variable[10]: super-string element*/
5339 CALL_abstract_collection___SimpleCollection___add(variable
[9])(variable
[9], variable
[10]) /*AbstractArray::add*/;
5340 /* Register variable[9]: Result */
5341 variable
[9] = CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/;
5342 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[9]) /*AbsSyntaxVisitor::error*/;
5343 variable
[5] = NIT_NULL
/*null*/;
5344 goto return_label202
;
5346 /* Register variable[9]: Result */
5347 variable
[9] = CALL_abstract_collection___Collection___length( variable
[8] /*props*/)( variable
[8] /*props*/) /*AbstractArrayRead::length*/;
5348 /* Register variable[9]: Result */
5349 variable
[9] = TAG_Bool((variable
[9])==( TAG_Int(1)));
5350 if (UNTAG_Bool(variable
[9])) { /*if*/
5351 /* Register variable[9]: Local variable */
5352 /* Register variable[10]: Result */
5353 variable
[10] = CALL_static_type___MMType___local_class( variable
[2] /*type_recv*/)( variable
[2] /*type_recv*/) /*MMType::local_class*/;
5354 /* Register variable[11]: Result */
5355 variable
[11] = CALL_abstract_collection___Collection___first( variable
[8] /*props*/)( variable
[8] /*props*/) /*IndexedCollectionRead::first*/;
5356 /* Register variable[11]: Result */
5357 variable
[11] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[11])(variable
[11]) /*MMLocalProperty::global*/;
5358 /* Register variable[10]: Result */
5359 variable
[10] = CALL_abstractmetamodel___MMLocalClass_____bra(variable
[10])(variable
[10], variable
[11]) /*MMLocalClass::[]*/;
5360 variable
[9] = variable
[10];
5361 /* Register variable[10]: Result */
5362 variable
[10] = TAG_Bool(( variable
[9] /*p*/==NIT_NULL
) || VAL_ISA( variable
[9] /*p*/, COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
5363 if (!UNTAG_Bool(variable
[10])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_typing___AAbsSendExpr___get_property
, LOCATE_typing
, 1135); nit_exit(1);}
5364 variable
[7] = variable
[9] /*p*/ /*prop=*/;
5368 /* Register variable[8]: Result */
5369 variable
[8] = TAG_Bool(( variable
[7] /*prop*/ == NIT_NULL
/*null*/) || (( variable
[7] /*prop*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[7] /*prop*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[7] /*prop*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[7] /*prop*/)( variable
[7] /*prop*/, NIT_NULL
/*null*/) /*Object::==*/)))));
5370 if (UNTAG_Bool(variable
[8])) { /*if*/
5371 if (UNTAG_Bool( variable
[3] /*is_implicit_self*/)) { /*if*/
5372 variable
[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5373 /* Register variable[9]: Once String constant */
5374 if (once_value_207
!= NIT_NULL
) variable
[9] = once_value_207
;
5376 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Method or variable '"), TAG_Int(27)) /*new String*/;
5377 once_value_207
= variable
[9];
5379 /* Register variable[9]: Result */
5380 /* Ensure var variable[9]: super-string element*/
5381 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
5382 variable
[9] = variable
[4] /*name*/ /* Ensure var: super-string element*/;
5383 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/) /*AbstractArray::add*/;
5384 /* Register variable[9]: Once String constant */
5385 if (once_value_208
!= NIT_NULL
) variable
[9] = once_value_208
;
5387 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("' unknown in "), TAG_Int(13)) /*new String*/;
5388 once_value_208
= variable
[9];
5390 /* Register variable[9]: Result */
5391 /* Ensure var variable[9]: super-string element*/
5392 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
5393 variable
[9] = variable
[2] /*type_recv*/ /* Ensure var: super-string element*/;
5394 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/) /*AbstractArray::add*/;
5395 /* Register variable[9]: Once String constant */
5396 if (once_value_209
!= NIT_NULL
) variable
[9] = once_value_209
;
5398 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
5399 once_value_209
= variable
[9];
5401 /* Register variable[9]: Result */
5402 /* Ensure var variable[9]: super-string element*/
5403 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
5404 /* Register variable[8]: Result */
5405 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
5406 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[8]) /*AbsSyntaxVisitor::error*/;
5408 variable
[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5409 /* Register variable[9]: Once String constant */
5410 if (once_value_210
!= NIT_NULL
) variable
[9] = once_value_210
;
5412 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Method '"), TAG_Int(15)) /*new String*/;
5413 once_value_210
= variable
[9];
5415 /* Register variable[9]: Result */
5416 /* Ensure var variable[9]: super-string element*/
5417 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
5418 variable
[9] = variable
[4] /*name*/ /* Ensure var: super-string element*/;
5419 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/) /*AbstractArray::add*/;
5420 /* Register variable[9]: Once String constant */
5421 if (once_value_211
!= NIT_NULL
) variable
[9] = once_value_211
;
5423 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("' doesn't exists in "), TAG_Int(20)) /*new String*/;
5424 once_value_211
= variable
[9];
5426 /* Register variable[9]: Result */
5427 /* Ensure var variable[9]: super-string element*/
5428 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
5429 variable
[9] = variable
[2] /*type_recv*/ /* Ensure var: super-string element*/;
5430 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], CALL_string___Object___to_s(variable
[9])(variable
[9]) /*Object::to_s*/) /*AbstractArray::add*/;
5431 /* Register variable[9]: Once String constant */
5432 if (once_value_212
!= NIT_NULL
) variable
[9] = once_value_212
;
5434 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
5435 once_value_212
= variable
[9];
5437 /* Register variable[9]: Result */
5438 /* Ensure var variable[9]: super-string element*/
5439 CALL_abstract_collection___SimpleCollection___add(variable
[8])(variable
[8], variable
[9]) /*AbstractArray::add*/;
5440 /* Register variable[8]: Result */
5441 variable
[8] = CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/;
5442 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[8]) /*AbsSyntaxVisitor::error*/;
5444 variable
[5] = NIT_NULL
/*null*/;
5445 goto return_label202
;
5447 variable
[5] = variable
[7] /*prop*/;
5448 goto return_label202
;
5449 return_label202
: while(false);
5450 tracehead
= trace
.prev
;
5453 val_t
typing___AAbsSendExpr___get_signature(val_t self
, val_t param0
, val_t param1
, val_t param2
, val_t param3
) {
5454 struct trace_t trace
= {NULL
, NULL
, 1151, LOCATE_typing___AAbsSendExpr___get_signature
};
5456 struct WBT_
**closurevariable
= NULL
;
5457 trace
.prev
= tracehead
; tracehead
= &trace
;
5458 trace
.file
= LOCATE_typing
;
5459 /* Register variable[0]: Local variable */
5461 /* Register variable[1]: Local variable */
5462 variable
[1] = param0
;
5463 /* Register variable[2]: Local variable */
5464 variable
[2] = param1
;
5465 /* Register variable[3]: Local variable */
5466 variable
[3] = param2
;
5467 /* Register variable[4]: Local variable */
5468 variable
[4] = param3
;
5469 /* Register variable[5]: Method return value and escape marker */
5470 /* Register variable[6]: Result */
5471 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[3] /*prop*/)( variable
[3] /*prop*/) /*MMLocalProperty::global*/;
5472 /* Register variable[7]: Result */
5473 variable
[7] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
5474 CALL_syntax_base___MMGlobalProperty___check_visibility(variable
[6])(variable
[6], variable
[1] /*v*/, variable
[0], variable
[7], variable
[4] /*recv_is_self*/) /*MMGlobalProperty::check_visibility*/;
5475 /* Register variable[6]: Local variable */
5476 /* Register variable[7]: Result */
5477 variable
[7] = CALL_static_type___MMLocalProperty___signature_for( variable
[3] /*prop*/)( variable
[3] /*prop*/, variable
[2] /*type_recv*/) /*MMLocalProperty::signature_for*/;
5478 variable
[6] = variable
[7];
5479 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable
[4] /*recv_is_self*/)))) { /*if*/
5480 /* Register variable[7]: Result */
5481 variable
[7] = CALL_static_type___MMSignature___not_for_self( variable
[6] /*psig*/)( variable
[6] /*psig*/) /*MMSignature::not_for_self*/;
5482 variable
[6] = variable
[7] /*psig=*/;
5484 variable
[5] = variable
[6] /*psig*/;
5485 goto return_label213
;
5486 return_label213
: while(false);
5487 tracehead
= trace
.prev
;
5490 val_t
typing___AAbsSendExpr___prop(val_t self
) {
5491 struct trace_t trace
= {NULL
, NULL
, 1160, LOCATE_typing___AAbsSendExpr___prop
};
5492 val_t
*variable
= NULL
;
5493 struct WBT_
**closurevariable
= NULL
;
5494 trace
.prev
= tracehead
; tracehead
= &trace
;
5495 trace
.file
= LOCATE_typing
;
5496 tracehead
= trace
.prev
;
5497 return ATTR_typing___AAbsSendExpr____prop( self
) /*AAbsSendExpr::_prop*/;
5499 val_t
typing___AAbsSendExpr___return_type(val_t self
) {
5500 struct trace_t trace
= {NULL
, NULL
, 1163, LOCATE_typing___AAbsSendExpr___return_type
};
5501 val_t
*variable
= NULL
;
5502 struct WBT_
**closurevariable
= NULL
;
5503 trace
.prev
= tracehead
; tracehead
= &trace
;
5504 trace
.file
= LOCATE_typing
;
5505 tracehead
= trace
.prev
;
5506 return ATTR_typing___AAbsSendExpr____return_type( self
) /*AAbsSendExpr::_return_type*/;
5508 void typing___ASuperInitCall___register_super_init_call(val_t self
, val_t param0
, val_t param1
) {
5509 struct trace_t trace
= {NULL
, NULL
, 1171, LOCATE_typing___ASuperInitCall___register_super_init_call
};
5510 static val_t once_value_215
= NIT_NULL
; /* Once value for string variable[5]*/
5511 static val_t once_value_216
= NIT_NULL
; /* Once value for string variable[5]*/
5512 static val_t once_value_217
= NIT_NULL
; /* Once value for string variable[8]*/
5513 static val_t once_value_218
= NIT_NULL
; /* Once value for string variable[8]*/
5514 static val_t once_value_219
= NIT_NULL
; /* Once value for string variable[8]*/
5515 static val_t once_value_220
= NIT_NULL
; /* Once value for string variable[8]*/
5516 static val_t once_value_221
= NIT_NULL
; /* Once value for string variable[8]*/
5517 static val_t once_value_222
= NIT_NULL
; /* Once value for string variable[8]*/
5518 static val_t once_value_224
= NIT_NULL
; /* Once value for string variable[12]*/
5519 static val_t once_value_225
= NIT_NULL
; /* Once value for string variable[12]*/
5520 static val_t once_value_226
= NIT_NULL
; /* Once value for string variable[12]*/
5522 struct WBT_
**closurevariable
= NULL
;
5523 trace
.prev
= tracehead
; tracehead
= &trace
;
5524 trace
.file
= LOCATE_typing
;
5525 /* Register variable[0]: Local variable */
5527 /* Register variable[1]: Local variable */
5528 variable
[1] = param0
;
5529 /* Register variable[2]: Local variable */
5530 variable
[2] = param1
;
5531 /* Register variable[3]: Method return value and escape marker */
5532 /* Register variable[4]: Result */
5533 variable
[4] = CALL_parser_prod___PNode___parent(variable
[0])(variable
[0]) /*PNode::parent*/;
5534 /* Register variable[5]: Result */
5535 variable
[5] = CALL_typing___TypingVisitor___top_block( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::top_block*/;
5536 /* Register variable[4]: Result */
5537 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == variable
[5]) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4],variable
[5])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], variable
[5]) /*Object::==*/)))))));
5538 /* Ensure var variable[4]: Left 'and' operand*/
5539 if (UNTAG_Bool(variable
[4])) { /* and */
5540 /* Register variable[4]: Result */
5541 variable
[4] = CALL_typing___TypingVisitor___top_block( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::top_block*/;
5542 /* Register variable[4]: Result */
5543 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[0] == variable
[4]) || ((variable
[0] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[0])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[0],variable
[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[0])(variable
[0], variable
[4]) /*Object::==*/)))))));
5545 /* Register variable[4]: Result */
5546 if (UNTAG_Bool(variable
[4])) { /*if*/
5547 variable
[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5548 /* Register variable[5]: Once String constant */
5549 if (once_value_215
!= NIT_NULL
) variable
[5] = once_value_215
;
5551 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: Constructor invocation "), TAG_Int(30)) /*new String*/;
5552 once_value_215
= variable
[5];
5554 /* Register variable[5]: Result */
5555 /* Ensure var variable[5]: super-string element*/
5556 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
5557 variable
[5] = variable
[2] /*property*/ /* Ensure var: super-string element*/;
5558 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/) /*AbstractArray::add*/;
5559 /* Register variable[5]: Once String constant */
5560 if (once_value_216
!= NIT_NULL
) variable
[5] = once_value_216
;
5562 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString(" must not be in nested block."), TAG_Int(29)) /*new String*/;
5563 once_value_216
= variable
[5];
5565 /* Register variable[5]: Result */
5566 /* Ensure var variable[5]: super-string element*/
5567 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
5568 /* Register variable[4]: Result */
5569 variable
[4] = CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/;
5570 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[4]) /*AbsSyntaxVisitor::error*/;
5572 /* Register variable[4]: Local variable */
5573 /* Register variable[5]: Result */
5574 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::module*/;
5575 /* Register variable[6]: Result */
5576 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[2] /*property*/)( variable
[2] /*property*/) /*MMLocalProperty::global*/;
5577 /* Register variable[6]: Result */
5578 variable
[6] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[6])(variable
[6]) /*MMGlobalProperty::intro*/;
5579 /* Register variable[6]: Result */
5580 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[6])(variable
[6]) /*MMLocalProperty::local_class*/;
5581 /* Register variable[6]: Result */
5582 variable
[6] = CALL_abstractmetamodel___MMLocalClass___global(variable
[6])(variable
[6]) /*MMLocalClass::global*/;
5583 /* Register variable[5]: Result */
5584 variable
[5] = CALL_abstractmetamodel___MMModule_____bra(variable
[5])(variable
[5], variable
[6]) /*MMModule::[]*/;
5585 variable
[4] = variable
[5];
5586 /* Register variable[5]: Local variable */
5587 variable
[5] = NIT_NULL
/*null*/;
5588 /* Register variable[6]: Result */
5589 variable
[6] = CALL_typing___TypingVisitor___explicit_super_init_calls( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
5590 /* Register variable[6]: Result */
5591 variable
[6] = CALL_abstract_collection___Collection___is_empty(variable
[6])(variable
[6]) /*AbstractArrayRead::is_empty*/;
5592 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[6])))) { /*if*/
5593 /* Register variable[6]: Result */
5594 variable
[6] = CALL_typing___TypingVisitor___explicit_super_init_calls( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
5595 /* Register variable[6]: Result */
5596 variable
[6] = CALL_abstract_collection___IndexedCollectionRead___last(variable
[6])(variable
[6]) /*IndexedCollectionRead::last*/;
5597 /* Register variable[6]: Result */
5598 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[6])(variable
[6]) /*MMLocalProperty::global*/;
5599 /* Register variable[6]: Result */
5600 variable
[6] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[6])(variable
[6]) /*MMGlobalProperty::intro*/;
5601 /* Register variable[6]: Result */
5602 variable
[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[6])(variable
[6]) /*MMLocalProperty::local_class*/;
5603 variable
[5] = variable
[6] /*prev_class=*/;
5605 /* Register variable[6]: Local variable */
5606 /* Register variable[7]: Result */
5607 variable
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
5608 /* Register variable[7]: Result */
5609 variable
[7] = CALL_abstractmetamodel___MMLocalClass___cshe(variable
[7])(variable
[7]) /*MMLocalClass::cshe*/;
5610 /* Register variable[7]: Result */
5611 variable
[7] = CALL_partial_order___PartialOrderElement___reverse_linear_extension(variable
[7])(variable
[7]) /*PartialOrderElement::reverse_linear_extension*/;
5612 variable
[6] = variable
[7];
5613 /* Register variable[7]: Result */
5614 variable
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
5615 /* Register variable[7]: Result */
5616 variable
[7] = TAG_Bool(( variable
[4] /*cla*/ == variable
[7]) || (( variable
[4] /*cla*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*cla*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*cla*/,variable
[7])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*cla*/)( variable
[4] /*cla*/, variable
[7]) /*Object::==*/)))));
5617 if (UNTAG_Bool(variable
[7])) { /*if*/
5618 CALL_typing___TypingVisitor___explicit_other_init_call__eq( variable
[1] /*v*/)( variable
[1] /*v*/, TAG_Bool(true)) /*TypingVisitor::explicit_other_init_call=*/;
5620 /* Register variable[7]: Result */
5621 variable
[7] = CALL_abstract_collection___Collection___has( variable
[6] /*order*/)( variable
[6] /*order*/, variable
[4] /*cla*/) /*AbstractArrayRead::has*/;
5622 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[7])))) { /*if*/
5623 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5624 /* Register variable[8]: Once String constant */
5625 if (once_value_217
!= NIT_NULL
) variable
[8] = once_value_217
;
5627 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: Constructor of class "), TAG_Int(28)) /*new String*/;
5628 once_value_217
= variable
[8];
5630 /* Register variable[8]: Result */
5631 /* Ensure var variable[8]: super-string element*/
5632 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
5633 variable
[8] = variable
[4] /*cla*/ /* Ensure var: super-string element*/;
5634 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/) /*AbstractArray::add*/;
5635 /* Register variable[8]: Once String constant */
5636 if (once_value_218
!= NIT_NULL
) variable
[8] = once_value_218
;
5638 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(" must be one in "), TAG_Int(16)) /*new String*/;
5639 once_value_218
= variable
[8];
5641 /* Register variable[8]: Result */
5642 /* Ensure var variable[8]: super-string element*/
5643 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
5644 /* Register variable[8]: Once String constant */
5645 if (once_value_219
!= NIT_NULL
) variable
[8] = once_value_219
;
5647 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
5648 once_value_219
= variable
[8];
5650 /* Register variable[8]: Result */
5651 /* Register variable[8]: Result */
5652 variable
[8] = CALL_string___Collection___join( variable
[6] /*order*/)( variable
[6] /*order*/, variable
[8]) /*Collection::join*/;
5653 /* Ensure var variable[8]: super-string element*/
5654 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
5655 /* Register variable[8]: Once String constant */
5656 if (once_value_220
!= NIT_NULL
) variable
[8] = once_value_220
;
5658 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
5659 once_value_220
= variable
[8];
5661 /* Register variable[8]: Result */
5662 /* Ensure var variable[8]: super-string element*/
5663 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
5664 /* Register variable[7]: Result */
5665 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
5666 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[7]) /*AbsSyntaxVisitor::error*/;
5668 /* Register variable[7]: Result */
5669 variable
[7] = TAG_Bool(( variable
[4] /*cla*/ == variable
[5] /*prev_class*/) || (( variable
[4] /*cla*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*cla*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*cla*/, variable
[5] /*prev_class*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*cla*/)( variable
[4] /*cla*/, variable
[5] /*prev_class*/) /*Object::==*/)))));
5670 if (UNTAG_Bool(variable
[7])) { /*if*/
5671 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5672 /* Register variable[8]: Once String constant */
5673 if (once_value_221
!= NIT_NULL
) variable
[8] = once_value_221
;
5675 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: Only one super constructor invocation of class "), TAG_Int(54)) /*new String*/;
5676 once_value_221
= variable
[8];
5678 /* Register variable[8]: Result */
5679 /* Ensure var variable[8]: super-string element*/
5680 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
5681 variable
[8] = variable
[4] /*cla*/ /* Ensure var: super-string element*/;
5682 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/) /*AbstractArray::add*/;
5683 /* Register variable[8]: Once String constant */
5684 if (once_value_222
!= NIT_NULL
) variable
[8] = once_value_222
;
5686 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(" is allowed."), TAG_Int(12)) /*new String*/;
5687 once_value_222
= variable
[8];
5689 /* Register variable[8]: Result */
5690 /* Ensure var variable[8]: super-string element*/
5691 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
5692 /* Register variable[7]: Result */
5693 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
5694 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[7]) /*AbsSyntaxVisitor::error*/;
5696 /* Register variable[7]: Local variable */
5697 /* Register variable[8]: Result */
5698 variable
[8] = TAG_Bool(( variable
[5] /*prev_class*/ == NIT_NULL
/*null*/) || (( variable
[5] /*prev_class*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[5] /*prev_class*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[5] /*prev_class*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*prev_class*/)( variable
[5] /*prev_class*/, NIT_NULL
/*null*/) /*Object::==*/)))));
5699 variable
[7] = variable
[8];
5700 /* Register variable[8]: For iterator */
5701 variable
[8] = CALL_abstract_collection___Collection___iterator( variable
[6] /*order*/)( variable
[6] /*order*/) /*AbstractArrayRead::iterator*/;
5702 while (true) { /*for*/
5703 /* Register variable[9]: For 'is_ok' result */
5704 variable
[9] = CALL_abstract_collection___Iterator___is_ok(variable
[8])(variable
[8]) /*ArrayIterator::is_ok*/;
5705 if (!UNTAG_Bool(variable
[9])) break; /*for*/
5706 variable
[9] = CALL_abstract_collection___Iterator___item(variable
[8])(variable
[8]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
5707 /* Register variable[10]: Local variable */
5708 variable
[10] = variable
[9];
5709 /* Register variable[11]: Result */
5710 variable
[11] = TAG_Bool(( variable
[10] /*c*/ == variable
[5] /*prev_class*/) || (( variable
[10] /*c*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[10] /*c*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[10] /*c*/, variable
[5] /*prev_class*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[10] /*c*/)( variable
[10] /*c*/, variable
[5] /*prev_class*/) /*Object::==*/)))));
5711 if (UNTAG_Bool(variable
[11])) { /*if*/
5712 variable
[7] = TAG_Bool(true) /*last_is_found=*/;
5714 /* Register variable[11]: Result */
5715 variable
[11] = TAG_Bool(( variable
[10] /*c*/ == variable
[4] /*cla*/) || (( variable
[10] /*c*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[10] /*c*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[10] /*c*/, variable
[4] /*cla*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[10] /*c*/)( variable
[10] /*c*/, variable
[4] /*cla*/) /*Object::==*/)))));
5716 if (UNTAG_Bool(variable
[11])) { /*if*/
5717 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable
[7] /*last_is_found*/)))) { /*if*/
5718 variable
[11] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5719 /* Register variable[12]: Once String constant */
5720 if (once_value_224
!= NIT_NULL
) variable
[12] = once_value_224
;
5722 variable
[12] = NEW_String_string___String___with_native(BOX_NativeString("Error: Constructor of "), TAG_Int(22)) /*new String*/;
5723 once_value_224
= variable
[12];
5725 /* Register variable[12]: Result */
5726 /* Ensure var variable[12]: super-string element*/
5727 CALL_abstract_collection___SimpleCollection___add(variable
[11])(variable
[11], variable
[12]) /*AbstractArray::add*/;
5728 variable
[12] = variable
[10] /*c*/ /* Ensure var: super-string element*/;
5729 CALL_abstract_collection___SimpleCollection___add(variable
[11])(variable
[11], CALL_string___Object___to_s(variable
[12])(variable
[12]) /*Object::to_s*/) /*AbstractArray::add*/;
5730 /* Register variable[12]: Once String constant */
5731 if (once_value_225
!= NIT_NULL
) variable
[12] = once_value_225
;
5733 variable
[12] = NEW_String_string___String___with_native(BOX_NativeString(" must be invoked before constructor of "), TAG_Int(39)) /*new String*/;
5734 once_value_225
= variable
[12];
5736 /* Register variable[12]: Result */
5737 /* Ensure var variable[12]: super-string element*/
5738 CALL_abstract_collection___SimpleCollection___add(variable
[11])(variable
[11], variable
[12]) /*AbstractArray::add*/;
5739 variable
[12] = variable
[5] /*prev_class*/ /* Ensure var: super-string element*/;
5740 CALL_abstract_collection___SimpleCollection___add(variable
[11])(variable
[11], CALL_string___Object___to_s(variable
[12])(variable
[12]) /*Object::to_s*/) /*AbstractArray::add*/;
5741 /* Register variable[12]: Once String constant */
5742 if (once_value_226
!= NIT_NULL
) variable
[12] = once_value_226
;
5744 variable
[12] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
5745 once_value_226
= variable
[12];
5747 /* Register variable[12]: Result */
5748 /* Ensure var variable[12]: super-string element*/
5749 CALL_abstract_collection___SimpleCollection___add(variable
[11])(variable
[11], variable
[12]) /*AbstractArray::add*/;
5750 /* Register variable[11]: Result */
5751 variable
[11] = CALL_string___Object___to_s(variable
[11])(variable
[11]) /*Object::to_s*/;
5752 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[11]) /*AbsSyntaxVisitor::error*/;
5754 /* Register variable[11]: Result */
5755 variable
[11] = CALL_typing___TypingVisitor___explicit_super_init_calls( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
5756 CALL_abstract_collection___SimpleCollection___add(variable
[11])(variable
[11], variable
[2] /*property*/) /*AbstractArray::add*/;
5760 continue_223
: while(0);
5761 CALL_abstract_collection___Iterator___next(variable
[8])(variable
[8]) /*ArrayIterator::next*/;
5763 break_223
: while(0);
5767 return_label214
: while(false);
5768 tracehead
= trace
.prev
;
5771 void typing___ANewExpr___after_typing(val_t self
, val_t param0
) {
5772 struct trace_t trace
= {NULL
, NULL
, 1208, LOCATE_typing___ANewExpr___after_typing
};
5773 static val_t once_value_228
= NIT_NULL
; /* Once value for string variable[5]*/
5774 static val_t once_value_229
= NIT_NULL
; /* Once value for string variable[5]*/
5775 static val_t once_value_230
; static int once_bool_230
; /* Once value for variable[5]*/
5776 static val_t once_value_231
= NIT_NULL
; /* Once value for string variable[5]*/
5777 static val_t once_value_232
= NIT_NULL
; /* Once value for string variable[6]*/
5778 static val_t once_value_233
= NIT_NULL
; /* Once value for string variable[6]*/
5780 struct WBT_
**closurevariable
= NULL
;
5781 trace
.prev
= tracehead
; tracehead
= &trace
;
5782 trace
.file
= LOCATE_typing
;
5783 /* Register variable[0]: Local variable */
5785 /* Register variable[1]: Local variable */
5786 variable
[1] = param0
;
5787 /* Register variable[2]: Method return value and escape marker */
5788 /* Register variable[3]: Local variable */
5789 /* Register variable[4]: Result */
5790 variable
[4] = CALL_parser_nodes___ANewExpr___n_type(variable
[0])(variable
[0]) /*ANewExpr::n_type*/;
5791 /* Register variable[4]: Result */
5792 variable
[4] = CALL_typing___PType___stype(variable
[4])(variable
[4]) /*PType::stype*/;
5793 variable
[3] = variable
[4];
5794 /* Register variable[4]: Result */
5795 variable
[4] = TAG_Bool(( variable
[3] /*t*/ == NIT_NULL
/*null*/) || (( variable
[3] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*t*/)( variable
[3] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))));
5796 if (UNTAG_Bool(variable
[4])) { /*if*/
5797 goto return_label227
;
5799 /* Register variable[4]: Result */
5800 variable
[4] = CALL_static_type___MMType___local_class( variable
[3] /*t*/)( variable
[3] /*t*/) /*MMType::local_class*/;
5801 /* Register variable[4]: Result */
5802 variable
[4] = CALL_abstractmetamodel___MMLocalClass___global(variable
[4])(variable
[4]) /*MMLocalClass::global*/;
5803 /* Register variable[4]: Result */
5804 variable
[4] = CALL_abstractmetamodel___MMGlobalClass___is_abstract(variable
[4])(variable
[4]) /*MMGlobalClass::is_abstract*/;
5805 if (UNTAG_Bool(variable
[4])) { /*if*/
5806 variable
[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5807 /* Register variable[5]: Once String constant */
5808 if (once_value_228
!= NIT_NULL
) variable
[5] = once_value_228
;
5810 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to instantiate abstract class "), TAG_Int(41)) /*new String*/;
5811 once_value_228
= variable
[5];
5813 /* Register variable[5]: Result */
5814 /* Ensure var variable[5]: super-string element*/
5815 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
5816 /* Register variable[5]: Result */
5817 variable
[5] = CALL_static_type___MMType___local_class( variable
[3] /*t*/)( variable
[3] /*t*/) /*MMType::local_class*/;
5818 /* Ensure var variable[5]: super-string element*/
5819 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/) /*AbstractArray::add*/;
5820 /* Register variable[5]: Once String constant */
5821 if (once_value_229
!= NIT_NULL
) variable
[5] = once_value_229
;
5823 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
5824 once_value_229
= variable
[5];
5826 /* Register variable[5]: Result */
5827 /* Ensure var variable[5]: super-string element*/
5828 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
5829 /* Register variable[4]: Result */
5830 variable
[4] = CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/;
5831 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[4]) /*AbsSyntaxVisitor::error*/;
5832 goto return_label227
;
5834 /* Register variable[4]: Local variable */
5835 /*variable[4] is variable name*/
5836 /* Register variable[5]: Result */
5837 variable
[5] = CALL_parser_nodes___ANewExpr___n_id(variable
[0])(variable
[0]) /*ANewExpr::n_id*/;
5838 /* Register variable[5]: Result */
5839 variable
[5] = TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))));
5840 if (UNTAG_Bool(variable
[5])) { /*if*/
5841 /* Register variable[5]: Once expression result */
5842 if (once_bool_230
) variable
[5] = once_value_230
;
5844 /* Register variable[5]: Once String constant */
5845 if (once_value_231
!= NIT_NULL
) variable
[5] = once_value_231
;
5847 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)) /*new String*/;
5848 once_value_231
= variable
[5];
5850 /* Register variable[5]: Result */
5851 /* Register variable[5]: Result */
5852 variable
[5] = CALL_symbol___String___to_symbol(variable
[5])(variable
[5]) /*String::to_symbol*/;
5853 once_value_230
= variable
[5];
5854 once_bool_230
= true;
5856 /* Register variable[5]: Result */
5857 variable
[4] = variable
[5] /*name=*/;
5859 /* Register variable[5]: Result */
5860 variable
[5] = CALL_parser_nodes___ANewExpr___n_id(variable
[0])(variable
[0]) /*ANewExpr::n_id*/;
5861 /* Register variable[5]: Result */
5862 variable
[5] = CALL_syntax_base___Token___to_symbol(variable
[5])(variable
[5]) /*Token::to_symbol*/;
5863 variable
[4] = variable
[5] /*name=*/;
5865 /* Register variable[5]: Result */
5866 variable
[5] = CALL_parser_nodes___ANewExpr___n_args(variable
[0])(variable
[0]) /*ANewExpr::n_args*/;
5867 /* Register variable[5]: Result */
5868 variable
[5] = CALL_array___Collection___to_a(variable
[5])(variable
[5]) /*Collection::to_a*/;
5869 CALL_typing___AAbsSendExpr___do_typing(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[3] /*t*/, TAG_Bool(false), TAG_Bool(false), variable
[4] /*name*/, variable
[5], NIT_NULL
/*null*/) /*AAbsSendExpr::do_typing*/;
5870 /* Register variable[5]: Result */
5871 variable
[5] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
5872 /* Register variable[5]: Result */
5873 variable
[5] = TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))));
5874 if (UNTAG_Bool(variable
[5])) { /*if*/
5875 goto return_label227
;
5877 /* Register variable[5]: Result */
5878 variable
[5] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
5879 /* Register variable[5]: Result */
5880 variable
[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[5])(variable
[5]) /*MMLocalProperty::global*/;
5881 /* Register variable[5]: Result */
5882 variable
[5] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[5])(variable
[5]) /*MMGlobalProperty::is_init*/;
5883 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[5])))) { /*if*/
5884 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5885 /* Register variable[6]: Once String constant */
5886 if (once_value_232
!= NIT_NULL
) variable
[6] = once_value_232
;
5888 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)) /*new String*/;
5889 once_value_232
= variable
[6];
5891 /* Register variable[6]: Result */
5892 /* Ensure var variable[6]: super-string element*/
5893 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
5894 /* Register variable[6]: Result */
5895 variable
[6] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
5896 /* Ensure var variable[6]: super-string element*/
5897 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/) /*AbstractArray::add*/;
5898 /* Register variable[6]: Once String constant */
5899 if (once_value_233
!= NIT_NULL
) variable
[6] = once_value_233
;
5901 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(" is not a constructor."), TAG_Int(22)) /*new String*/;
5902 once_value_233
= variable
[6];
5904 /* Register variable[6]: Result */
5905 /* Ensure var variable[6]: super-string element*/
5906 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
5907 /* Register variable[5]: Result */
5908 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
5909 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[5]) /*AbsSyntaxVisitor::error*/;
5910 goto return_label227
;
5912 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3] /*t*/;
5913 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
5914 return_label227
: while(false);
5915 tracehead
= trace
.prev
;
5918 void typing___ASendExpr___after_typing(val_t self
, val_t param0
) {
5919 struct trace_t trace
= {NULL
, NULL
, 1247, LOCATE_typing___ASendExpr___after_typing
};
5921 struct WBT_
**closurevariable
= NULL
;
5922 trace
.prev
= tracehead
; tracehead
= &trace
;
5923 trace
.file
= LOCATE_typing
;
5924 /* Register variable[0]: Local variable */
5926 /* Register variable[1]: Local variable */
5927 variable
[1] = param0
;
5928 /* Register variable[2]: Method return value and escape marker */
5929 CALL_typing___ASendExpr___do_all_typing(variable
[0])(variable
[0], variable
[1] /*v*/) /*ASendExpr::do_all_typing*/;
5930 return_label234
: while(false);
5931 tracehead
= trace
.prev
;
5934 val_t
typing___ASendExpr___name(val_t self
) {
5935 struct trace_t trace
= {NULL
, NULL
, 1238, LOCATE_typing___ASendExpr___name
};
5936 val_t
*variable
= NULL
;
5937 struct WBT_
**closurevariable
= NULL
;
5938 trace
.prev
= tracehead
; tracehead
= &trace
;
5939 trace
.file
= LOCATE_typing
;
5940 fprintf(stderr
, "Deferred method called");
5941 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1238);
5943 tracehead
= trace
.prev
;
5946 val_t
typing___ASendExpr___raw_arguments(val_t self
) {
5947 struct trace_t trace
= {NULL
, NULL
, 1241, LOCATE_typing___ASendExpr___raw_arguments
};
5948 val_t
*variable
= NULL
;
5949 struct WBT_
**closurevariable
= NULL
;
5950 trace
.prev
= tracehead
; tracehead
= &trace
;
5951 trace
.file
= LOCATE_typing
;
5952 fprintf(stderr
, "Deferred method called");
5953 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1241);
5955 tracehead
= trace
.prev
;
5958 val_t
typing___ASendExpr___closure_defs(val_t self
) {
5959 struct trace_t trace
= {NULL
, NULL
, 1244, LOCATE_typing___ASendExpr___closure_defs
};
5961 struct WBT_
**closurevariable
= NULL
;
5962 trace
.prev
= tracehead
; tracehead
= &trace
;
5963 trace
.file
= LOCATE_typing
;
5964 /* Register variable[0]: Local variable */
5966 /* Register variable[1]: Method return value and escape marker */
5967 variable
[1] = NIT_NULL
/*null*/;
5968 goto return_label235
;
5969 return_label235
: while(false);
5970 tracehead
= trace
.prev
;
5973 void typing___ASendExpr___do_all_typing(val_t self
, val_t param0
) {
5974 struct trace_t trace
= {NULL
, NULL
, 1252, LOCATE_typing___ASendExpr___do_all_typing
};
5975 static val_t once_value_237
= NIT_NULL
; /* Once value for string variable[4]*/
5976 static val_t once_value_238
= NIT_NULL
; /* Once value for string variable[4]*/
5977 static val_t once_value_239
= NIT_NULL
; /* Once value for string variable[4]*/
5978 static val_t once_value_240
= NIT_NULL
; /* Once value for string variable[4]*/
5980 struct WBT_
**closurevariable
= NULL
;
5981 trace
.prev
= tracehead
; tracehead
= &trace
;
5982 trace
.file
= LOCATE_typing
;
5983 /* Register variable[0]: Local variable */
5985 /* Register variable[1]: Local variable */
5986 variable
[1] = param0
;
5987 /* Register variable[2]: Method return value and escape marker */
5988 /* Register variable[3]: Result */
5989 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
5990 /* Register variable[3]: Result */
5991 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*AbsSyntaxVisitor::check_expr*/;
5992 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
5993 goto return_label236
;
5995 /* Register variable[3]: Result */
5996 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
5997 /* Register variable[3]: Result */
5998 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[3])(variable
[3]) /*PExpr::stype*/;
5999 /* Register variable[4]: Result */
6000 variable
[4] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6001 /* Register variable[4]: Result */
6002 variable
[4] = CALL_typing___PExpr___is_implicit_self(variable
[4])(variable
[4]) /*PExpr::is_implicit_self*/;
6003 /* Register variable[5]: Result */
6004 variable
[5] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6005 /* Register variable[5]: Result */
6006 variable
[5] = CALL_typing___PExpr___is_self(variable
[5])(variable
[5]) /*PExpr::is_self*/;
6007 /* Register variable[6]: Result */
6008 variable
[6] = CALL_typing___ASendExpr___name(variable
[0])(variable
[0]) /*ASendExpr::name*/;
6009 /* Register variable[7]: Result */
6010 variable
[7] = CALL_typing___ASendExpr___raw_arguments(variable
[0])(variable
[0]) /*ASendExpr::raw_arguments*/;
6011 /* Register variable[8]: Result */
6012 variable
[8] = CALL_typing___ASendExpr___closure_defs(variable
[0])(variable
[0]) /*ASendExpr::closure_defs*/;
6013 CALL_typing___AAbsSendExpr___do_typing(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[3], variable
[4], variable
[5], variable
[6], variable
[7], variable
[8]) /*AAbsSendExpr::do_typing*/;
6014 /* Register variable[3]: Result */
6015 variable
[3] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6016 /* Register variable[3]: Result */
6017 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
6018 if (UNTAG_Bool(variable
[3])) { /*if*/
6019 goto return_label236
;
6021 /* Register variable[3]: Result */
6022 variable
[3] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6023 /* Register variable[3]: Result */
6024 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[3])(variable
[3]) /*MMLocalProperty::global*/;
6025 /* Register variable[3]: Result */
6026 variable
[3] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[3])(variable
[3]) /*MMGlobalProperty::is_init*/;
6027 if (UNTAG_Bool(variable
[3])) { /*if*/
6028 /* Register variable[3]: Result */
6029 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
6030 /* Register variable[3]: Result */
6031 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[3])(variable
[3]) /*MMLocalProperty::global*/;
6032 /* Register variable[3]: Result */
6033 variable
[3] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[3])(variable
[3]) /*MMGlobalProperty::is_init*/;
6034 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
6035 variable
[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
6036 /* Register variable[4]: Once String constant */
6037 if (once_value_237
!= NIT_NULL
) variable
[4] = once_value_237
;
6039 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)) /*new String*/;
6040 once_value_237
= variable
[4];
6042 /* Register variable[4]: Result */
6043 /* Ensure var variable[4]: super-string element*/
6044 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
6045 /* Register variable[4]: Result */
6046 variable
[4] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6047 /* Ensure var variable[4]: super-string element*/
6048 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/) /*AbstractArray::add*/;
6049 /* Register variable[4]: Once String constant */
6050 if (once_value_238
!= NIT_NULL
) variable
[4] = once_value_238
;
6052 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)) /*new String*/;
6053 once_value_238
= variable
[4];
6055 /* Register variable[4]: Result */
6056 /* Ensure var variable[4]: super-string element*/
6057 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
6058 /* Register variable[3]: Result */
6059 variable
[3] = CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/;
6060 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[3]) /*AbsSyntaxVisitor::error*/;
6062 /* Register variable[3]: Result */
6063 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6064 /* Register variable[3]: Result */
6065 variable
[3] = CALL_typing___PExpr___is_self(variable
[3])(variable
[3]) /*PExpr::is_self*/;
6066 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
6067 variable
[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
6068 /* Register variable[4]: Once String constant */
6069 if (once_value_239
!= NIT_NULL
) variable
[4] = once_value_239
;
6071 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)) /*new String*/;
6072 once_value_239
= variable
[4];
6074 /* Register variable[4]: Result */
6075 /* Ensure var variable[4]: super-string element*/
6076 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
6077 /* Register variable[4]: Result */
6078 variable
[4] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6079 /* Ensure var variable[4]: super-string element*/
6080 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/) /*AbstractArray::add*/;
6081 /* Register variable[4]: Once String constant */
6082 if (once_value_240
!= NIT_NULL
) variable
[4] = once_value_240
;
6084 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)) /*new String*/;
6085 once_value_240
= variable
[4];
6087 /* Register variable[4]: Result */
6088 /* Ensure var variable[4]: super-string element*/
6089 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
6090 /* Register variable[3]: Result */
6091 variable
[3] = CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/;
6092 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[3]) /*AbsSyntaxVisitor::error*/;
6094 /* Register variable[3]: Result */
6095 variable
[3] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6096 CALL_typing___ASuperInitCall___register_super_init_call(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[3]) /*ASuperInitCall::register_super_init_call*/;
6100 /* Register variable[3]: Result */
6101 variable
[3] = CALL_typing___AAbsSendExpr___return_type(variable
[0])(variable
[0]) /*AAbsSendExpr::return_type*/;
6102 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
6103 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
6104 return_label236
: while(false);
6105 tracehead
= trace
.prev
;
6108 void typing___ASendReassignExpr___do_all_typing(val_t self
, val_t param0
) {
6109 struct trace_t trace
= {NULL
, NULL
, 1277, LOCATE_typing___ASendReassignExpr___do_all_typing
};
6110 static val_t once_value_242
= NIT_NULL
; /* Once value for string variable[5]*/
6111 static val_t once_value_243
= NIT_NULL
; /* Once value for string variable[5]*/
6112 static val_t once_value_244
= NIT_NULL
; /* Once value for string variable[5]*/
6113 static val_t once_value_245
= NIT_NULL
; /* Once value for string variable[5]*/
6114 static val_t once_value_246
= NIT_NULL
; /* Once value for string variable[11]*/
6115 static val_t once_value_247
= NIT_NULL
; /* Once value for string variable[11]*/
6116 static val_t once_value_248
= NIT_NULL
; /* Once value for string variable[8]*/
6117 static val_t once_value_249
= NIT_NULL
; /* Once value for string variable[8]*/
6118 static val_t once_value_250
= NIT_NULL
; /* Once value for string variable[8]*/
6119 static val_t once_value_251
= NIT_NULL
; /* Once value for string variable[8]*/
6121 struct WBT_
**closurevariable
= NULL
;
6122 trace
.prev
= tracehead
; tracehead
= &trace
;
6123 trace
.file
= LOCATE_typing
;
6124 /* Register variable[0]: Local variable */
6126 /* Register variable[1]: Local variable */
6127 variable
[1] = param0
;
6128 /* Register variable[2]: Method return value and escape marker */
6129 /* Register variable[3]: Result */
6130 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6131 /* Register variable[3]: Result */
6132 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*AbsSyntaxVisitor::check_expr*/;
6133 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
6134 goto return_label241
;
6136 /* Register variable[3]: Local variable */
6137 /* Register variable[4]: Result */
6138 variable
[4] = CALL_typing___ASendExpr___raw_arguments(variable
[0])(variable
[0]) /*ASendExpr::raw_arguments*/;
6139 variable
[3] = variable
[4];
6140 /* Register variable[4]: Result */
6141 variable
[4] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6142 /* Register variable[4]: Result */
6143 variable
[4] = CALL_syntax_base___PExpr___stype(variable
[4])(variable
[4]) /*PExpr::stype*/;
6144 /* Register variable[5]: Result */
6145 variable
[5] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6146 /* Register variable[5]: Result */
6147 variable
[5] = CALL_typing___PExpr___is_implicit_self(variable
[5])(variable
[5]) /*PExpr::is_implicit_self*/;
6148 /* Register variable[6]: Result */
6149 variable
[6] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6150 /* Register variable[6]: Result */
6151 variable
[6] = CALL_typing___PExpr___is_self(variable
[6])(variable
[6]) /*PExpr::is_self*/;
6152 /* Register variable[7]: Result */
6153 variable
[7] = CALL_typing___ASendExpr___name(variable
[0])(variable
[0]) /*ASendExpr::name*/;
6154 CALL_typing___AAbsSendExpr___do_typing(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[4], variable
[5], variable
[6], variable
[7], variable
[3] /*raw_args*/, NIT_NULL
/*null*/) /*AAbsSendExpr::do_typing*/;
6155 /* Register variable[4]: Result */
6156 variable
[4] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6157 /* Register variable[4]: Result */
6158 variable
[4] = TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))));
6159 if (UNTAG_Bool(variable
[4])) { /*if*/
6160 goto return_label241
;
6162 /* Register variable[4]: Result */
6163 variable
[4] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6164 /* Register variable[4]: Result */
6165 variable
[4] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[4])(variable
[4]) /*MMLocalProperty::global*/;
6166 /* Register variable[4]: Result */
6167 variable
[4] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[4])(variable
[4]) /*MMGlobalProperty::is_init*/;
6168 if (UNTAG_Bool(variable
[4])) { /*if*/
6169 /* Register variable[4]: Result */
6170 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
6171 /* Register variable[4]: Result */
6172 variable
[4] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[4])(variable
[4]) /*MMLocalProperty::global*/;
6173 /* Register variable[4]: Result */
6174 variable
[4] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[4])(variable
[4]) /*MMGlobalProperty::is_init*/;
6175 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[4])))) { /*if*/
6176 variable
[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
6177 /* Register variable[5]: Once String constant */
6178 if (once_value_242
!= NIT_NULL
) variable
[5] = once_value_242
;
6180 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)) /*new String*/;
6181 once_value_242
= variable
[5];
6183 /* Register variable[5]: Result */
6184 /* Ensure var variable[5]: super-string element*/
6185 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
6186 /* Register variable[5]: Result */
6187 variable
[5] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6188 /* Ensure var variable[5]: super-string element*/
6189 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/) /*AbstractArray::add*/;
6190 /* Register variable[5]: Once String constant */
6191 if (once_value_243
!= NIT_NULL
) variable
[5] = once_value_243
;
6193 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)) /*new String*/;
6194 once_value_243
= variable
[5];
6196 /* Register variable[5]: Result */
6197 /* Ensure var variable[5]: super-string element*/
6198 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
6199 /* Register variable[4]: Result */
6200 variable
[4] = CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/;
6201 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[4]) /*AbsSyntaxVisitor::error*/;
6203 /* Register variable[4]: Result */
6204 variable
[4] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6205 /* Register variable[4]: Result */
6206 variable
[4] = CALL_typing___PExpr___is_self(variable
[4])(variable
[4]) /*PExpr::is_self*/;
6207 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[4])))) { /*if*/
6208 variable
[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
6209 /* Register variable[5]: Once String constant */
6210 if (once_value_244
!= NIT_NULL
) variable
[5] = once_value_244
;
6212 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)) /*new String*/;
6213 once_value_244
= variable
[5];
6215 /* Register variable[5]: Result */
6216 /* Ensure var variable[5]: super-string element*/
6217 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
6218 /* Register variable[5]: Result */
6219 variable
[5] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6220 /* Ensure var variable[5]: super-string element*/
6221 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/) /*AbstractArray::add*/;
6222 /* Register variable[5]: Once String constant */
6223 if (once_value_245
!= NIT_NULL
) variable
[5] = once_value_245
;
6225 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)) /*new String*/;
6226 once_value_245
= variable
[5];
6228 /* Register variable[5]: Result */
6229 /* Ensure var variable[5]: super-string element*/
6230 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[5]) /*AbstractArray::add*/;
6231 /* Register variable[4]: Result */
6232 variable
[4] = CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/;
6233 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[4]) /*AbsSyntaxVisitor::error*/;
6237 /* Register variable[4]: Local variable */
6238 /* Register variable[5]: Result */
6239 variable
[5] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6240 /* Register variable[6]: Result */
6241 variable
[6] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6242 /* Register variable[6]: Result */
6243 variable
[6] = CALL_syntax_base___PExpr___stype(variable
[6])(variable
[6]) /*PExpr::stype*/;
6244 /* Register variable[5]: Result */
6245 variable
[5] = CALL_static_type___MMLocalProperty___signature_for(variable
[5])(variable
[5], variable
[6]) /*MMLocalProperty::signature_for*/;
6246 /* Register variable[5]: Result */
6247 variable
[5] = CALL_static_type___MMSignature___return_type(variable
[5])(variable
[5]) /*MMSignature::return_type*/;
6248 variable
[4] = variable
[5];
6249 /* Register variable[5]: Result */
6250 variable
[5] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6251 /* Register variable[5]: Result */
6252 variable
[5] = CALL_typing___PExpr___is_self(variable
[5])(variable
[5]) /*PExpr::is_self*/;
6253 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[5])))) { /*if*/
6254 /* Register variable[5]: Result */
6255 variable
[5] = CALL_static_type___MMType___not_for_self( variable
[4] /*t*/)( variable
[4] /*t*/) /*MMType::not_for_self*/;
6256 variable
[4] = variable
[5] /*t=*/;
6258 /* Register variable[5]: Local variable */
6259 /* Register variable[6]: Result */
6260 variable
[6] = CALL_typing___AReassignFormExpr___do_rvalue_typing(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[4] /*t*/) /*AReassignFormExpr::do_rvalue_typing*/;
6261 variable
[5] = variable
[6];
6262 /* Register variable[6]: Result */
6263 variable
[6] = TAG_Bool(( variable
[5] /*t2*/ == NIT_NULL
/*null*/) || (( variable
[5] /*t2*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[5] /*t2*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[5] /*t2*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*t2*/)( variable
[5] /*t2*/, NIT_NULL
/*null*/) /*Object::==*/)))));
6264 if (UNTAG_Bool(variable
[6])) { /*if*/
6265 goto return_label241
;
6267 /* Register variable[6]: Result */
6268 variable
[6] = CALL_parser_nodes___AReassignFormExpr___n_value(variable
[0])(variable
[0]) /*AReassignFormExpr::n_value*/;
6269 /* Register variable[6]: Result */
6270 variable
[6] = CALL_syntax_base___PExpr___stype(variable
[6])(variable
[6]) /*PExpr::stype*/;
6271 CALL_syntax_base___AbsSyntaxVisitor___check_conform( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[5] /*t2*/, variable
[6]) /*AbsSyntaxVisitor::check_conform*/;
6272 /* Register variable[6]: Result */
6273 variable
[6] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6274 ATTR_typing___ASendReassignExpr____read_prop(variable
[0]) /*ASendReassignExpr::_read_prop*/ = variable
[6];
6275 /* Register variable[6]: Local variable */
6276 /* Register variable[7]: Result */
6277 variable
[7] = CALL_typing___AAbsAbsSendExpr___arguments(variable
[0])(variable
[0]) /*AAbsAbsSendExpr::arguments*/;
6278 variable
[6] = variable
[7];
6279 /* Register variable[7]: Result */
6280 variable
[7] = CALL_parser_nodes___AReassignFormExpr___n_value(variable
[0])(variable
[0]) /*AReassignFormExpr::n_value*/;
6281 CALL_abstract_collection___SimpleCollection___add( variable
[3] /*raw_args*/)( variable
[3] /*raw_args*/, variable
[7]) /*AbstractArray::add*/;
6282 /* Register variable[7]: Result */
6283 variable
[7] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6284 /* Register variable[7]: Result */
6285 variable
[7] = CALL_syntax_base___PExpr___stype(variable
[7])(variable
[7]) /*PExpr::stype*/;
6286 /* Register variable[8]: Result */
6287 variable
[8] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6288 /* Register variable[8]: Result */
6289 variable
[8] = CALL_typing___PExpr___is_implicit_self(variable
[8])(variable
[8]) /*PExpr::is_implicit_self*/;
6290 /* Register variable[9]: Result */
6291 variable
[9] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6292 /* Register variable[9]: Result */
6293 variable
[9] = CALL_typing___PExpr___is_self(variable
[9])(variable
[9]) /*PExpr::is_self*/;
6294 variable
[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
6295 /* Register variable[11]: Once String constant */
6296 if (once_value_246
!= NIT_NULL
) variable
[11] = once_value_246
;
6298 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
6299 once_value_246
= variable
[11];
6301 /* Register variable[11]: Result */
6302 /* Ensure var variable[11]: super-string element*/
6303 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[11]) /*AbstractArray::add*/;
6304 /* Register variable[11]: Result */
6305 variable
[11] = CALL_typing___ASendExpr___name(variable
[0])(variable
[0]) /*ASendExpr::name*/;
6306 /* Ensure var variable[11]: super-string element*/
6307 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], CALL_string___Object___to_s(variable
[11])(variable
[11]) /*Object::to_s*/) /*AbstractArray::add*/;
6308 /* Register variable[11]: Once String constant */
6309 if (once_value_247
!= NIT_NULL
) variable
[11] = once_value_247
;
6311 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString("="), TAG_Int(1)) /*new String*/;
6312 once_value_247
= variable
[11];
6314 /* Register variable[11]: Result */
6315 /* Ensure var variable[11]: super-string element*/
6316 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[11]) /*AbstractArray::add*/;
6317 /* Register variable[10]: Result */
6318 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
6319 /* Register variable[10]: Result */
6320 variable
[10] = CALL_symbol___String___to_symbol(variable
[10])(variable
[10]) /*String::to_symbol*/;
6321 CALL_typing___AAbsSendExpr___do_typing(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[7], variable
[8], variable
[9], variable
[10], variable
[3] /*raw_args*/, NIT_NULL
/*null*/) /*AAbsSendExpr::do_typing*/;
6322 /* Register variable[7]: Result */
6323 variable
[7] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6324 /* Register variable[7]: Result */
6325 variable
[7] = TAG_Bool((variable
[7] == NIT_NULL
/*null*/) || ((variable
[7] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[7])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[7], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[7])(variable
[7], NIT_NULL
/*null*/) /*Object::==*/)))));
6326 if (UNTAG_Bool(variable
[7])) { /*if*/
6327 goto return_label241
;
6329 /* Register variable[7]: Result */
6330 variable
[7] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6331 /* Register variable[7]: Result */
6332 variable
[7] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[7])(variable
[7]) /*MMLocalProperty::global*/;
6333 /* Register variable[7]: Result */
6334 variable
[7] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[7])(variable
[7]) /*MMGlobalProperty::is_init*/;
6335 if (UNTAG_Bool(variable
[7])) { /*if*/
6336 /* Register variable[7]: Result */
6337 variable
[7] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
6338 /* Register variable[7]: Result */
6339 variable
[7] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[7])(variable
[7]) /*MMLocalProperty::global*/;
6340 /* Register variable[7]: Result */
6341 variable
[7] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[7])(variable
[7]) /*MMGlobalProperty::is_init*/;
6342 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[7])))) { /*if*/
6343 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
6344 /* Register variable[8]: Once String constant */
6345 if (once_value_248
!= NIT_NULL
) variable
[8] = once_value_248
;
6347 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)) /*new String*/;
6348 once_value_248
= variable
[8];
6350 /* Register variable[8]: Result */
6351 /* Ensure var variable[8]: super-string element*/
6352 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
6353 /* Register variable[8]: Result */
6354 variable
[8] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6355 /* Ensure var variable[8]: super-string element*/
6356 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/) /*AbstractArray::add*/;
6357 /* Register variable[8]: Once String constant */
6358 if (once_value_249
!= NIT_NULL
) variable
[8] = once_value_249
;
6360 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)) /*new String*/;
6361 once_value_249
= variable
[8];
6363 /* Register variable[8]: Result */
6364 /* Ensure var variable[8]: super-string element*/
6365 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
6366 /* Register variable[7]: Result */
6367 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
6368 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[7]) /*AbsSyntaxVisitor::error*/;
6370 /* Register variable[7]: Result */
6371 variable
[7] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6372 /* Register variable[7]: Result */
6373 variable
[7] = CALL_typing___PExpr___is_self(variable
[7])(variable
[7]) /*PExpr::is_self*/;
6374 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[7])))) { /*if*/
6375 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
6376 /* Register variable[8]: Once String constant */
6377 if (once_value_250
!= NIT_NULL
) variable
[8] = once_value_250
;
6379 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)) /*new String*/;
6380 once_value_250
= variable
[8];
6382 /* Register variable[8]: Result */
6383 /* Ensure var variable[8]: super-string element*/
6384 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
6385 /* Register variable[8]: Result */
6386 variable
[8] = CALL_typing___AAbsSendExpr___prop(variable
[0])(variable
[0]) /*AAbsSendExpr::prop*/;
6387 /* Ensure var variable[8]: super-string element*/
6388 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/) /*AbstractArray::add*/;
6389 /* Register variable[8]: Once String constant */
6390 if (once_value_251
!= NIT_NULL
) variable
[8] = once_value_251
;
6392 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)) /*new String*/;
6393 once_value_251
= variable
[8];
6395 /* Register variable[8]: Result */
6396 /* Ensure var variable[8]: super-string element*/
6397 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
6398 /* Register variable[7]: Result */
6399 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
6400 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[7]) /*AbsSyntaxVisitor::error*/;
6404 ATTR_typing___AAbsAbsSendExpr____arguments(variable
[0]) /*AAbsAbsSendExpr::_arguments*/ = variable
[6] /*old_args*/;
6405 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
6406 return_label241
: while(false);
6407 tracehead
= trace
.prev
;
6410 val_t
typing___ASendReassignExpr___read_prop(val_t self
) {
6411 struct trace_t trace
= {NULL
, NULL
, 1276, LOCATE_typing___ASendReassignExpr___read_prop
};
6412 val_t
*variable
= NULL
;
6413 struct WBT_
**closurevariable
= NULL
;
6414 trace
.prev
= tracehead
; tracehead
= &trace
;
6415 trace
.file
= LOCATE_typing
;
6416 tracehead
= trace
.prev
;
6417 return ATTR_typing___ASendReassignExpr____read_prop( self
) /*ASendReassignExpr::_read_prop*/;
6419 val_t
typing___ABinopExpr___raw_arguments(val_t self
) {
6420 struct trace_t trace
= {NULL
, NULL
, 1317, LOCATE_typing___ABinopExpr___raw_arguments
};
6422 struct WBT_
**closurevariable
= NULL
;
6423 trace
.prev
= tracehead
; tracehead
= &trace
;
6424 trace
.file
= LOCATE_typing
;
6425 /* Register variable[0]: Local variable */
6427 /* Register variable[1]: Method return value and escape marker */
6428 variable
[2] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[PExpr]*/ /* Ensure var: Literal array*/;
6429 /* Register variable[3]: Result */
6430 variable
[3] = CALL_parser_nodes___ABinopExpr___n_expr2(variable
[0])(variable
[0]) /*ABinopExpr::n_expr2*/;
6431 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
6432 /* Register variable[2]: Result */
6433 variable
[1] = variable
[2];
6434 goto return_label252
;
6435 return_label252
: while(false);
6436 tracehead
= trace
.prev
;
6439 void typing___AEqExpr___after_typing(val_t self
, val_t param0
) {
6440 struct trace_t trace
= {NULL
, NULL
, 1321, LOCATE_typing___AEqExpr___after_typing
};
6441 static val_t once_value_254
= NIT_NULL
; /* Once value for string variable[3]*/
6443 struct WBT_
**closurevariable
= NULL
;
6444 trace
.prev
= tracehead
; tracehead
= &trace
;
6445 trace
.file
= LOCATE_typing
;
6446 /* Register variable[0]: Local variable */
6448 /* Register variable[1]: Local variable */
6449 variable
[1] = param0
;
6450 /* Register variable[2]: Method return value and escape marker */
6451 CALL_SUPER_typing___AEqExpr___after_typing(variable
[0])(variable
[0], variable
[1]) /*super AEqExpr::after_typing*/;
6452 /* Register variable[3]: Result */
6453 variable
[3] = CALL_syntax_base___PExpr___is_typed(variable
[0])(variable
[0]) /*PExpr::is_typed*/;
6454 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
6455 goto return_label253
;
6457 /* Register variable[3]: Result */
6458 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6459 /* Register variable[3]: Result */
6460 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[3])(variable
[3]) /*PExpr::stype*/;
6461 /* Register variable[3]: Result */
6462 variable
[3] = TAG_Bool((variable
[3]==NIT_NULL
) || VAL_ISA(variable
[3], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
6463 /* Ensure var variable[3]: Left 'and' operand*/
6464 if (UNTAG_Bool(variable
[3])) { /* and */
6465 /* Register variable[3]: Result */
6466 variable
[3] = CALL_parser_nodes___ABinopExpr___n_expr2(variable
[0])(variable
[0]) /*ABinopExpr::n_expr2*/;
6467 /* Register variable[3]: Result */
6468 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[3])(variable
[3]) /*PExpr::stype*/;
6469 /* Register variable[3]: Result */
6470 variable
[3] = CALL_static_type___MMType___is_nullable(variable
[3])(variable
[3]) /*MMType::is_nullable*/;
6471 variable
[3] = TAG_Bool(!UNTAG_Bool(variable
[3]));
6473 /* Register variable[3]: Result */
6474 /* Ensure var variable[3]: Left 'or' operand*/
6475 if (!UNTAG_Bool(variable
[3])) { /* or */
6476 /* Register variable[3]: Result */
6477 variable
[3] = CALL_parser_nodes___ABinopExpr___n_expr2(variable
[0])(variable
[0]) /*ABinopExpr::n_expr2*/;
6478 /* Register variable[3]: Result */
6479 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[3])(variable
[3]) /*PExpr::stype*/;
6480 /* Register variable[3]: Result */
6481 variable
[3] = TAG_Bool((variable
[3]==NIT_NULL
) || VAL_ISA(variable
[3], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
6483 /* Register variable[3]: Result */
6484 /* Ensure var variable[3]: Left 'and' operand*/
6485 if (UNTAG_Bool(variable
[3])) { /* and */
6486 /* Register variable[3]: Result */
6487 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6488 /* Register variable[3]: Result */
6489 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[3])(variable
[3]) /*PExpr::stype*/;
6490 /* Register variable[3]: Result */
6491 variable
[3] = CALL_static_type___MMType___is_nullable(variable
[3])(variable
[3]) /*MMType::is_nullable*/;
6492 variable
[3] = TAG_Bool(!UNTAG_Bool(variable
[3]));
6494 /* Register variable[3]: Result */
6495 if (UNTAG_Bool(variable
[3])) { /*if*/
6496 /* Register variable[3]: Once String constant */
6497 if (once_value_254
!= NIT_NULL
) variable
[3] = once_value_254
;
6499 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("Warning: comparaison between null and a non nullable value."), TAG_Int(59)) /*new String*/;
6500 once_value_254
= variable
[3];
6502 /* Register variable[3]: Result */
6503 CALL_syntax_base___AbsSyntaxVisitor___warning( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[3]) /*AbsSyntaxVisitor::warning*/;
6505 /* Register variable[3]: Result */
6506 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6507 /* Register variable[3]: Result */
6508 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[3])(variable
[3]) /*PExpr::stype*/;
6509 /* Register variable[3]: Result */
6510 variable
[3] = TAG_Bool((variable
[3]==NIT_NULL
) || VAL_ISA(variable
[3], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
6511 if (UNTAG_Bool(variable
[3])) { /*if*/
6512 /* Register variable[3]: Result */
6513 variable
[3] = CALL_parser_nodes___ABinopExpr___n_expr2(variable
[0])(variable
[0]) /*ABinopExpr::n_expr2*/;
6514 CALL_typing___AEqExpr___try_to_isa(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[3]) /*AEqExpr::try_to_isa*/;
6516 /* Register variable[3]: Result */
6517 variable
[3] = CALL_parser_nodes___ABinopExpr___n_expr2(variable
[0])(variable
[0]) /*ABinopExpr::n_expr2*/;
6518 /* Register variable[3]: Result */
6519 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[3])(variable
[3]) /*PExpr::stype*/;
6520 /* Register variable[3]: Result */
6521 variable
[3] = TAG_Bool((variable
[3]==NIT_NULL
) || VAL_ISA(variable
[3], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
6522 if (UNTAG_Bool(variable
[3])) { /*if*/
6523 /* Register variable[3]: Result */
6524 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6525 CALL_typing___AEqExpr___try_to_isa(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[3]) /*AEqExpr::try_to_isa*/;
6528 return_label253
: while(false);
6529 tracehead
= trace
.prev
;
6532 val_t
typing___AEqExpr___name(val_t self
) {
6533 struct trace_t trace
= {NULL
, NULL
, 1320, LOCATE_typing___AEqExpr___name
};
6534 static val_t once_value_256
; static int once_bool_256
; /* Once value for variable[2]*/
6535 static val_t once_value_257
= NIT_NULL
; /* Once value for string variable[2]*/
6537 struct WBT_
**closurevariable
= NULL
;
6538 trace
.prev
= tracehead
; tracehead
= &trace
;
6539 trace
.file
= LOCATE_typing
;
6540 /* Register variable[0]: Local variable */
6542 /* Register variable[1]: Method return value and escape marker */
6543 /* Register variable[2]: Once expression result */
6544 if (once_bool_256
) variable
[2] = once_value_256
;
6546 /* Register variable[2]: Once String constant */
6547 if (once_value_257
!= NIT_NULL
) variable
[2] = once_value_257
;
6549 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)) /*new String*/;
6550 once_value_257
= variable
[2];
6552 /* Register variable[2]: Result */
6553 /* Register variable[2]: Result */
6554 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
6555 once_value_256
= variable
[2];
6556 once_bool_256
= true;
6558 /* Register variable[2]: Result */
6559 variable
[1] = variable
[2];
6560 goto return_label255
;
6561 return_label255
: while(false);
6562 tracehead
= trace
.prev
;
6565 void typing___AEqExpr___try_to_isa(val_t self
, val_t param0
, val_t param1
) {
6566 struct trace_t trace
= {NULL
, NULL
, 1337, LOCATE_typing___AEqExpr___try_to_isa
};
6568 struct WBT_
**closurevariable
= NULL
;
6569 trace
.prev
= tracehead
; tracehead
= &trace
;
6570 trace
.file
= LOCATE_typing
;
6571 /* Register variable[0]: Local variable */
6573 /* Register variable[1]: Local variable */
6574 variable
[1] = param0
;
6575 /* Register variable[2]: Local variable */
6576 variable
[2] = param1
;
6577 /* Register variable[3]: Method return value and escape marker */
6578 /* Register variable[4]: Local variable */
6579 /* Register variable[5]: Result */
6580 variable
[5] = CALL_typing___PExpr___its_variable( variable
[2] /*n*/)( variable
[2] /*n*/) /*PExpr::its_variable*/;
6581 variable
[4] = variable
[5];
6582 /* Register variable[5]: Result */
6583 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*variable*/ == NIT_NULL
/*null*/) || (( variable
[4] /*variable*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*variable*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*variable*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*variable*/)( variable
[4] /*variable*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
6584 if (UNTAG_Bool(variable
[5])) { /*if*/
6585 /* Register variable[5]: Result */
6586 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
6587 /* Register variable[6]: Result */
6588 variable
[6] = CALL_syntax_base___PExpr___stype( variable
[2] /*n*/)( variable
[2] /*n*/) /*PExpr::stype*/;
6589 /* Register variable[6]: Result */
6590 variable
[6] = CALL_static_type___MMType___as_notnull(variable
[6])(variable
[6]) /*MMType::as_notnull*/;
6591 /* Register variable[5]: Result */
6592 variable
[5] = CALL_control_flow___VariableContext___sub_with(variable
[5])(variable
[5], variable
[0], variable
[4] /*variable*/, variable
[6]) /*VariableContext::sub_with*/;
6593 ATTR_typing___PExpr____if_false_variable_ctx(variable
[0]) /*PExpr::_if_false_variable_ctx*/ = variable
[5];
6595 return_label258
: while(false);
6596 tracehead
= trace
.prev
;
6599 void typing___ANeExpr___after_typing(val_t self
, val_t param0
) {
6600 struct trace_t trace
= {NULL
, NULL
, 1347, LOCATE_typing___ANeExpr___after_typing
};
6601 static val_t once_value_260
= NIT_NULL
; /* Once value for string variable[3]*/
6603 struct WBT_
**closurevariable
= NULL
;
6604 trace
.prev
= tracehead
; tracehead
= &trace
;
6605 trace
.file
= LOCATE_typing
;
6606 /* Register variable[0]: Local variable */
6608 /* Register variable[1]: Local variable */
6609 variable
[1] = param0
;
6610 /* Register variable[2]: Method return value and escape marker */
6611 CALL_SUPER_typing___ANeExpr___after_typing(variable
[0])(variable
[0], variable
[1]) /*super ANeExpr::after_typing*/;
6612 /* Register variable[3]: Result */
6613 variable
[3] = CALL_syntax_base___PExpr___is_typed(variable
[0])(variable
[0]) /*PExpr::is_typed*/;
6614 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
6615 goto return_label259
;
6617 /* Register variable[3]: Result */
6618 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6619 /* Register variable[3]: Result */
6620 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[3])(variable
[3]) /*PExpr::stype*/;
6621 /* Register variable[3]: Result */
6622 variable
[3] = TAG_Bool((variable
[3]==NIT_NULL
) || VAL_ISA(variable
[3], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
6623 /* Ensure var variable[3]: Left 'and' operand*/
6624 if (UNTAG_Bool(variable
[3])) { /* and */
6625 /* Register variable[3]: Result */
6626 variable
[3] = CALL_parser_nodes___ABinopExpr___n_expr2(variable
[0])(variable
[0]) /*ABinopExpr::n_expr2*/;
6627 /* Register variable[3]: Result */
6628 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[3])(variable
[3]) /*PExpr::stype*/;
6629 /* Register variable[3]: Result */
6630 variable
[3] = CALL_static_type___MMType___is_nullable(variable
[3])(variable
[3]) /*MMType::is_nullable*/;
6631 variable
[3] = TAG_Bool(!UNTAG_Bool(variable
[3]));
6633 /* Register variable[3]: Result */
6634 /* Ensure var variable[3]: Left 'or' operand*/
6635 if (!UNTAG_Bool(variable
[3])) { /* or */
6636 /* Register variable[3]: Result */
6637 variable
[3] = CALL_parser_nodes___ABinopExpr___n_expr2(variable
[0])(variable
[0]) /*ABinopExpr::n_expr2*/;
6638 /* Register variable[3]: Result */
6639 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[3])(variable
[3]) /*PExpr::stype*/;
6640 /* Register variable[3]: Result */
6641 variable
[3] = TAG_Bool((variable
[3]==NIT_NULL
) || VAL_ISA(variable
[3], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
6643 /* Register variable[3]: Result */
6644 /* Ensure var variable[3]: Left 'and' operand*/
6645 if (UNTAG_Bool(variable
[3])) { /* and */
6646 /* Register variable[3]: Result */
6647 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6648 /* Register variable[3]: Result */
6649 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[3])(variable
[3]) /*PExpr::stype*/;
6650 /* Register variable[3]: Result */
6651 variable
[3] = CALL_static_type___MMType___is_nullable(variable
[3])(variable
[3]) /*MMType::is_nullable*/;
6652 variable
[3] = TAG_Bool(!UNTAG_Bool(variable
[3]));
6654 /* Register variable[3]: Result */
6655 if (UNTAG_Bool(variable
[3])) { /*if*/
6656 /* Register variable[3]: Once String constant */
6657 if (once_value_260
!= NIT_NULL
) variable
[3] = once_value_260
;
6659 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("Warning: comparaison between null and a non nullable value."), TAG_Int(59)) /*new String*/;
6660 once_value_260
= variable
[3];
6662 /* Register variable[3]: Result */
6663 CALL_syntax_base___AbsSyntaxVisitor___warning( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[3]) /*AbsSyntaxVisitor::warning*/;
6665 /* Register variable[3]: Result */
6666 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6667 /* Register variable[3]: Result */
6668 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[3])(variable
[3]) /*PExpr::stype*/;
6669 /* Register variable[3]: Result */
6670 variable
[3] = TAG_Bool((variable
[3]==NIT_NULL
) || VAL_ISA(variable
[3], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
6671 if (UNTAG_Bool(variable
[3])) { /*if*/
6672 /* Register variable[3]: Result */
6673 variable
[3] = CALL_parser_nodes___ABinopExpr___n_expr2(variable
[0])(variable
[0]) /*ABinopExpr::n_expr2*/;
6674 CALL_typing___ANeExpr___try_to_isa(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[3]) /*ANeExpr::try_to_isa*/;
6676 /* Register variable[3]: Result */
6677 variable
[3] = CALL_parser_nodes___ABinopExpr___n_expr2(variable
[0])(variable
[0]) /*ABinopExpr::n_expr2*/;
6678 /* Register variable[3]: Result */
6679 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[3])(variable
[3]) /*PExpr::stype*/;
6680 /* Register variable[3]: Result */
6681 variable
[3] = TAG_Bool((variable
[3]==NIT_NULL
) || VAL_ISA(variable
[3], COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
6682 if (UNTAG_Bool(variable
[3])) { /*if*/
6683 /* Register variable[3]: Result */
6684 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
6685 CALL_typing___ANeExpr___try_to_isa(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[3]) /*ANeExpr::try_to_isa*/;
6688 return_label259
: while(false);
6689 tracehead
= trace
.prev
;
6692 val_t
typing___ANeExpr___name(val_t self
) {
6693 struct trace_t trace
= {NULL
, NULL
, 1346, LOCATE_typing___ANeExpr___name
};
6694 static val_t once_value_262
; static int once_bool_262
; /* Once value for variable[2]*/
6695 static val_t once_value_263
= NIT_NULL
; /* Once value for string variable[2]*/
6697 struct WBT_
**closurevariable
= NULL
;
6698 trace
.prev
= tracehead
; tracehead
= &trace
;
6699 trace
.file
= LOCATE_typing
;
6700 /* Register variable[0]: Local variable */
6702 /* Register variable[1]: Method return value and escape marker */
6703 /* Register variable[2]: Once expression result */
6704 if (once_bool_262
) variable
[2] = once_value_262
;
6706 /* Register variable[2]: Once String constant */
6707 if (once_value_263
!= NIT_NULL
) variable
[2] = once_value_263
;
6709 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)) /*new String*/;
6710 once_value_263
= variable
[2];
6712 /* Register variable[2]: Result */
6713 /* Register variable[2]: Result */
6714 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
6715 once_value_262
= variable
[2];
6716 once_bool_262
= true;
6718 /* Register variable[2]: Result */
6719 variable
[1] = variable
[2];
6720 goto return_label261
;
6721 return_label261
: while(false);
6722 tracehead
= trace
.prev
;
6725 void typing___ANeExpr___try_to_isa(val_t self
, val_t param0
, val_t param1
) {
6726 struct trace_t trace
= {NULL
, NULL
, 1363, LOCATE_typing___ANeExpr___try_to_isa
};
6728 struct WBT_
**closurevariable
= NULL
;
6729 trace
.prev
= tracehead
; tracehead
= &trace
;
6730 trace
.file
= LOCATE_typing
;
6731 /* Register variable[0]: Local variable */
6733 /* Register variable[1]: Local variable */
6734 variable
[1] = param0
;
6735 /* Register variable[2]: Local variable */
6736 variable
[2] = param1
;
6737 /* Register variable[3]: Method return value and escape marker */
6738 /* Register variable[4]: Local variable */
6739 /* Register variable[5]: Result */
6740 variable
[5] = CALL_typing___PExpr___its_variable( variable
[2] /*n*/)( variable
[2] /*n*/) /*PExpr::its_variable*/;
6741 variable
[4] = variable
[5];
6742 /* Register variable[5]: Result */
6743 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*variable*/ == NIT_NULL
/*null*/) || (( variable
[4] /*variable*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*variable*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*variable*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*variable*/)( variable
[4] /*variable*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
6744 if (UNTAG_Bool(variable
[5])) { /*if*/
6745 /* Register variable[5]: Result */
6746 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
6747 /* Register variable[6]: Result */
6748 variable
[6] = CALL_syntax_base___PExpr___stype( variable
[2] /*n*/)( variable
[2] /*n*/) /*PExpr::stype*/;
6749 /* Register variable[6]: Result */
6750 variable
[6] = CALL_static_type___MMType___as_notnull(variable
[6])(variable
[6]) /*MMType::as_notnull*/;
6751 /* Register variable[5]: Result */
6752 variable
[5] = CALL_control_flow___VariableContext___sub_with(variable
[5])(variable
[5], variable
[0], variable
[4] /*variable*/, variable
[6]) /*VariableContext::sub_with*/;
6753 ATTR_typing___PExpr____if_true_variable_ctx(variable
[0]) /*PExpr::_if_true_variable_ctx*/ = variable
[5];
6755 return_label264
: while(false);
6756 tracehead
= trace
.prev
;
6759 val_t
typing___ALtExpr___name(val_t self
) {
6760 struct trace_t trace
= {NULL
, NULL
, 1372, LOCATE_typing___ALtExpr___name
};
6761 static val_t once_value_266
; static int once_bool_266
; /* Once value for variable[2]*/
6762 static val_t once_value_267
= NIT_NULL
; /* Once value for string variable[2]*/
6764 struct WBT_
**closurevariable
= NULL
;
6765 trace
.prev
= tracehead
; tracehead
= &trace
;
6766 trace
.file
= LOCATE_typing
;
6767 /* Register variable[0]: Local variable */
6769 /* Register variable[1]: Method return value and escape marker */
6770 /* Register variable[2]: Once expression result */
6771 if (once_bool_266
) variable
[2] = once_value_266
;
6773 /* Register variable[2]: Once String constant */
6774 if (once_value_267
!= NIT_NULL
) variable
[2] = once_value_267
;
6776 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)) /*new String*/;
6777 once_value_267
= variable
[2];
6779 /* Register variable[2]: Result */
6780 /* Register variable[2]: Result */
6781 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
6782 once_value_266
= variable
[2];
6783 once_bool_266
= true;
6785 /* Register variable[2]: Result */
6786 variable
[1] = variable
[2];
6787 goto return_label265
;
6788 return_label265
: while(false);
6789 tracehead
= trace
.prev
;
6792 val_t
typing___ALeExpr___name(val_t self
) {
6793 struct trace_t trace
= {NULL
, NULL
, 1375, LOCATE_typing___ALeExpr___name
};
6794 static val_t once_value_269
; static int once_bool_269
; /* Once value for variable[2]*/
6795 static val_t once_value_270
= NIT_NULL
; /* Once value for string variable[2]*/
6797 struct WBT_
**closurevariable
= NULL
;
6798 trace
.prev
= tracehead
; tracehead
= &trace
;
6799 trace
.file
= LOCATE_typing
;
6800 /* Register variable[0]: Local variable */
6802 /* Register variable[1]: Method return value and escape marker */
6803 /* Register variable[2]: Once expression result */
6804 if (once_bool_269
) variable
[2] = once_value_269
;
6806 /* Register variable[2]: Once String constant */
6807 if (once_value_270
!= NIT_NULL
) variable
[2] = once_value_270
;
6809 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)) /*new String*/;
6810 once_value_270
= variable
[2];
6812 /* Register variable[2]: Result */
6813 /* Register variable[2]: Result */
6814 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
6815 once_value_269
= variable
[2];
6816 once_bool_269
= true;
6818 /* Register variable[2]: Result */
6819 variable
[1] = variable
[2];
6820 goto return_label268
;
6821 return_label268
: while(false);
6822 tracehead
= trace
.prev
;
6825 val_t
typing___AGtExpr___name(val_t self
) {
6826 struct trace_t trace
= {NULL
, NULL
, 1378, LOCATE_typing___AGtExpr___name
};
6827 static val_t once_value_272
; static int once_bool_272
; /* Once value for variable[2]*/
6828 static val_t once_value_273
= NIT_NULL
; /* Once value for string variable[2]*/
6830 struct WBT_
**closurevariable
= NULL
;
6831 trace
.prev
= tracehead
; tracehead
= &trace
;
6832 trace
.file
= LOCATE_typing
;
6833 /* Register variable[0]: Local variable */
6835 /* Register variable[1]: Method return value and escape marker */
6836 /* Register variable[2]: Once expression result */
6837 if (once_bool_272
) variable
[2] = once_value_272
;
6839 /* Register variable[2]: Once String constant */
6840 if (once_value_273
!= NIT_NULL
) variable
[2] = once_value_273
;
6842 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)) /*new String*/;
6843 once_value_273
= variable
[2];
6845 /* Register variable[2]: Result */
6846 /* Register variable[2]: Result */
6847 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
6848 once_value_272
= variable
[2];
6849 once_bool_272
= true;
6851 /* Register variable[2]: Result */
6852 variable
[1] = variable
[2];
6853 goto return_label271
;
6854 return_label271
: while(false);
6855 tracehead
= trace
.prev
;
6858 val_t
typing___AGeExpr___name(val_t self
) {
6859 struct trace_t trace
= {NULL
, NULL
, 1381, LOCATE_typing___AGeExpr___name
};
6860 static val_t once_value_275
; static int once_bool_275
; /* Once value for variable[2]*/
6861 static val_t once_value_276
= NIT_NULL
; /* Once value for string variable[2]*/
6863 struct WBT_
**closurevariable
= NULL
;
6864 trace
.prev
= tracehead
; tracehead
= &trace
;
6865 trace
.file
= LOCATE_typing
;
6866 /* Register variable[0]: Local variable */
6868 /* Register variable[1]: Method return value and escape marker */
6869 /* Register variable[2]: Once expression result */
6870 if (once_bool_275
) variable
[2] = once_value_275
;
6872 /* Register variable[2]: Once String constant */
6873 if (once_value_276
!= NIT_NULL
) variable
[2] = once_value_276
;
6875 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)) /*new String*/;
6876 once_value_276
= variable
[2];
6878 /* Register variable[2]: Result */
6879 /* Register variable[2]: Result */
6880 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
6881 once_value_275
= variable
[2];
6882 once_bool_275
= true;
6884 /* Register variable[2]: Result */
6885 variable
[1] = variable
[2];
6886 goto return_label274
;
6887 return_label274
: while(false);
6888 tracehead
= trace
.prev
;
6891 val_t
typing___APlusExpr___name(val_t self
) {
6892 struct trace_t trace
= {NULL
, NULL
, 1384, LOCATE_typing___APlusExpr___name
};
6893 static val_t once_value_278
; static int once_bool_278
; /* Once value for variable[2]*/
6894 static val_t once_value_279
= NIT_NULL
; /* Once value for string variable[2]*/
6896 struct WBT_
**closurevariable
= NULL
;
6897 trace
.prev
= tracehead
; tracehead
= &trace
;
6898 trace
.file
= LOCATE_typing
;
6899 /* Register variable[0]: Local variable */
6901 /* Register variable[1]: Method return value and escape marker */
6902 /* Register variable[2]: Once expression result */
6903 if (once_bool_278
) variable
[2] = once_value_278
;
6905 /* Register variable[2]: Once String constant */
6906 if (once_value_279
!= NIT_NULL
) variable
[2] = once_value_279
;
6908 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)) /*new String*/;
6909 once_value_279
= variable
[2];
6911 /* Register variable[2]: Result */
6912 /* Register variable[2]: Result */
6913 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
6914 once_value_278
= variable
[2];
6915 once_bool_278
= true;
6917 /* Register variable[2]: Result */
6918 variable
[1] = variable
[2];
6919 goto return_label277
;
6920 return_label277
: while(false);
6921 tracehead
= trace
.prev
;
6924 val_t
typing___AMinusExpr___name(val_t self
) {
6925 struct trace_t trace
= {NULL
, NULL
, 1387, LOCATE_typing___AMinusExpr___name
};
6926 static val_t once_value_281
; static int once_bool_281
; /* Once value for variable[2]*/
6927 static val_t once_value_282
= NIT_NULL
; /* Once value for string variable[2]*/
6929 struct WBT_
**closurevariable
= NULL
;
6930 trace
.prev
= tracehead
; tracehead
= &trace
;
6931 trace
.file
= LOCATE_typing
;
6932 /* Register variable[0]: Local variable */
6934 /* Register variable[1]: Method return value and escape marker */
6935 /* Register variable[2]: Once expression result */
6936 if (once_bool_281
) variable
[2] = once_value_281
;
6938 /* Register variable[2]: Once String constant */
6939 if (once_value_282
!= NIT_NULL
) variable
[2] = once_value_282
;
6941 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)) /*new String*/;
6942 once_value_282
= variable
[2];
6944 /* Register variable[2]: Result */
6945 /* Register variable[2]: Result */
6946 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
6947 once_value_281
= variable
[2];
6948 once_bool_281
= true;
6950 /* Register variable[2]: Result */
6951 variable
[1] = variable
[2];
6952 goto return_label280
;
6953 return_label280
: while(false);
6954 tracehead
= trace
.prev
;
6957 val_t
typing___AStarshipExpr___name(val_t self
) {
6958 struct trace_t trace
= {NULL
, NULL
, 1390, LOCATE_typing___AStarshipExpr___name
};
6959 static val_t once_value_284
; static int once_bool_284
; /* Once value for variable[2]*/
6960 static val_t once_value_285
= NIT_NULL
; /* Once value for string variable[2]*/
6962 struct WBT_
**closurevariable
= NULL
;
6963 trace
.prev
= tracehead
; tracehead
= &trace
;
6964 trace
.file
= LOCATE_typing
;
6965 /* Register variable[0]: Local variable */
6967 /* Register variable[1]: Method return value and escape marker */
6968 /* Register variable[2]: Once expression result */
6969 if (once_bool_284
) variable
[2] = once_value_284
;
6971 /* Register variable[2]: Once String constant */
6972 if (once_value_285
!= NIT_NULL
) variable
[2] = once_value_285
;
6974 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("<=>"), TAG_Int(3)) /*new String*/;
6975 once_value_285
= variable
[2];
6977 /* Register variable[2]: Result */
6978 /* Register variable[2]: Result */
6979 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
6980 once_value_284
= variable
[2];
6981 once_bool_284
= true;
6983 /* Register variable[2]: Result */
6984 variable
[1] = variable
[2];
6985 goto return_label283
;
6986 return_label283
: while(false);
6987 tracehead
= trace
.prev
;
6990 val_t
typing___AStarExpr___name(val_t self
) {
6991 struct trace_t trace
= {NULL
, NULL
, 1393, LOCATE_typing___AStarExpr___name
};
6992 static val_t once_value_287
; static int once_bool_287
; /* Once value for variable[2]*/
6993 static val_t once_value_288
= NIT_NULL
; /* Once value for string variable[2]*/
6995 struct WBT_
**closurevariable
= NULL
;
6996 trace
.prev
= tracehead
; tracehead
= &trace
;
6997 trace
.file
= LOCATE_typing
;
6998 /* Register variable[0]: Local variable */
7000 /* Register variable[1]: Method return value and escape marker */
7001 /* Register variable[2]: Once expression result */
7002 if (once_bool_287
) variable
[2] = once_value_287
;
7004 /* Register variable[2]: Once String constant */
7005 if (once_value_288
!= NIT_NULL
) variable
[2] = once_value_288
;
7007 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)) /*new String*/;
7008 once_value_288
= variable
[2];
7010 /* Register variable[2]: Result */
7011 /* Register variable[2]: Result */
7012 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
7013 once_value_287
= variable
[2];
7014 once_bool_287
= true;
7016 /* Register variable[2]: Result */
7017 variable
[1] = variable
[2];
7018 goto return_label286
;
7019 return_label286
: while(false);
7020 tracehead
= trace
.prev
;
7023 val_t
typing___ASlashExpr___name(val_t self
) {
7024 struct trace_t trace
= {NULL
, NULL
, 1396, LOCATE_typing___ASlashExpr___name
};
7025 static val_t once_value_290
; static int once_bool_290
; /* Once value for variable[2]*/
7026 static val_t once_value_291
= NIT_NULL
; /* Once value for string variable[2]*/
7028 struct WBT_
**closurevariable
= NULL
;
7029 trace
.prev
= tracehead
; tracehead
= &trace
;
7030 trace
.file
= LOCATE_typing
;
7031 /* Register variable[0]: Local variable */
7033 /* Register variable[1]: Method return value and escape marker */
7034 /* Register variable[2]: Once expression result */
7035 if (once_bool_290
) variable
[2] = once_value_290
;
7037 /* Register variable[2]: Once String constant */
7038 if (once_value_291
!= NIT_NULL
) variable
[2] = once_value_291
;
7040 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/;
7041 once_value_291
= variable
[2];
7043 /* Register variable[2]: Result */
7044 /* Register variable[2]: Result */
7045 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
7046 once_value_290
= variable
[2];
7047 once_bool_290
= true;
7049 /* Register variable[2]: Result */
7050 variable
[1] = variable
[2];
7051 goto return_label289
;
7052 return_label289
: while(false);
7053 tracehead
= trace
.prev
;
7056 val_t
typing___APercentExpr___name(val_t self
) {
7057 struct trace_t trace
= {NULL
, NULL
, 1399, LOCATE_typing___APercentExpr___name
};
7058 static val_t once_value_293
; static int once_bool_293
; /* Once value for variable[2]*/
7059 static val_t once_value_294
= NIT_NULL
; /* Once value for string variable[2]*/
7061 struct WBT_
**closurevariable
= NULL
;
7062 trace
.prev
= tracehead
; tracehead
= &trace
;
7063 trace
.file
= LOCATE_typing
;
7064 /* Register variable[0]: Local variable */
7066 /* Register variable[1]: Method return value and escape marker */
7067 /* Register variable[2]: Once expression result */
7068 if (once_bool_293
) variable
[2] = once_value_293
;
7070 /* Register variable[2]: Once String constant */
7071 if (once_value_294
!= NIT_NULL
) variable
[2] = once_value_294
;
7073 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)) /*new String*/;
7074 once_value_294
= variable
[2];
7076 /* Register variable[2]: Result */
7077 /* Register variable[2]: Result */
7078 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
7079 once_value_293
= variable
[2];
7080 once_bool_293
= true;
7082 /* Register variable[2]: Result */
7083 variable
[1] = variable
[2];
7084 goto return_label292
;
7085 return_label292
: while(false);
7086 tracehead
= trace
.prev
;
7089 val_t
typing___AUminusExpr___name(val_t self
) {
7090 struct trace_t trace
= {NULL
, NULL
, 1403, LOCATE_typing___AUminusExpr___name
};
7091 static val_t once_value_296
; static int once_bool_296
; /* Once value for variable[2]*/
7092 static val_t once_value_297
= NIT_NULL
; /* Once value for string variable[2]*/
7094 struct WBT_
**closurevariable
= NULL
;
7095 trace
.prev
= tracehead
; tracehead
= &trace
;
7096 trace
.file
= LOCATE_typing
;
7097 /* Register variable[0]: Local variable */
7099 /* Register variable[1]: Method return value and escape marker */
7100 /* Register variable[2]: Once expression result */
7101 if (once_bool_296
) variable
[2] = once_value_296
;
7103 /* Register variable[2]: Once String constant */
7104 if (once_value_297
!= NIT_NULL
) variable
[2] = once_value_297
;
7106 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)) /*new String*/;
7107 once_value_297
= variable
[2];
7109 /* Register variable[2]: Result */
7110 /* Register variable[2]: Result */
7111 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
7112 once_value_296
= variable
[2];
7113 once_bool_296
= true;
7115 /* Register variable[2]: Result */
7116 variable
[1] = variable
[2];
7117 goto return_label295
;
7118 return_label295
: while(false);
7119 tracehead
= trace
.prev
;
7122 val_t
typing___AUminusExpr___raw_arguments(val_t self
) {
7123 struct trace_t trace
= {NULL
, NULL
, 1404, LOCATE_typing___AUminusExpr___raw_arguments
};
7125 struct WBT_
**closurevariable
= NULL
;
7126 trace
.prev
= tracehead
; tracehead
= &trace
;
7127 trace
.file
= LOCATE_typing
;
7128 /* Register variable[0]: Local variable */
7130 /* Register variable[1]: Method return value and escape marker */
7131 variable
[1] = NIT_NULL
/*null*/;
7132 goto return_label298
;
7133 return_label298
: while(false);
7134 tracehead
= trace
.prev
;
7137 void typing___ACallFormExpr___after_typing(val_t self
, val_t param0
) {
7138 struct trace_t trace
= {NULL
, NULL
, 1408, LOCATE_typing___ACallFormExpr___after_typing
};
7139 static val_t once_value_300
= NIT_NULL
; /* Once value for string variable[6]*/
7140 static val_t once_value_301
= NIT_NULL
; /* Once value for string variable[6]*/
7142 struct WBT_
**closurevariable
= NULL
;
7143 trace
.prev
= tracehead
; tracehead
= &trace
;
7144 trace
.file
= LOCATE_typing
;
7145 /* Register variable[0]: Local variable */
7147 /* Register variable[1]: Local variable */
7148 variable
[1] = param0
;
7149 /* Register variable[2]: Method return value and escape marker */
7150 /* Register variable[3]: Result */
7151 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
7152 /* Register variable[3]: Result */
7153 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
7154 /* Ensure var variable[3]: Left 'and' operand*/
7155 if (UNTAG_Bool(variable
[3])) { /* and */
7156 /* Register variable[3]: Result */
7157 variable
[3] = CALL_parser_nodes___ASendExpr___n_expr(variable
[0])(variable
[0]) /*ASendExpr::n_expr*/;
7158 /* Register variable[3]: Result */
7159 variable
[3] = CALL_typing___PExpr___is_implicit_self(variable
[3])(variable
[3]) /*PExpr::is_implicit_self*/;
7161 /* Register variable[3]: Result */
7162 if (UNTAG_Bool(variable
[3])) { /*if*/
7163 /* Register variable[3]: Local variable */
7164 /* Register variable[4]: Result */
7165 variable
[4] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[0])(variable
[0]) /*ACallFormExpr::n_id*/;
7166 /* Register variable[4]: Result */
7167 variable
[4] = CALL_syntax_base___Token___to_symbol(variable
[4])(variable
[4]) /*Token::to_symbol*/;
7168 variable
[3] = variable
[4];
7169 /* Register variable[4]: Local variable */
7170 /* Register variable[5]: Result */
7171 variable
[5] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
7172 /* Register variable[5]: Result */
7173 variable
[5] = CALL_control_flow___VariableContext_____bra(variable
[5])(variable
[5], variable
[3] /*name*/) /*VariableContext::[]*/;
7174 variable
[4] = variable
[5];
7175 /* Register variable[5]: Result */
7176 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*variable*/ == NIT_NULL
/*null*/) || (( variable
[4] /*variable*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*variable*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*variable*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*variable*/)( variable
[4] /*variable*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
7177 if (UNTAG_Bool(variable
[5])) { /*if*/
7178 /* Register variable[5]: Result */
7179 variable
[5] = TAG_Bool(( variable
[4] /*variable*/==NIT_NULL
) || VAL_ISA( variable
[4] /*variable*/, COLOR_ClosureVariable
, ID_ClosureVariable
)) /*cast ClosureVariable*/;
7180 if (UNTAG_Bool(variable
[5])) { /*if*/
7181 /* Register variable[5]: Local variable */
7182 /* Register variable[6]: Result */
7183 variable
[6] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[0])(variable
[0]) /*ACallFormExpr::n_id*/;
7184 /* Register variable[7]: Result */
7185 variable
[7] = CALL_parser_nodes___ACallFormExpr___n_args(variable
[0])(variable
[0]) /*ACallFormExpr::n_args*/;
7186 /* Register variable[8]: Result */
7187 variable
[8] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable
[0])(variable
[0]) /*ASendExpr::n_closure_defs*/;
7188 /* Register variable[6]: Result */
7189 variable
[6] = NEW_AClosureCallExpr_parser_prod___AClosureCallExpr___init_aclosurecallexpr(variable
[6], variable
[7], variable
[8]) /*new AClosureCallExpr*/;
7190 variable
[5] = variable
[6];
7191 CALL_parser_prod___PNode___replace_with(variable
[0])(variable
[0], variable
[5] /*n*/) /*Prod::replace_with*/;
7192 CALL_syntax_base___AClosureCallExpr___variable__eq( variable
[5] /*n*/)( variable
[5] /*n*/, variable
[4] /*variable*/) /*AClosureCallExpr::variable=*/;
7193 CALL_typing___PNode___after_typing( variable
[5] /*n*/)( variable
[5] /*n*/, variable
[1] /*v*/) /*AClosureCallExpr::after_typing*/;
7194 goto return_label299
;
7196 /* Register variable[5]: Result */
7197 variable
[5] = CALL_parser_nodes___ACallFormExpr___n_args(variable
[0])(variable
[0]) /*ACallFormExpr::n_args*/;
7198 /* Register variable[5]: Result */
7199 variable
[5] = CALL_abstract_collection___Collection___is_empty(variable
[5])(variable
[5]) /*List::is_empty*/;
7200 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[5])))) { /*if*/
7201 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
7202 /* Register variable[6]: Once String constant */
7203 if (once_value_300
!= NIT_NULL
) variable
[6] = once_value_300
;
7205 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)) /*new String*/;
7206 once_value_300
= variable
[6];
7208 /* Register variable[6]: Result */
7209 /* Ensure var variable[6]: super-string element*/
7210 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
7211 variable
[6] = variable
[3] /*name*/ /* Ensure var: super-string element*/;
7212 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/) /*AbstractArray::add*/;
7213 /* Register variable[6]: Once String constant */
7214 if (once_value_301
!= NIT_NULL
) variable
[6] = once_value_301
;
7216 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(" is variable, not a function."), TAG_Int(29)) /*new String*/;
7217 once_value_301
= variable
[6];
7219 /* Register variable[6]: Result */
7220 /* Ensure var variable[6]: super-string element*/
7221 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
7222 /* Register variable[5]: Result */
7223 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
7224 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[5]) /*AbsSyntaxVisitor::error*/;
7225 goto return_label299
;
7227 /* Register variable[5]: Local variable */
7228 /* Register variable[6]: Result */
7229 variable
[6] = CALL_typing___ACallFormExpr___variable_create(variable
[0])(variable
[0], variable
[4] /*variable*/) /*ACallFormExpr::variable_create*/;
7230 variable
[5] = variable
[6];
7231 CALL_syntax_base___AVarFormExpr___variable__eq( variable
[5] /*vform*/)( variable
[5] /*vform*/, variable
[4] /*variable*/) /*AVarFormExpr::variable=*/;
7232 CALL_parser_prod___PNode___replace_with(variable
[0])(variable
[0], variable
[5] /*vform*/) /*Prod::replace_with*/;
7233 CALL_typing___PNode___after_typing( variable
[5] /*vform*/)( variable
[5] /*vform*/, variable
[1] /*v*/) /*PNode::after_typing*/;
7234 goto return_label299
;
7238 CALL_SUPER_typing___ACallFormExpr___after_typing(variable
[0])(variable
[0], variable
[1]) /*super ACallFormExpr::after_typing*/;
7239 return_label299
: while(false);
7240 tracehead
= trace
.prev
;
7243 val_t
typing___ACallFormExpr___closure_defs(val_t self
) {
7244 struct trace_t trace
= {NULL
, NULL
, 1437, LOCATE_typing___ACallFormExpr___closure_defs
};
7246 struct WBT_
**closurevariable
= NULL
;
7247 trace
.prev
= tracehead
; tracehead
= &trace
;
7248 trace
.file
= LOCATE_typing
;
7249 /* Register variable[0]: Local variable */
7251 /* Register variable[1]: Method return value and escape marker */
7252 /* Register variable[2]: Result */
7253 variable
[2] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable
[0])(variable
[0]) /*ASendExpr::n_closure_defs*/;
7254 /* Register variable[2]: Result */
7255 variable
[2] = TAG_Bool((variable
[2] == NIT_NULL
/*null*/) || ((variable
[2] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[2])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[2], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[2])(variable
[2], NIT_NULL
/*null*/) /*Object::==*/)))));
7256 /* Ensure var variable[2]: Left 'or' operand*/
7257 if (!UNTAG_Bool(variable
[2])) { /* or */
7258 /* Register variable[2]: Result */
7259 variable
[2] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable
[0])(variable
[0]) /*ASendExpr::n_closure_defs*/;
7260 /* Register variable[2]: Result */
7261 variable
[2] = CALL_abstract_collection___Collection___is_empty(variable
[2])(variable
[2]) /*List::is_empty*/;
7263 /* Register variable[2]: Result */
7264 if (UNTAG_Bool(variable
[2])) { /*if*/
7265 variable
[1] = NIT_NULL
/*null*/;
7266 goto return_label302
;
7268 /* Register variable[2]: Result */
7269 variable
[2] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable
[0])(variable
[0]) /*ASendExpr::n_closure_defs*/;
7270 /* Register variable[2]: Result */
7271 variable
[2] = CALL_array___Collection___to_a(variable
[2])(variable
[2]) /*Collection::to_a*/;
7272 variable
[1] = variable
[2];
7273 goto return_label302
;
7275 return_label302
: while(false);
7276 tracehead
= trace
.prev
;
7279 val_t
typing___ACallFormExpr___variable_create(val_t self
, val_t param0
) {
7280 struct trace_t trace
= {NULL
, NULL
, 1446, LOCATE_typing___ACallFormExpr___variable_create
};
7281 val_t
*variable
= NULL
;
7282 struct WBT_
**closurevariable
= NULL
;
7283 trace
.prev
= tracehead
; tracehead
= &trace
;
7284 trace
.file
= LOCATE_typing
;
7285 fprintf(stderr
, "Deferred method called");
7286 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1446);
7288 tracehead
= trace
.prev
;
7291 val_t
typing___ACallExpr___name(val_t self
) {
7292 struct trace_t trace
= {NULL
, NULL
, 1456, LOCATE_typing___ACallExpr___name
};
7294 struct WBT_
**closurevariable
= NULL
;
7295 trace
.prev
= tracehead
; tracehead
= &trace
;
7296 trace
.file
= LOCATE_typing
;
7297 /* Register variable[0]: Local variable */
7299 /* Register variable[1]: Method return value and escape marker */
7300 /* Register variable[2]: Result */
7301 variable
[2] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[0])(variable
[0]) /*ACallFormExpr::n_id*/;
7302 /* Register variable[2]: Result */
7303 variable
[2] = CALL_syntax_base___Token___to_symbol(variable
[2])(variable
[2]) /*Token::to_symbol*/;
7304 variable
[1] = variable
[2];
7305 goto return_label303
;
7306 return_label303
: while(false);
7307 tracehead
= trace
.prev
;
7310 val_t
typing___ACallExpr___raw_arguments(val_t self
) {
7311 struct trace_t trace
= {NULL
, NULL
, 1457, LOCATE_typing___ACallExpr___raw_arguments
};
7313 struct WBT_
**closurevariable
= NULL
;
7314 trace
.prev
= tracehead
; tracehead
= &trace
;
7315 trace
.file
= LOCATE_typing
;
7316 /* Register variable[0]: Local variable */
7318 /* Register variable[1]: Method return value and escape marker */
7319 /* Register variable[2]: Result */
7320 variable
[2] = CALL_parser_nodes___ACallFormExpr___n_args(variable
[0])(variable
[0]) /*ACallFormExpr::n_args*/;
7321 /* Register variable[2]: Result */
7322 variable
[2] = CALL_array___Collection___to_a(variable
[2])(variable
[2]) /*Collection::to_a*/;
7323 variable
[1] = variable
[2];
7324 goto return_label304
;
7325 return_label304
: while(false);
7326 tracehead
= trace
.prev
;
7329 val_t
typing___ACallExpr___variable_create(val_t self
, val_t param0
) {
7330 struct trace_t trace
= {NULL
, NULL
, 1451, LOCATE_typing___ACallExpr___variable_create
};
7332 struct WBT_
**closurevariable
= NULL
;
7333 trace
.prev
= tracehead
; tracehead
= &trace
;
7334 trace
.file
= LOCATE_typing
;
7335 /* Register variable[0]: Local variable */
7337 /* Register variable[1]: Local variable */
7338 variable
[1] = param0
;
7339 /* Register variable[2]: Method return value and escape marker */
7340 /* Register variable[3]: Result */
7341 variable
[3] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[0])(variable
[0]) /*ACallFormExpr::n_id*/;
7342 /* Register variable[3]: Result */
7343 variable
[3] = NEW_AVarExpr_parser_prod___AVarExpr___init_avarexpr(variable
[3]) /*new AVarExpr*/;
7344 variable
[2] = variable
[3];
7345 goto return_label305
;
7346 return_label305
: while(false);
7347 tracehead
= trace
.prev
;
7350 val_t
typing___ACallAssignExpr___name(val_t self
) {
7351 struct trace_t trace
= {NULL
, NULL
, 1466, LOCATE_typing___ACallAssignExpr___name
};
7352 static val_t once_value_307
= NIT_NULL
; /* Once value for string variable[3]*/
7354 struct WBT_
**closurevariable
= NULL
;
7355 trace
.prev
= tracehead
; tracehead
= &trace
;
7356 trace
.file
= LOCATE_typing
;
7357 /* Register variable[0]: Local variable */
7359 /* Register variable[1]: Method return value and escape marker */
7360 /* Register variable[2]: Result */
7361 variable
[2] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[0])(variable
[0]) /*ACallFormExpr::n_id*/;
7362 /* Register variable[2]: Result */
7363 variable
[2] = CALL_lexer___Token___text(variable
[2])(variable
[2]) /*Token::text*/;
7364 /* Register variable[3]: Once String constant */
7365 if (once_value_307
!= NIT_NULL
) variable
[3] = once_value_307
;
7367 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("="), TAG_Int(1)) /*new String*/;
7368 once_value_307
= variable
[3];
7370 /* Register variable[3]: Result */
7371 /* Register variable[2]: Result */
7372 variable
[2] = CALL_string___String_____plus(variable
[2])(variable
[2], variable
[3]) /*String::+*/;
7373 /* Register variable[2]: Result */
7374 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
7375 variable
[1] = variable
[2];
7376 goto return_label306
;
7377 return_label306
: while(false);
7378 tracehead
= trace
.prev
;
7381 val_t
typing___ACallAssignExpr___raw_arguments(val_t self
) {
7382 struct trace_t trace
= {NULL
, NULL
, 1467, LOCATE_typing___ACallAssignExpr___raw_arguments
};
7384 struct WBT_
**closurevariable
= NULL
;
7385 trace
.prev
= tracehead
; tracehead
= &trace
;
7386 trace
.file
= LOCATE_typing
;
7387 /* Register variable[0]: Local variable */
7389 /* Register variable[1]: Method return value and escape marker */
7390 /* Register variable[2]: Local variable */
7391 /* Register variable[3]: Result */
7392 variable
[3] = CALL_parser_nodes___ACallFormExpr___n_args(variable
[0])(variable
[0]) /*ACallFormExpr::n_args*/;
7393 /* Register variable[3]: Result */
7394 variable
[3] = CALL_array___Collection___to_a(variable
[3])(variable
[3]) /*Collection::to_a*/;
7395 variable
[2] = variable
[3];
7396 /* Register variable[3]: Result */
7397 variable
[3] = CALL_parser_nodes___AAssignFormExpr___n_value(variable
[0])(variable
[0]) /*AAssignFormExpr::n_value*/;
7398 CALL_abstract_collection___SimpleCollection___add( variable
[2] /*res*/)( variable
[2] /*res*/, variable
[3]) /*AbstractArray::add*/;
7399 variable
[1] = variable
[2] /*res*/;
7400 goto return_label308
;
7401 return_label308
: while(false);
7402 tracehead
= trace
.prev
;
7405 val_t
typing___ACallAssignExpr___variable_create(val_t self
, val_t param0
) {
7406 struct trace_t trace
= {NULL
, NULL
, 1461, LOCATE_typing___ACallAssignExpr___variable_create
};
7408 struct WBT_
**closurevariable
= NULL
;
7409 trace
.prev
= tracehead
; tracehead
= &trace
;
7410 trace
.file
= LOCATE_typing
;
7411 /* Register variable[0]: Local variable */
7413 /* Register variable[1]: Local variable */
7414 variable
[1] = param0
;
7415 /* Register variable[2]: Method return value and escape marker */
7416 /* Register variable[3]: Result */
7417 variable
[3] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[0])(variable
[0]) /*ACallFormExpr::n_id*/;
7418 /* Register variable[4]: Result */
7419 variable
[4] = CALL_parser_nodes___AAssignFormExpr___n_assign(variable
[0])(variable
[0]) /*AAssignFormExpr::n_assign*/;
7420 /* Register variable[5]: Result */
7421 variable
[5] = CALL_parser_nodes___AAssignFormExpr___n_value(variable
[0])(variable
[0]) /*AAssignFormExpr::n_value*/;
7422 /* Register variable[3]: Result */
7423 variable
[3] = NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___init_avarassignexpr(variable
[3], variable
[4], variable
[5]) /*new AVarAssignExpr*/;
7424 variable
[2] = variable
[3];
7425 goto return_label309
;
7426 return_label309
: while(false);
7427 tracehead
= trace
.prev
;
7430 val_t
typing___ACallReassignExpr___name(val_t self
) {
7431 struct trace_t trace
= {NULL
, NULL
, 1481, LOCATE_typing___ACallReassignExpr___name
};
7433 struct WBT_
**closurevariable
= NULL
;
7434 trace
.prev
= tracehead
; tracehead
= &trace
;
7435 trace
.file
= LOCATE_typing
;
7436 /* Register variable[0]: Local variable */
7438 /* Register variable[1]: Method return value and escape marker */
7439 /* Register variable[2]: Result */
7440 variable
[2] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[0])(variable
[0]) /*ACallFormExpr::n_id*/;
7441 /* Register variable[2]: Result */
7442 variable
[2] = CALL_syntax_base___Token___to_symbol(variable
[2])(variable
[2]) /*Token::to_symbol*/;
7443 variable
[1] = variable
[2];
7444 goto return_label310
;
7445 return_label310
: while(false);
7446 tracehead
= trace
.prev
;
7449 val_t
typing___ACallReassignExpr___raw_arguments(val_t self
) {
7450 struct trace_t trace
= {NULL
, NULL
, 1482, LOCATE_typing___ACallReassignExpr___raw_arguments
};
7452 struct WBT_
**closurevariable
= NULL
;
7453 trace
.prev
= tracehead
; tracehead
= &trace
;
7454 trace
.file
= LOCATE_typing
;
7455 /* Register variable[0]: Local variable */
7457 /* Register variable[1]: Method return value and escape marker */
7458 /* Register variable[2]: Result */
7459 variable
[2] = CALL_parser_nodes___ACallFormExpr___n_args(variable
[0])(variable
[0]) /*ACallFormExpr::n_args*/;
7460 /* Register variable[2]: Result */
7461 variable
[2] = CALL_array___Collection___to_a(variable
[2])(variable
[2]) /*Collection::to_a*/;
7462 variable
[1] = variable
[2];
7463 goto return_label311
;
7464 return_label311
: while(false);
7465 tracehead
= trace
.prev
;
7468 val_t
typing___ACallReassignExpr___variable_create(val_t self
, val_t param0
) {
7469 struct trace_t trace
= {NULL
, NULL
, 1476, LOCATE_typing___ACallReassignExpr___variable_create
};
7471 struct WBT_
**closurevariable
= NULL
;
7472 trace
.prev
= tracehead
; tracehead
= &trace
;
7473 trace
.file
= LOCATE_typing
;
7474 /* Register variable[0]: Local variable */
7476 /* Register variable[1]: Local variable */
7477 variable
[1] = param0
;
7478 /* Register variable[2]: Method return value and escape marker */
7479 /* Register variable[3]: Result */
7480 variable
[3] = CALL_parser_nodes___ACallFormExpr___n_id(variable
[0])(variable
[0]) /*ACallFormExpr::n_id*/;
7481 /* Register variable[4]: Result */
7482 variable
[4] = CALL_parser_nodes___AReassignFormExpr___n_assign_op(variable
[0])(variable
[0]) /*AReassignFormExpr::n_assign_op*/;
7483 /* Register variable[5]: Result */
7484 variable
[5] = CALL_parser_nodes___AReassignFormExpr___n_value(variable
[0])(variable
[0]) /*AReassignFormExpr::n_value*/;
7485 /* Register variable[3]: Result */
7486 variable
[3] = NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___init_avarreassignexpr(variable
[3], variable
[4], variable
[5]) /*new AVarReassignExpr*/;
7487 variable
[2] = variable
[3];
7488 goto return_label312
;
7489 return_label312
: while(false);
7490 tracehead
= trace
.prev
;
7493 val_t
typing___ABraExpr___name(val_t self
) {
7494 struct trace_t trace
= {NULL
, NULL
, 1486, LOCATE_typing___ABraExpr___name
};
7495 static val_t once_value_314
; static int once_bool_314
; /* Once value for variable[2]*/
7496 static val_t once_value_315
= NIT_NULL
; /* Once value for string variable[2]*/
7498 struct WBT_
**closurevariable
= NULL
;
7499 trace
.prev
= tracehead
; tracehead
= &trace
;
7500 trace
.file
= LOCATE_typing
;
7501 /* Register variable[0]: Local variable */
7503 /* Register variable[1]: Method return value and escape marker */
7504 /* Register variable[2]: Once expression result */
7505 if (once_bool_314
) variable
[2] = once_value_314
;
7507 /* Register variable[2]: Once String constant */
7508 if (once_value_315
!= NIT_NULL
) variable
[2] = once_value_315
;
7510 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)) /*new String*/;
7511 once_value_315
= variable
[2];
7513 /* Register variable[2]: Result */
7514 /* Register variable[2]: Result */
7515 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
7516 once_value_314
= variable
[2];
7517 once_bool_314
= true;
7519 /* Register variable[2]: Result */
7520 variable
[1] = variable
[2];
7521 goto return_label313
;
7522 return_label313
: while(false);
7523 tracehead
= trace
.prev
;
7526 val_t
typing___ABraExpr___raw_arguments(val_t self
) {
7527 struct trace_t trace
= {NULL
, NULL
, 1487, LOCATE_typing___ABraExpr___raw_arguments
};
7529 struct WBT_
**closurevariable
= NULL
;
7530 trace
.prev
= tracehead
; tracehead
= &trace
;
7531 trace
.file
= LOCATE_typing
;
7532 /* Register variable[0]: Local variable */
7534 /* Register variable[1]: Method return value and escape marker */
7535 /* Register variable[2]: Result */
7536 variable
[2] = CALL_parser_nodes___ABraFormExpr___n_args(variable
[0])(variable
[0]) /*ABraFormExpr::n_args*/;
7537 /* Register variable[2]: Result */
7538 variable
[2] = CALL_array___Collection___to_a(variable
[2])(variable
[2]) /*Collection::to_a*/;
7539 variable
[1] = variable
[2];
7540 goto return_label316
;
7541 return_label316
: while(false);
7542 tracehead
= trace
.prev
;
7545 val_t
typing___ABraAssignExpr___name(val_t self
) {
7546 struct trace_t trace
= {NULL
, NULL
, 1491, LOCATE_typing___ABraAssignExpr___name
};
7547 static val_t once_value_318
; static int once_bool_318
; /* Once value for variable[2]*/
7548 static val_t once_value_319
= NIT_NULL
; /* Once value for string variable[2]*/
7550 struct WBT_
**closurevariable
= NULL
;
7551 trace
.prev
= tracehead
; tracehead
= &trace
;
7552 trace
.file
= LOCATE_typing
;
7553 /* Register variable[0]: Local variable */
7555 /* Register variable[1]: Method return value and escape marker */
7556 /* Register variable[2]: Once expression result */
7557 if (once_bool_318
) variable
[2] = once_value_318
;
7559 /* Register variable[2]: Once String constant */
7560 if (once_value_319
!= NIT_NULL
) variable
[2] = once_value_319
;
7562 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("[]="), TAG_Int(3)) /*new String*/;
7563 once_value_319
= variable
[2];
7565 /* Register variable[2]: Result */
7566 /* Register variable[2]: Result */
7567 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
7568 once_value_318
= variable
[2];
7569 once_bool_318
= true;
7571 /* Register variable[2]: Result */
7572 variable
[1] = variable
[2];
7573 goto return_label317
;
7574 return_label317
: while(false);
7575 tracehead
= trace
.prev
;
7578 val_t
typing___ABraAssignExpr___raw_arguments(val_t self
) {
7579 struct trace_t trace
= {NULL
, NULL
, 1492, LOCATE_typing___ABraAssignExpr___raw_arguments
};
7581 struct WBT_
**closurevariable
= NULL
;
7582 trace
.prev
= tracehead
; tracehead
= &trace
;
7583 trace
.file
= LOCATE_typing
;
7584 /* Register variable[0]: Local variable */
7586 /* Register variable[1]: Method return value and escape marker */
7587 /* Register variable[2]: Local variable */
7588 /* Register variable[3]: Result */
7589 variable
[3] = CALL_parser_nodes___ABraFormExpr___n_args(variable
[0])(variable
[0]) /*ABraFormExpr::n_args*/;
7590 /* Register variable[3]: Result */
7591 variable
[3] = CALL_array___Collection___to_a(variable
[3])(variable
[3]) /*Collection::to_a*/;
7592 variable
[2] = variable
[3];
7593 /* Register variable[3]: Result */
7594 variable
[3] = CALL_parser_nodes___AAssignFormExpr___n_value(variable
[0])(variable
[0]) /*AAssignFormExpr::n_value*/;
7595 CALL_abstract_collection___SimpleCollection___add( variable
[2] /*res*/)( variable
[2] /*res*/, variable
[3]) /*AbstractArray::add*/;
7596 variable
[1] = variable
[2] /*res*/;
7597 goto return_label320
;
7598 return_label320
: while(false);
7599 tracehead
= trace
.prev
;
7602 val_t
typing___ABraReassignExpr___name(val_t self
) {
7603 struct trace_t trace
= {NULL
, NULL
, 1501, LOCATE_typing___ABraReassignExpr___name
};
7604 static val_t once_value_322
; static int once_bool_322
; /* Once value for variable[2]*/
7605 static val_t once_value_323
= NIT_NULL
; /* Once value for string variable[2]*/
7607 struct WBT_
**closurevariable
= NULL
;
7608 trace
.prev
= tracehead
; tracehead
= &trace
;
7609 trace
.file
= LOCATE_typing
;
7610 /* Register variable[0]: Local variable */
7612 /* Register variable[1]: Method return value and escape marker */
7613 /* Register variable[2]: Once expression result */
7614 if (once_bool_322
) variable
[2] = once_value_322
;
7616 /* Register variable[2]: Once String constant */
7617 if (once_value_323
!= NIT_NULL
) variable
[2] = once_value_323
;
7619 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)) /*new String*/;
7620 once_value_323
= variable
[2];
7622 /* Register variable[2]: Result */
7623 /* Register variable[2]: Result */
7624 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
7625 once_value_322
= variable
[2];
7626 once_bool_322
= true;
7628 /* Register variable[2]: Result */
7629 variable
[1] = variable
[2];
7630 goto return_label321
;
7631 return_label321
: while(false);
7632 tracehead
= trace
.prev
;
7635 val_t
typing___ABraReassignExpr___raw_arguments(val_t self
) {
7636 struct trace_t trace
= {NULL
, NULL
, 1502, LOCATE_typing___ABraReassignExpr___raw_arguments
};
7638 struct WBT_
**closurevariable
= NULL
;
7639 trace
.prev
= tracehead
; tracehead
= &trace
;
7640 trace
.file
= LOCATE_typing
;
7641 /* Register variable[0]: Local variable */
7643 /* Register variable[1]: Method return value and escape marker */
7644 /* Register variable[2]: Result */
7645 variable
[2] = CALL_parser_nodes___ABraFormExpr___n_args(variable
[0])(variable
[0]) /*ABraFormExpr::n_args*/;
7646 /* Register variable[2]: Result */
7647 variable
[2] = CALL_array___Collection___to_a(variable
[2])(variable
[2]) /*Collection::to_a*/;
7648 variable
[1] = variable
[2];
7649 goto return_label324
;
7650 return_label324
: while(false);
7651 tracehead
= trace
.prev
;
7654 val_t
typing___AInitExpr___name(val_t self
) {
7655 struct trace_t trace
= {NULL
, NULL
, 1506, LOCATE_typing___AInitExpr___name
};
7656 static val_t once_value_326
; static int once_bool_326
; /* Once value for variable[2]*/
7657 static val_t once_value_327
= NIT_NULL
; /* Once value for string variable[2]*/
7659 struct WBT_
**closurevariable
= NULL
;
7660 trace
.prev
= tracehead
; tracehead
= &trace
;
7661 trace
.file
= LOCATE_typing
;
7662 /* Register variable[0]: Local variable */
7664 /* Register variable[1]: Method return value and escape marker */
7665 /* Register variable[2]: Once expression result */
7666 if (once_bool_326
) variable
[2] = once_value_326
;
7668 /* Register variable[2]: Once String constant */
7669 if (once_value_327
!= NIT_NULL
) variable
[2] = once_value_327
;
7671 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)) /*new String*/;
7672 once_value_327
= variable
[2];
7674 /* Register variable[2]: Result */
7675 /* Register variable[2]: Result */
7676 variable
[2] = CALL_symbol___String___to_symbol(variable
[2])(variable
[2]) /*String::to_symbol*/;
7677 once_value_326
= variable
[2];
7678 once_bool_326
= true;
7680 /* Register variable[2]: Result */
7681 variable
[1] = variable
[2];
7682 goto return_label325
;
7683 return_label325
: while(false);
7684 tracehead
= trace
.prev
;
7687 val_t
typing___AInitExpr___raw_arguments(val_t self
) {
7688 struct trace_t trace
= {NULL
, NULL
, 1507, LOCATE_typing___AInitExpr___raw_arguments
};
7690 struct WBT_
**closurevariable
= NULL
;
7691 trace
.prev
= tracehead
; tracehead
= &trace
;
7692 trace
.file
= LOCATE_typing
;
7693 /* Register variable[0]: Local variable */
7695 /* Register variable[1]: Method return value and escape marker */
7696 /* Register variable[2]: Result */
7697 variable
[2] = CALL_parser_nodes___AInitExpr___n_args(variable
[0])(variable
[0]) /*AInitExpr::n_args*/;
7698 /* Register variable[2]: Result */
7699 variable
[2] = CALL_array___Collection___to_a(variable
[2])(variable
[2]) /*Collection::to_a*/;
7700 variable
[1] = variable
[2];
7701 goto return_label328
;
7702 return_label328
: while(false);
7703 tracehead
= trace
.prev
;
7706 void typing___AClosureCallExpr___after_typing(val_t self
, val_t param0
) {
7707 struct trace_t trace
= {NULL
, NULL
, 1512, LOCATE_typing___AClosureCallExpr___after_typing
};
7709 struct WBT_
**closurevariable
= NULL
;
7710 trace
.prev
= tracehead
; tracehead
= &trace
;
7711 trace
.file
= LOCATE_typing
;
7712 /* Register variable[0]: Local variable */
7714 /* Register variable[1]: Local variable */
7715 variable
[1] = param0
;
7716 /* Register variable[2]: Method return value and escape marker */
7717 /* Register variable[3]: Local variable */
7718 /* Register variable[4]: Result */
7719 variable
[4] = CALL_syntax_base___AClosureCallExpr___variable(variable
[0])(variable
[0]) /*AClosureCallExpr::variable*/;
7720 variable
[3] = variable
[4];
7721 /* Register variable[4]: Result */
7722 variable
[4] = CALL_syntax_base___ClosureVariable___closure( variable
[3] /*va*/)( variable
[3] /*va*/) /*ClosureVariable::closure*/;
7723 /* Register variable[4]: Result */
7724 variable
[4] = CALL_static_type___MMClosure___is_break(variable
[4])(variable
[4]) /*MMClosure::is_break*/;
7725 if (UNTAG_Bool(variable
[4])) { /*if*/
7726 /* Register variable[4]: Result */
7727 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
7728 CALL_control_flow___VariableContext___unreash__eq(variable
[4])(variable
[4], TAG_Bool(true)) /*VariableContext::unreash=*/;
7730 /* Register variable[4]: Local variable */
7731 /* Register variable[5]: Result */
7732 variable
[5] = CALL_syntax_base___ClosureVariable___closure( variable
[3] /*va*/)( variable
[3] /*va*/) /*ClosureVariable::closure*/;
7733 /* Register variable[5]: Result */
7734 variable
[5] = CALL_static_type___MMClosure___signature(variable
[5])(variable
[5]) /*MMClosure::signature*/;
7735 variable
[4] = variable
[5];
7736 /* Register variable[5]: Local variable */
7737 /* Register variable[6]: Result */
7738 variable
[6] = CALL_parser_nodes___AClosureCallExpr___n_id(variable
[0])(variable
[0]) /*AClosureCallExpr::n_id*/;
7739 /* Register variable[6]: Result */
7740 variable
[6] = CALL_syntax_base___Token___to_symbol(variable
[6])(variable
[6]) /*Token::to_symbol*/;
7741 /* Register variable[7]: Result */
7742 variable
[7] = CALL_parser_nodes___AClosureCallExpr___n_args(variable
[0])(variable
[0]) /*AClosureCallExpr::n_args*/;
7743 /* Register variable[7]: Result */
7744 variable
[7] = CALL_array___Collection___to_a(variable
[7])(variable
[7]) /*Collection::to_a*/;
7745 /* Register variable[6]: Result */
7746 variable
[6] = CALL_typing___AAbsAbsSendExpr___process_signature(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[4] /*sig*/, variable
[6], variable
[7]) /*AAbsAbsSendExpr::process_signature*/;
7747 variable
[5] = variable
[6];
7748 /* Register variable[6]: Result */
7749 variable
[6] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(variable
[0])(variable
[0]) /*AClosureCallExpr::n_closure_defs*/;
7750 /* Register variable[6]: Result */
7751 variable
[6] = CALL_abstract_collection___Collection___is_empty(variable
[6])(variable
[6]) /*List::is_empty*/;
7752 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[6])))) { /*if*/
7753 /* Register variable[6]: Result */
7754 variable
[6] = CALL_parser_nodes___AClosureCallExpr___n_id(variable
[0])(variable
[0]) /*AClosureCallExpr::n_id*/;
7755 /* Register variable[6]: Result */
7756 variable
[6] = CALL_syntax_base___Token___to_symbol(variable
[6])(variable
[6]) /*Token::to_symbol*/;
7757 /* Register variable[7]: Result */
7758 variable
[7] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(variable
[0])(variable
[0]) /*AClosureCallExpr::n_closure_defs*/;
7759 /* Register variable[7]: Result */
7760 variable
[7] = CALL_array___Collection___to_a(variable
[7])(variable
[7]) /*Collection::to_a*/;
7761 CALL_typing___AAbsAbsSendExpr___process_closures(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[4] /*sig*/, variable
[6], variable
[7]) /*AAbsAbsSendExpr::process_closures*/;
7763 /* Register variable[6]: Result */
7764 variable
[6] = TAG_Bool(( variable
[5] /*args*/ == NIT_NULL
/*null*/) || (( variable
[5] /*args*/ != NIT_NULL
) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*args*/)( variable
[5] /*args*/, NIT_NULL
/*null*/) /*AbstractArrayRead::==*/)));
7765 if (UNTAG_Bool(variable
[6])) { /*if*/
7766 goto return_label329
;
7768 ATTR_typing___AAbsAbsSendExpr____prop_signature(variable
[0]) /*AAbsAbsSendExpr::_prop_signature*/ = variable
[4] /*sig*/;
7769 ATTR_typing___AAbsAbsSendExpr____arguments(variable
[0]) /*AAbsAbsSendExpr::_arguments*/ = variable
[5] /*args*/;
7770 /* Register variable[6]: Result */
7771 variable
[6] = CALL_static_type___MMSignature___return_type( variable
[4] /*sig*/)( variable
[4] /*sig*/) /*MMSignature::return_type*/;
7772 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[6];
7773 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
7774 return_label329
: while(false);
7775 tracehead
= trace
.prev
;
7778 void typing___PClosureDef___accept_typing(val_t self
, val_t param0
) {
7779 struct trace_t trace
= {NULL
, NULL
, 1534, LOCATE_typing___PClosureDef___accept_typing
};
7781 struct WBT_
**closurevariable
= NULL
;
7782 trace
.prev
= tracehead
; tracehead
= &trace
;
7783 trace
.file
= LOCATE_typing
;
7784 /* Register variable[0]: Local variable */
7786 /* Register variable[1]: Local variable */
7787 variable
[1] = param0
;
7788 /* Register variable[2]: Method return value and escape marker */
7789 /* Register variable[3]: Result */
7790 variable
[3] = ATTR_typing___PClosureDef____accept_typing2(variable
[0]) /*PClosureDef::_accept_typing2*/;
7791 if (UNTAG_Bool(variable
[3])) { /*if*/
7792 CALL_SUPER_typing___PClosureDef___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super PClosureDef::accept_typing*/;
7794 return_label330
: while(false);
7795 tracehead
= trace
.prev
;
7798 val_t
typing___PClosureDef___escapable(val_t self
) {
7799 struct trace_t trace
= {NULL
, NULL
, 1530, LOCATE_typing___PClosureDef___escapable
};
7800 val_t
*variable
= NULL
;
7801 struct WBT_
**closurevariable
= NULL
;
7802 trace
.prev
= tracehead
; tracehead
= &trace
;
7803 trace
.file
= LOCATE_typing
;
7804 tracehead
= trace
.prev
;
7805 return ATTR_typing___PClosureDef____escapable( self
) /*PClosureDef::_escapable*/;
7807 void typing___PClosureDef___accept_typing2(val_t self
, val_t param0
, val_t param1
) {
7808 struct trace_t trace
= {NULL
, NULL
, 1540, LOCATE_typing___PClosureDef___accept_typing2
};
7809 val_t
*variable
= NULL
;
7810 struct WBT_
**closurevariable
= NULL
;
7811 trace
.prev
= tracehead
; tracehead
= &trace
;
7812 trace
.file
= LOCATE_typing
;
7813 fprintf(stderr
, "Deferred method called");
7814 fprintf(stderr
, " (%s:%d)\n", LOCATE_typing
, 1540);
7816 tracehead
= trace
.prev
;
7819 void typing___AClosureDef___accept_typing2(val_t self
, val_t param0
, val_t param1
) {
7820 struct trace_t trace
= {NULL
, NULL
, 1544, LOCATE_typing___AClosureDef___accept_typing2
};
7821 static val_t once_value_332
= NIT_NULL
; /* Once value for string variable[6]*/
7822 static val_t once_value_333
= NIT_NULL
; /* Once value for string variable[6]*/
7823 static val_t once_value_334
= NIT_NULL
; /* Once value for string variable[6]*/
7824 static val_t once_value_336
= NIT_NULL
; /* Once value for string variable[7]*/
7825 static val_t once_value_337
= NIT_NULL
; /* Once value for string variable[7]*/
7827 struct WBT_
**closurevariable
= NULL
;
7828 trace
.prev
= tracehead
; tracehead
= &trace
;
7829 trace
.file
= LOCATE_typing
;
7830 /* Register variable[0]: Local variable */
7832 /* Register variable[1]: Local variable */
7833 variable
[1] = param0
;
7834 /* Register variable[2]: Local variable */
7835 variable
[2] = param1
;
7836 /* Register variable[3]: Method return value and escape marker */
7837 ATTR_typing___PClosureDef____escapable(variable
[0]) /*PClosureDef::_escapable*/ = variable
[2] /*esc*/;
7838 /* Register variable[4]: Local variable */
7839 /* Register variable[5]: Result */
7840 variable
[5] = CALL_escape___EscapableClosure___closure( variable
[2] /*esc*/)( variable
[2] /*esc*/) /*EscapableClosure::closure*/;
7841 /* Register variable[5]: Result */
7842 variable
[5] = CALL_static_type___MMClosure___signature(variable
[5])(variable
[5]) /*MMClosure::signature*/;
7843 variable
[4] = variable
[5];
7844 /* Register variable[5]: Result */
7845 variable
[5] = CALL_static_type___MMSignature___arity( variable
[4] /*sig*/)( variable
[4] /*sig*/) /*MMSignature::arity*/;
7846 /* Register variable[6]: Result */
7847 variable
[6] = CALL_parser_nodes___AClosureDef___n_id(variable
[0])(variable
[0]) /*AClosureDef::n_id*/;
7848 /* Register variable[6]: Result */
7849 variable
[6] = CALL_abstract_collection___Collection___length(variable
[6])(variable
[6]) /*List::length*/;
7850 /* Register variable[5]: Result */
7851 variable
[5] = TAG_Bool((variable
[5])!=(variable
[6]));
7852 if (UNTAG_Bool(variable
[5])) { /*if*/
7853 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
7854 /* Register variable[6]: Once String constant */
7855 if (once_value_332
!= NIT_NULL
) variable
[6] = once_value_332
;
7857 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)) /*new String*/;
7858 once_value_332
= variable
[6];
7860 /* Register variable[6]: Result */
7861 /* Ensure var variable[6]: super-string element*/
7862 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
7863 /* Register variable[6]: Result */
7864 variable
[6] = CALL_static_type___MMSignature___arity( variable
[4] /*sig*/)( variable
[4] /*sig*/) /*MMSignature::arity*/;
7865 /* Ensure var variable[6]: super-string element*/
7866 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/) /*AbstractArray::add*/;
7867 /* Register variable[6]: Once String constant */
7868 if (once_value_333
!= NIT_NULL
) variable
[6] = once_value_333
;
7870 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(" automatic variable names expected, "), TAG_Int(36)) /*new String*/;
7871 once_value_333
= variable
[6];
7873 /* Register variable[6]: Result */
7874 /* Ensure var variable[6]: super-string element*/
7875 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
7876 /* Register variable[6]: Result */
7877 variable
[6] = CALL_parser_nodes___AClosureDef___n_id(variable
[0])(variable
[0]) /*AClosureDef::n_id*/;
7878 /* Register variable[6]: Result */
7879 variable
[6] = CALL_abstract_collection___Collection___length(variable
[6])(variable
[6]) /*List::length*/;
7880 /* Ensure var variable[6]: super-string element*/
7881 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], CALL_string___Object___to_s(variable
[6])(variable
[6]) /*Object::to_s*/) /*AbstractArray::add*/;
7882 /* Register variable[6]: Once String constant */
7883 if (once_value_334
!= NIT_NULL
) variable
[6] = once_value_334
;
7885 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(" found."), TAG_Int(7)) /*new String*/;
7886 once_value_334
= variable
[6];
7888 /* Register variable[6]: Result */
7889 /* Ensure var variable[6]: super-string element*/
7890 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
7891 /* Register variable[5]: Result */
7892 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
7893 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[5]) /*AbsSyntaxVisitor::error*/;
7894 goto return_label331
;
7896 /* Register variable[5]: Result */
7897 variable
[5] = CALL_escape___EscapableClosure___closure( variable
[2] /*esc*/)( variable
[2] /*esc*/) /*EscapableClosure::closure*/;
7898 CALL_syntax_base___PClosureDef___closure__eq(variable
[0])(variable
[0], variable
[5]) /*PClosureDef::closure=*/;
7899 /* Register variable[5]: Local variable */
7900 /* Register variable[6]: Result */
7901 variable
[6] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
7902 variable
[5] = variable
[6];
7903 /* Register variable[6]: Local variable */
7904 /* Register variable[7]: Result */
7905 variable
[7] = CALL_typing___TypingVisitor___base_variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::base_variable_ctx*/;
7906 variable
[6] = variable
[7];
7907 /* Register variable[7]: Result */
7908 variable
[7] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
7909 CALL_typing___TypingVisitor___base_variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[7]) /*TypingVisitor::base_variable_ctx=*/;
7910 /* Register variable[7]: Result */
7911 variable
[7] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
7912 /* Register variable[7]: Result */
7913 variable
[7] = CALL_control_flow___VariableContext___sub(variable
[7])(variable
[7], variable
[0]) /*VariableContext::sub*/;
7914 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[7]) /*TypingVisitor::variable_ctx=*/;
7915 /* Register variable[7]: Result */
7916 variable
[7] = NEW_Array_array___Array___init() /*new Array[AutoVariable]*/;
7917 CALL_syntax_base___PClosureDef___variables__eq(variable
[0])(variable
[0], variable
[7]) /*PClosureDef::variables=*/;
7918 /* Register variable[7]: Result */
7919 variable
[7] = CALL_parser_nodes___AClosureDef___n_id(variable
[0])(variable
[0]) /*AClosureDef::n_id*/;
7920 /* Register variable[7]: Result */
7921 variable
[7] = CALL_abstract_collection___Collection___length(variable
[7])(variable
[7]) /*List::length*/;
7922 /* Register variable[7]: Result */
7923 variable
[7] = NEW_Range_range___Range___without_last( TAG_Int(0), variable
[7]) /*new Range[Int]*/;
7924 /* Register variable[7]: For iterator */
7925 variable
[7] = CALL_abstract_collection___Collection___iterator(variable
[7])(variable
[7]) /*Range::iterator*/;
7926 while (true) { /*for*/
7927 /* Register variable[8]: For 'is_ok' result */
7928 variable
[8] = CALL_abstract_collection___Iterator___is_ok(variable
[7])(variable
[7]) /*Iterator::is_ok*/;
7929 if (!UNTAG_Bool(variable
[8])) break; /*for*/
7930 variable
[8] = CALL_abstract_collection___Iterator___item(variable
[7])(variable
[7]) /*Iterator::item*/ /* Ensure var: For item*/;
7931 /* Register variable[9]: Local variable */
7932 variable
[9] = variable
[8];
7933 /* Register variable[10]: Local variable */
7934 /* Register variable[11]: Result */
7935 variable
[11] = CALL_parser_nodes___AClosureDef___n_id(variable
[0])(variable
[0]) /*AClosureDef::n_id*/;
7936 /* Register variable[11]: Result */
7937 variable
[11] = CALL_abstract_collection___MapRead_____bra(variable
[11])(variable
[11], variable
[9] /*i*/) /*List::[]*/;
7938 /* Register variable[11]: Result */
7939 variable
[11] = CALL_syntax_base___Token___to_symbol(variable
[11])(variable
[11]) /*Token::to_symbol*/;
7940 /* Register variable[11]: Result */
7941 variable
[11] = NEW_AutoVariable_syntax_base___AutoVariable___init(variable
[11], variable
[0]) /*new AutoVariable*/;
7942 variable
[10] = variable
[11];
7943 /* Register variable[11]: Result */
7944 variable
[11] = CALL_syntax_base___PClosureDef___variables(variable
[0])(variable
[0]) /*PClosureDef::variables*/;
7945 CALL_abstract_collection___SimpleCollection___add(variable
[11])(variable
[11], variable
[10] /*va*/) /*AbstractArray::add*/;
7946 /* Register variable[11]: Result */
7947 variable
[11] = CALL_static_type___MMSignature_____bra( variable
[4] /*sig*/)( variable
[4] /*sig*/, variable
[9] /*i*/) /*MMSignature::[]*/;
7948 CALL_syntax_base___Variable___stype__eq( variable
[10] /*va*/)( variable
[10] /*va*/, variable
[11]) /*Variable::stype=*/;
7949 /* Register variable[11]: Result */
7950 variable
[11] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
7951 CALL_control_flow___VariableContext___add(variable
[11])(variable
[11], variable
[10] /*va*/) /*VariableContext::add*/;
7952 continue_335
: while(0);
7953 CALL_abstract_collection___Iterator___next(variable
[7])(variable
[7]) /*Iterator::next*/;
7955 break_335
: while(0);
7956 ATTR_typing___PClosureDef____accept_typing2(variable
[0]) /*PClosureDef::_accept_typing2*/ = TAG_Bool(true);
7957 CALL_typing___PNode___accept_typing(variable
[0])(variable
[0], variable
[1] /*v*/) /*PClosureDef::accept_typing*/;
7958 /* Register variable[7]: Result */
7959 variable
[7] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
7960 /* Register variable[7]: Result */
7961 variable
[7] = CALL_control_flow___VariableContext___unreash(variable
[7])(variable
[7]) /*VariableContext::unreash*/;
7962 /* Register variable[7]: Result */
7963 variable
[7] = TAG_Bool((variable
[7])==( TAG_Bool(false)));
7964 if (UNTAG_Bool(variable
[7])) { /*if*/
7965 /* Register variable[7]: Result */
7966 variable
[7] = CALL_syntax_base___PClosureDef___closure(variable
[0])(variable
[0]) /*PClosureDef::closure*/;
7967 /* Register variable[7]: Result */
7968 variable
[7] = CALL_static_type___MMClosure___signature(variable
[7])(variable
[7]) /*MMClosure::signature*/;
7969 /* Register variable[7]: Result */
7970 variable
[7] = CALL_static_type___MMSignature___return_type(variable
[7])(variable
[7]) /*MMSignature::return_type*/;
7971 /* Register variable[7]: Result */
7972 variable
[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[7] == NIT_NULL
/*null*/) || ((variable
[7] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[7])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[7], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[7])(variable
[7], NIT_NULL
/*null*/) /*Object::==*/)))))));
7973 if (UNTAG_Bool(variable
[7])) { /*if*/
7974 /* Register variable[7]: Once String constant */
7975 if (once_value_336
!= NIT_NULL
) variable
[7] = once_value_336
;
7977 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of block (a 'continue' with a value was expected)."), TAG_Int(77)) /*new String*/;
7978 once_value_336
= variable
[7];
7980 /* Register variable[7]: Result */
7981 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[7]) /*AbsSyntaxVisitor::error*/;
7983 /* Register variable[7]: Result */
7984 variable
[7] = CALL_syntax_base___PClosureDef___closure(variable
[0])(variable
[0]) /*PClosureDef::closure*/;
7985 /* Register variable[7]: Result */
7986 variable
[7] = CALL_static_type___MMClosure___is_break(variable
[7])(variable
[7]) /*MMClosure::is_break*/;
7987 if (UNTAG_Bool(variable
[7])) { /*if*/
7988 /* Register variable[7]: Once String constant */
7989 if (once_value_337
!= NIT_NULL
) variable
[7] = once_value_337
;
7991 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of break block (a 'break' was expected)."), TAG_Int(67)) /*new String*/;
7992 once_value_337
= variable
[7];
7994 /* Register variable[7]: Result */
7995 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[7]) /*AbsSyntaxVisitor::error*/;
7999 CALL_typing___TypingVisitor___variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[5] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
8000 CALL_typing___TypingVisitor___base_variable_ctx__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[6] /*old_base_var_ctx*/) /*TypingVisitor::base_variable_ctx=*/;
8001 return_label331
: while(false);
8002 tracehead
= trace
.prev
;
8005 void typing___ATypeCheckExpr___check_expr_cast(val_t self
, val_t param0
, val_t param1
, val_t param2
) {
8006 struct trace_t trace
= {NULL
, NULL
, 1585, LOCATE_typing___ATypeCheckExpr___check_expr_cast
};
8007 static val_t once_value_339
= NIT_NULL
; /* Once value for string variable[8]*/
8008 static val_t once_value_340
= NIT_NULL
; /* Once value for string variable[8]*/
8009 static val_t once_value_341
= NIT_NULL
; /* Once value for string variable[8]*/
8010 static val_t once_value_342
= NIT_NULL
; /* Once value for string variable[8]*/
8011 static val_t once_value_343
= NIT_NULL
; /* Once value for string variable[8]*/
8012 static val_t once_value_344
= NIT_NULL
; /* Once value for string variable[7]*/
8013 static val_t once_value_345
= NIT_NULL
; /* Once value for string variable[7]*/
8015 struct WBT_
**closurevariable
= NULL
;
8016 trace
.prev
= tracehead
; tracehead
= &trace
;
8017 trace
.file
= LOCATE_typing
;
8018 /* Register variable[0]: Local variable */
8020 /* Register variable[1]: Local variable */
8021 variable
[1] = param0
;
8022 /* Register variable[2]: Local variable */
8023 variable
[2] = param1
;
8024 /* Register variable[3]: Local variable */
8025 variable
[3] = param2
;
8026 /* Register variable[4]: Method return value and escape marker */
8027 /* Register variable[5]: Result */
8028 variable
[5] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[2] /*n_expr*/) /*AbsSyntaxVisitor::check_expr*/;
8029 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[5])))) { /*if*/
8030 goto return_label338
;
8032 /* Register variable[5]: Local variable */
8033 /* Register variable[6]: Result */
8034 variable
[6] = CALL_syntax_base___PExpr___stype( variable
[2] /*n_expr*/)( variable
[2] /*n_expr*/) /*PExpr::stype*/;
8035 variable
[5] = variable
[6];
8036 /* Register variable[6]: Local variable */
8037 /* Register variable[7]: Result */
8038 variable
[7] = CALL_typing___PType___stype( variable
[3] /*n_type*/)( variable
[3] /*n_type*/) /*PType::stype*/;
8039 variable
[6] = variable
[7];
8040 /* Register variable[7]: Result */
8041 variable
[7] = TAG_Bool(( variable
[5] /*etype*/ == variable
[6] /*ttype*/) || (( variable
[5] /*etype*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[5] /*etype*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[5] /*etype*/, variable
[6] /*ttype*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*etype*/)( variable
[5] /*etype*/, variable
[6] /*ttype*/) /*Object::==*/)))));
8042 if (UNTAG_Bool(variable
[7])) { /*if*/
8043 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
8044 /* Register variable[8]: Once String constant */
8045 if (once_value_339
!= NIT_NULL
) variable
[8] = once_value_339
;
8047 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Warning: Expression is already a "), TAG_Int(33)) /*new String*/;
8048 once_value_339
= variable
[8];
8050 /* Register variable[8]: Result */
8051 /* Ensure var variable[8]: super-string element*/
8052 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
8053 variable
[8] = variable
[6] /*ttype*/ /* Ensure var: super-string element*/;
8054 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/) /*AbstractArray::add*/;
8055 /* Register variable[8]: Once String constant */
8056 if (once_value_340
!= NIT_NULL
) variable
[8] = once_value_340
;
8058 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
8059 once_value_340
= variable
[8];
8061 /* Register variable[8]: Result */
8062 /* Ensure var variable[8]: super-string element*/
8063 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
8064 /* Register variable[7]: Result */
8065 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
8066 CALL_syntax_base___AbsSyntaxVisitor___warning( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[7]) /*AbsSyntaxVisitor::warning*/;
8068 /* Register variable[7]: Result */
8069 variable
[7] = CALL_static_type___MMType_____l( variable
[5] /*etype*/)( variable
[5] /*etype*/, variable
[6] /*ttype*/) /*MMType::<*/;
8070 if (UNTAG_Bool(variable
[7])) { /*if*/
8071 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
8072 /* Register variable[8]: Once String constant */
8073 if (once_value_341
!= NIT_NULL
) variable
[8] = once_value_341
;
8075 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("Warning: Expression is already a "), TAG_Int(33)) /*new String*/;
8076 once_value_341
= variable
[8];
8078 /* Register variable[8]: Result */
8079 /* Ensure var variable[8]: super-string element*/
8080 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
8081 variable
[8] = variable
[6] /*ttype*/ /* Ensure var: super-string element*/;
8082 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/) /*AbstractArray::add*/;
8083 /* Register variable[8]: Once String constant */
8084 if (once_value_342
!= NIT_NULL
) variable
[8] = once_value_342
;
8086 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(" since it is a "), TAG_Int(15)) /*new String*/;
8087 once_value_342
= variable
[8];
8089 /* Register variable[8]: Result */
8090 /* Ensure var variable[8]: super-string element*/
8091 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
8092 variable
[8] = variable
[5] /*etype*/ /* Ensure var: super-string element*/;
8093 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], CALL_string___Object___to_s(variable
[8])(variable
[8]) /*Object::to_s*/) /*AbstractArray::add*/;
8094 /* Register variable[8]: Once String constant */
8095 if (once_value_343
!= NIT_NULL
) variable
[8] = once_value_343
;
8097 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
8098 once_value_343
= variable
[8];
8100 /* Register variable[8]: Result */
8101 /* Ensure var variable[8]: super-string element*/
8102 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[8]) /*AbstractArray::add*/;
8103 /* Register variable[7]: Result */
8104 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
8105 CALL_syntax_base___AbsSyntaxVisitor___warning( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[7]) /*AbsSyntaxVisitor::warning*/;
8107 /* Register variable[7]: Result */
8108 variable
[7] = CALL_static_type___MMType___is_nullable( variable
[5] /*etype*/)( variable
[5] /*etype*/) /*MMType::is_nullable*/;
8109 /* Ensure var variable[7]: Left 'and' operand*/
8110 if (UNTAG_Bool(variable
[7])) { /* and */
8111 /* Register variable[7]: Result */
8112 variable
[7] = CALL_static_type___MMType___as_notnull( variable
[5] /*etype*/)( variable
[5] /*etype*/) /*MMType::as_notnull*/;
8113 /* Register variable[7]: Result */
8114 variable
[7] = TAG_Bool((variable
[7] == variable
[6] /*ttype*/) || ((variable
[7] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[7])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[7], variable
[6] /*ttype*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[7])(variable
[7], variable
[6] /*ttype*/) /*Object::==*/)))));
8116 /* Register variable[7]: Result */
8117 if (UNTAG_Bool(variable
[7])) { /*if*/
8118 /* Register variable[7]: Result */
8119 variable
[7] = TAG_Bool(( variable
[6] /*ttype*/==NIT_NULL
) || VAL_ISA( variable
[6] /*ttype*/, COLOR_MMTypeFormal
, ID_MMTypeFormal
)) /*cast MMTypeFormal*/;
8120 /* Ensure var variable[7]: Left 'and' operand*/
8121 if (UNTAG_Bool(variable
[7])) { /* and */
8122 /* Register variable[7]: Result */
8123 variable
[7] = CALL_type_formal___MMTypeFormal___bound( variable
[6] /*ttype*/)( variable
[6] /*ttype*/) /*MMTypeFormal::bound*/;
8124 /* Register variable[7]: Result */
8125 variable
[7] = CALL_static_type___MMType___is_nullable(variable
[7])(variable
[7]) /*MMType::is_nullable*/;
8127 /* Register variable[7]: Result */
8128 if (UNTAG_Bool(variable
[7])) { /*if*/
8130 /* Register variable[7]: Result */
8131 variable
[7] = TAG_Bool((variable
[0]==NIT_NULL
) || VAL_ISA(variable
[0], COLOR_AIsaExpr
, ID_AIsaExpr
)) /*cast AIsaExpr*/;
8132 if (UNTAG_Bool(variable
[7])) { /*if*/
8133 /* Register variable[7]: Once String constant */
8134 if (once_value_344
!= NIT_NULL
) variable
[7] = once_value_344
;
8136 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("Warning: Prefer '!= null'."), TAG_Int(26)) /*new String*/;
8137 once_value_344
= variable
[7];
8139 /* Register variable[7]: Result */
8140 CALL_syntax_base___AbsSyntaxVisitor___warning( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[7]) /*AbsSyntaxVisitor::warning*/;
8142 /* Register variable[7]: Once String constant */
8143 if (once_value_345
!= NIT_NULL
) variable
[7] = once_value_345
;
8145 variable
[7] = NEW_String_string___String___with_native(BOX_NativeString("Warning: Prefer '.as(not null)'."), TAG_Int(32)) /*new String*/;
8146 once_value_345
= variable
[7];
8148 /* Register variable[7]: Result */
8149 CALL_syntax_base___AbsSyntaxVisitor___warning( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[7]) /*AbsSyntaxVisitor::warning*/;
8155 return_label338
: while(false);
8156 tracehead
= trace
.prev
;
8159 void typing___AIsaExpr___after_typing(val_t self
, val_t param0
) {
8160 struct trace_t trace
= {NULL
, NULL
, 1612, LOCATE_typing___AIsaExpr___after_typing
};
8162 struct WBT_
**closurevariable
= NULL
;
8163 trace
.prev
= tracehead
; tracehead
= &trace
;
8164 trace
.file
= LOCATE_typing
;
8165 /* Register variable[0]: Local variable */
8167 /* Register variable[1]: Local variable */
8168 variable
[1] = param0
;
8169 /* Register variable[2]: Method return value and escape marker */
8170 /* Register variable[3]: Result */
8171 variable
[3] = CALL_parser_nodes___AIsaExpr___n_expr(variable
[0])(variable
[0]) /*AIsaExpr::n_expr*/;
8172 /* Register variable[4]: Result */
8173 variable
[4] = CALL_parser_nodes___AIsaExpr___n_type(variable
[0])(variable
[0]) /*AIsaExpr::n_type*/;
8174 CALL_typing___ATypeCheckExpr___check_expr_cast(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[3], variable
[4]) /*ATypeCheckExpr::check_expr_cast*/;
8175 /* Register variable[3]: Local variable */
8176 /* Register variable[4]: Result */
8177 variable
[4] = CALL_parser_nodes___AIsaExpr___n_expr(variable
[0])(variable
[0]) /*AIsaExpr::n_expr*/;
8178 /* Register variable[4]: Result */
8179 variable
[4] = CALL_typing___PExpr___its_variable(variable
[4])(variable
[4]) /*PExpr::its_variable*/;
8180 variable
[3] = variable
[4];
8181 /* Register variable[4]: Result */
8182 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[3] /*variable*/ == NIT_NULL
/*null*/) || (( variable
[3] /*variable*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*variable*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*variable*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*variable*/)( variable
[3] /*variable*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
8183 if (UNTAG_Bool(variable
[4])) { /*if*/
8184 /* Register variable[4]: Result */
8185 variable
[4] = CALL_typing___TypingVisitor___variable_ctx( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::variable_ctx*/;
8186 /* Register variable[5]: Result */
8187 variable
[5] = CALL_parser_nodes___AIsaExpr___n_type(variable
[0])(variable
[0]) /*AIsaExpr::n_type*/;
8188 /* Register variable[5]: Result */
8189 variable
[5] = CALL_typing___PType___stype(variable
[5])(variable
[5]) /*PType::stype*/;
8190 /* Register variable[4]: Result */
8191 variable
[4] = CALL_control_flow___VariableContext___sub_with(variable
[4])(variable
[4], variable
[0], variable
[3] /*variable*/, variable
[5]) /*VariableContext::sub_with*/;
8192 ATTR_typing___PExpr____if_true_variable_ctx(variable
[0]) /*PExpr::_if_true_variable_ctx*/ = variable
[4];
8194 /* Register variable[4]: Result */
8195 variable
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable
[1] /*v*/)( variable
[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
8196 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[4];
8197 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
8198 return_label346
: while(false);
8199 tracehead
= trace
.prev
;
8202 void typing___AAsCastExpr___after_typing(val_t self
, val_t param0
) {
8203 struct trace_t trace
= {NULL
, NULL
, 1626, LOCATE_typing___AAsCastExpr___after_typing
};
8205 struct WBT_
**closurevariable
= NULL
;
8206 trace
.prev
= tracehead
; tracehead
= &trace
;
8207 trace
.file
= LOCATE_typing
;
8208 /* Register variable[0]: Local variable */
8210 /* Register variable[1]: Local variable */
8211 variable
[1] = param0
;
8212 /* Register variable[2]: Method return value and escape marker */
8213 /* Register variable[3]: Result */
8214 variable
[3] = CALL_parser_nodes___AAsCastExpr___n_expr(variable
[0])(variable
[0]) /*AAsCastExpr::n_expr*/;
8215 /* Register variable[4]: Result */
8216 variable
[4] = CALL_parser_nodes___AAsCastExpr___n_type(variable
[0])(variable
[0]) /*AAsCastExpr::n_type*/;
8217 CALL_typing___ATypeCheckExpr___check_expr_cast(variable
[0])(variable
[0], variable
[1] /*v*/, variable
[3], variable
[4]) /*ATypeCheckExpr::check_expr_cast*/;
8218 /* Register variable[3]: Result */
8219 variable
[3] = CALL_parser_nodes___AAsCastExpr___n_type(variable
[0])(variable
[0]) /*AAsCastExpr::n_type*/;
8220 /* Register variable[3]: Result */
8221 variable
[3] = CALL_typing___PType___stype(variable
[3])(variable
[3]) /*PType::stype*/;
8222 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
8223 /* Register variable[3]: Result */
8224 variable
[3] = ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/;
8225 /* Register variable[3]: Result */
8226 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
8227 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = variable
[3];
8228 return_label347
: while(false);
8229 tracehead
= trace
.prev
;
8232 void typing___AAsNotnullExpr___after_typing(val_t self
, val_t param0
) {
8233 struct trace_t trace
= {NULL
, NULL
, 1635, LOCATE_typing___AAsNotnullExpr___after_typing
};
8234 static val_t once_value_349
= NIT_NULL
; /* Once value for string variable[5]*/
8235 static val_t once_value_350
= NIT_NULL
; /* Once value for string variable[5]*/
8237 struct WBT_
**closurevariable
= NULL
;
8238 trace
.prev
= tracehead
; tracehead
= &trace
;
8239 trace
.file
= LOCATE_typing
;
8240 /* Register variable[0]: Local variable */
8242 /* Register variable[1]: Local variable */
8243 variable
[1] = param0
;
8244 /* Register variable[2]: Method return value and escape marker */
8245 /* Register variable[3]: Result */
8246 variable
[3] = CALL_parser_nodes___AAsNotnullExpr___n_expr(variable
[0])(variable
[0]) /*AAsNotnullExpr::n_expr*/;
8247 /* Register variable[3]: Result */
8248 variable
[3] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*AbsSyntaxVisitor::check_expr*/;
8249 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
8250 goto return_label348
;
8252 /* Register variable[3]: Local variable */
8253 /* Register variable[4]: Result */
8254 variable
[4] = CALL_parser_nodes___AAsNotnullExpr___n_expr(variable
[0])(variable
[0]) /*AAsNotnullExpr::n_expr*/;
8255 /* Register variable[4]: Result */
8256 variable
[4] = CALL_syntax_base___PExpr___stype(variable
[4])(variable
[4]) /*PExpr::stype*/;
8257 variable
[3] = variable
[4];
8258 /* Register variable[4]: Result */
8259 variable
[4] = TAG_Bool(( variable
[3] /*t*/==NIT_NULL
) || VAL_ISA( variable
[3] /*t*/, COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
8260 if (UNTAG_Bool(variable
[4])) { /*if*/
8261 /* Register variable[4]: Result */
8262 variable
[4] = CALL_parser_nodes___AAsNotnullExpr___n_expr(variable
[0])(variable
[0]) /*AAsNotnullExpr::n_expr*/;
8263 /* Register variable[5]: Once String constant */
8264 if (once_value_349
!= NIT_NULL
) variable
[5] = once_value_349
;
8266 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Type error: 'as(not null)' on 'null' value."), TAG_Int(43)) /*new String*/;
8267 once_value_349
= variable
[5];
8269 /* Register variable[5]: Result */
8270 CALL_syntax_base___AbsSyntaxVisitor___error( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::error*/;
8271 goto return_label348
;
8273 /* Register variable[4]: Result */
8274 variable
[4] = CALL_static_type___MMType___is_nullable( variable
[3] /*t*/)( variable
[3] /*t*/) /*MMType::is_nullable*/;
8275 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[4])))) { /*if*/
8276 /* Register variable[4]: Result */
8277 variable
[4] = CALL_parser_nodes___AAsNotnullExpr___n_expr(variable
[0])(variable
[0]) /*AAsNotnullExpr::n_expr*/;
8278 /* Register variable[5]: Once String constant */
8279 if (once_value_350
!= NIT_NULL
) variable
[5] = once_value_350
;
8281 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("Warning: 'as(not null)' on non nullable type."), TAG_Int(45)) /*new String*/;
8282 once_value_350
= variable
[5];
8284 /* Register variable[5]: Result */
8285 CALL_syntax_base___AbsSyntaxVisitor___warning( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[4], variable
[5]) /*AbsSyntaxVisitor::warning*/;
8288 /* Register variable[4]: Result */
8289 variable
[4] = CALL_parser_nodes___AAsNotnullExpr___n_expr(variable
[0])(variable
[0]) /*AAsNotnullExpr::n_expr*/;
8290 /* Register variable[4]: Result */
8291 variable
[4] = CALL_syntax_base___PExpr___stype(variable
[4])(variable
[4]) /*PExpr::stype*/;
8292 /* Register variable[4]: Result */
8293 variable
[4] = CALL_static_type___MMType___as_notnull(variable
[4])(variable
[4]) /*MMType::as_notnull*/;
8294 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[4];
8295 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
8296 return_label348
: while(false);
8297 tracehead
= trace
.prev
;
8300 void typing___AProxyExpr___after_typing(val_t self
, val_t param0
) {
8301 struct trace_t trace
= {NULL
, NULL
, 1651, LOCATE_typing___AProxyExpr___after_typing
};
8303 struct WBT_
**closurevariable
= NULL
;
8304 trace
.prev
= tracehead
; tracehead
= &trace
;
8305 trace
.file
= LOCATE_typing
;
8306 /* Register variable[0]: Local variable */
8308 /* Register variable[1]: Local variable */
8309 variable
[1] = param0
;
8310 /* Register variable[2]: Method return value and escape marker */
8311 /* Register variable[3]: Result */
8312 variable
[3] = CALL_parser_nodes___AProxyExpr___n_expr(variable
[0])(variable
[0]) /*AProxyExpr::n_expr*/;
8313 /* Register variable[3]: Result */
8314 variable
[3] = CALL_syntax_base___PExpr___is_typed(variable
[3])(variable
[3]) /*PExpr::is_typed*/;
8315 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
8316 goto return_label351
;
8318 ATTR_typing___PExpr____is_typed(variable
[0]) /*PExpr::_is_typed*/ = TAG_Bool(true);
8319 /* Register variable[3]: Result */
8320 variable
[3] = CALL_parser_nodes___AProxyExpr___n_expr(variable
[0])(variable
[0]) /*AProxyExpr::n_expr*/;
8321 /* Register variable[3]: Result */
8322 variable
[3] = CALL_syntax_base___PExpr___is_statement(variable
[3])(variable
[3]) /*PExpr::is_statement*/;
8323 if (UNTAG_Bool(variable
[3])) { /*if*/
8324 goto return_label351
;
8326 /* Register variable[3]: Result */
8327 variable
[3] = CALL_parser_nodes___AProxyExpr___n_expr(variable
[0])(variable
[0]) /*AProxyExpr::n_expr*/;
8328 /* Register variable[3]: Result */
8329 variable
[3] = CALL_syntax_base___PExpr___stype(variable
[3])(variable
[3]) /*PExpr::stype*/;
8330 ATTR_typing___PExpr____stype(variable
[0]) /*PExpr::_stype*/ = variable
[3];
8331 return_label351
: while(false);
8332 tracehead
= trace
.prev
;
8335 void typing___AOnceExpr___accept_typing(val_t self
, val_t param0
) {
8336 struct trace_t trace
= {NULL
, NULL
, 1661, LOCATE_typing___AOnceExpr___accept_typing
};
8337 static val_t once_value_353
= NIT_NULL
; /* Once value for string variable[3]*/
8339 struct WBT_
**closurevariable
= NULL
;
8340 trace
.prev
= tracehead
; tracehead
= &trace
;
8341 trace
.file
= LOCATE_typing
;
8342 /* Register variable[0]: Local variable */
8344 /* Register variable[1]: Local variable */
8345 variable
[1] = param0
;
8346 /* Register variable[2]: Method return value and escape marker */
8347 /* Register variable[3]: Result */
8348 variable
[3] = CALL_typing___TypingVisitor___once_count( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::once_count*/;
8349 /* Register variable[3]: Result */
8350 variable
[3] = TAG_Bool(UNTAG_Int(variable
[3])>UNTAG_Int( TAG_Int(0)));
8351 if (UNTAG_Bool(variable
[3])) { /*if*/
8352 /* Register variable[3]: Once String constant */
8353 if (once_value_353
!= NIT_NULL
) variable
[3] = once_value_353
;
8355 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("Useless once in a once expression."), TAG_Int(34)) /*new String*/;
8356 once_value_353
= variable
[3];
8358 /* Register variable[3]: Result */
8359 CALL_syntax_base___AbsSyntaxVisitor___warning( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[0], variable
[3]) /*AbsSyntaxVisitor::warning*/;
8361 /* Register variable[3]: Result */
8362 variable
[3] = CALL_typing___TypingVisitor___once_count( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::once_count*/;
8363 /* Register variable[3]: Result */
8364 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])+UNTAG_Int( TAG_Int(1)));
8365 CALL_typing___TypingVisitor___once_count__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*TypingVisitor::once_count=*/;
8366 CALL_SUPER_typing___AOnceExpr___accept_typing(variable
[0])(variable
[0], variable
[1]) /*super AOnceExpr::accept_typing*/;
8367 /* Register variable[3]: Result */
8368 variable
[3] = CALL_typing___TypingVisitor___once_count( variable
[1] /*v*/)( variable
[1] /*v*/) /*TypingVisitor::once_count*/;
8369 /* Register variable[3]: Result */
8370 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])-UNTAG_Int( TAG_Int(1)));
8371 CALL_typing___TypingVisitor___once_count__eq( variable
[1] /*v*/)( variable
[1] /*v*/, variable
[3]) /*TypingVisitor::once_count=*/;
8372 return_label352
: while(false);
8373 tracehead
= trace
.prev
;