1 /* This C file is generated by NIT to compile module static_type. */
2 #include "static_type._sep.h"
3 val_t
static_type___MMLocalClass___get_type(val_t self
) {
4 struct trace_t trace
= {NULL
, NULL
, 27, LOCATE_static_type___MMLocalClass___get_type
};
6 struct WBT_
**closurevariable
= NULL
;
7 trace
.prev
= tracehead
; tracehead
= &trace
;
8 trace
.file
= LOCATE_static_type
;
9 /* Register variable[0]: Local variable */
11 /* Register variable[1]: Method return value and escape marker */
12 /* Register variable[2]: Result */
13 variable
[2] = ATTR_static_type___MMLocalClass____base_type_cache(variable
[0]) /*MMLocalClass::_base_type_cache*/;
14 /* Register variable[2]: Result */
15 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::==*/)))));
16 if (UNTAG_Bool(variable
[2])) { /*if*/
17 /* Register variable[2]: Result */
18 variable
[2] = NEW_MMTypeSimpleClass_static_type___MMTypeSimpleClass___init(variable
[0]) /*new MMTypeSimpleClass*/;
19 ATTR_static_type___MMLocalClass____base_type_cache(variable
[0]) /*MMLocalClass::_base_type_cache*/ = variable
[2];
21 /* Register variable[2]: Result */
22 variable
[2] = ATTR_static_type___MMLocalClass____base_type_cache(variable
[0]) /*MMLocalClass::_base_type_cache*/;
23 variable
[1] = variable
[2];
25 return_label0
: while(false);
26 tracehead
= trace
.prev
;
29 void static_type___MMLocalClass___add_ancestor(val_t self
, val_t param0
) {
30 struct trace_t trace
= {NULL
, NULL
, 34, LOCATE_static_type___MMLocalClass___add_ancestor
};
32 struct WBT_
**closurevariable
= NULL
;
33 trace
.prev
= tracehead
; tracehead
= &trace
;
34 trace
.file
= LOCATE_static_type
;
35 /* Register variable[0]: Local variable */
37 /* Register variable[1]: Local variable */
39 /* Register variable[2]: Method return value and escape marker */
40 /* Register variable[3]: Result */
41 variable
[3] = ATTR_static_type___MMLocalClass____ancestors(variable
[0]) /*MMLocalClass::_ancestors*/;
42 /* Register variable[4]: Result */
43 variable
[4] = CALL_static_type___MMAncestor___local_class( variable
[1] /*a*/)( variable
[1] /*a*/) /*MMAncestor::local_class*/;
44 /* Register variable[3]: Result */
45 variable
[3] = CALL_abstract_collection___MapRead___has_key(variable
[3])(variable
[3], variable
[4]) /*MapRead::has_key*/;
46 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMLocalClass___add_ancestor
, LOCATE_static_type
, 37); nit_exit(1);}
47 /* Register variable[3]: Result */
48 variable
[3] = CALL_static_type___MMAncestor___local_class( variable
[1] /*a*/)( variable
[1] /*a*/) /*MMAncestor::local_class*/;
49 /* Register variable[3]: Result */
50 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == variable
[0]) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3],variable
[0])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], variable
[0]) /*Object::==*/)))))));
51 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMLocalClass___add_ancestor
, LOCATE_static_type
, 38); nit_exit(1);}
52 /* Register variable[3]: Result */
53 variable
[3] = ATTR_static_type___MMLocalClass____ancestors(variable
[0]) /*MMLocalClass::_ancestors*/;
54 /* Register variable[4]: Result */
55 variable
[4] = CALL_static_type___MMAncestor___local_class( variable
[1] /*a*/)( variable
[1] /*a*/) /*MMAncestor::local_class*/;
56 CALL_abstract_collection___Map_____braeq(variable
[3])(variable
[3], variable
[4], variable
[1] /*a*/) /*Map::[]=*/;
57 return_label1
: while(false);
58 tracehead
= trace
.prev
;
61 val_t
static_type___MMLocalClass___ancestors(val_t self
) {
62 struct trace_t trace
= {NULL
, NULL
, 42, LOCATE_static_type___MMLocalClass___ancestors
};
63 val_t
*variable
= NULL
;
64 struct WBT_
**closurevariable
= NULL
;
65 trace
.prev
= tracehead
; tracehead
= &trace
;
66 trace
.file
= LOCATE_static_type
;
67 tracehead
= trace
.prev
;
68 return ATTR_static_type___MMLocalClass____ancestors( self
) /*MMLocalClass::_ancestors*/;
70 val_t
static_type___MMLocalClass___ancestor(val_t self
, val_t param0
) {
71 struct trace_t trace
= {NULL
, NULL
, 45, LOCATE_static_type___MMLocalClass___ancestor
};
73 struct WBT_
**closurevariable
= NULL
;
74 trace
.prev
= tracehead
; tracehead
= &trace
;
75 trace
.file
= LOCATE_static_type
;
76 /* Register variable[0]: Local variable */
78 /* Register variable[1]: Local variable */
80 /* Register variable[2]: Method return value and escape marker */
81 /* Register variable[3]: Result */
82 variable
[3] = ATTR_static_type___MMLocalClass____ancestors(variable
[0]) /*MMLocalClass::_ancestors*/;
83 /* Register variable[3]: Result */
84 variable
[3] = CALL_abstract_collection___MapRead_____bra(variable
[3])(variable
[3], variable
[1] /*c*/) /*MapRead::[]*/;
85 /* Register variable[3]: Result */
86 variable
[3] = CALL_static_type___MMAncestor___stype(variable
[3])(variable
[3]) /*MMAncestor::stype*/;
87 variable
[2] = variable
[3];
89 return_label2
: while(false);
90 tracehead
= trace
.prev
;
93 val_t
static_type___MMLocalProperty___signature(val_t self
) {
94 struct trace_t trace
= {NULL
, NULL
, 53, LOCATE_static_type___MMLocalProperty___signature
};
95 val_t
*variable
= NULL
;
96 struct WBT_
**closurevariable
= NULL
;
97 trace
.prev
= tracehead
; tracehead
= &trace
;
98 trace
.file
= LOCATE_static_type
;
99 tracehead
= trace
.prev
;
100 return ATTR_static_type___MMLocalProperty____signature( self
) /*MMLocalProperty::_signature*/;
102 void static_type___MMLocalProperty___signature__eq(val_t self
, val_t param0
) {
103 struct trace_t trace
= {NULL
, NULL
, 53, LOCATE_static_type___MMLocalProperty___signature__eq
};
104 val_t
*variable
= NULL
;
105 struct WBT_
**closurevariable
= NULL
;
106 trace
.prev
= tracehead
; tracehead
= &trace
;
107 trace
.file
= LOCATE_static_type
;
108 ATTR_static_type___MMLocalProperty____signature( self
) /*MMLocalProperty::_signature*/ = param0
;
109 tracehead
= trace
.prev
;
112 val_t
static_type___MMLocalProperty___signature_for(val_t self
, val_t param0
) {
113 struct trace_t trace
= {NULL
, NULL
, 58, LOCATE_static_type___MMLocalProperty___signature_for
};
115 struct WBT_
**closurevariable
= NULL
;
116 trace
.prev
= tracehead
; tracehead
= &trace
;
117 trace
.file
= LOCATE_static_type
;
118 /* Register variable[0]: Local variable */
120 /* Register variable[1]: Local variable */
121 variable
[1] = param0
;
122 /* Register variable[2]: Method return value and escape marker */
123 /* Register variable[3]: Result */
124 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[0])(variable
[0]) /*MMLocalProperty::local_class*/;
125 /* Register variable[3]: Result */
126 variable
[3] = CALL_static_type___MMLocalClass___get_type(variable
[3])(variable
[3]) /*MMLocalClass::get_type*/;
127 /* Register variable[3]: Result */
128 variable
[3] = TAG_Bool(( variable
[1] /*t*/ == variable
[3]) || (( variable
[1] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*t*/,variable
[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*t*/)( variable
[1] /*t*/, variable
[3]) /*Object::==*/)))));
129 if (UNTAG_Bool(variable
[3])) { /*if*/
130 /* Register variable[3]: Result */
131 variable
[3] = CALL_static_type___MMLocalProperty___signature(variable
[0])(variable
[0]) /*MMLocalProperty::signature*/;
132 variable
[2] = variable
[3];
135 /* Register variable[3]: Result */
136 variable
[3] = ATTR_static_type___MMLocalProperty____signatures_cache(variable
[0]) /*MMLocalProperty::_signatures_cache*/;
137 /* Register variable[3]: Result */
138 variable
[3] = CALL_abstract_collection___MapRead___has_key(variable
[3])(variable
[3], variable
[1] /*t*/) /*CoupleMap::has_key*/;
139 if (UNTAG_Bool(variable
[3])) { /*if*/
140 /* Register variable[3]: Result */
141 variable
[3] = ATTR_static_type___MMLocalProperty____signatures_cache(variable
[0]) /*MMLocalProperty::_signatures_cache*/;
142 /* Register variable[3]: Result */
143 variable
[3] = CALL_abstract_collection___MapRead_____bra(variable
[3])(variable
[3], variable
[1] /*t*/) /*CoupleMap::[]*/;
144 variable
[2] = variable
[3];
147 /* Register variable[3]: Local variable */
148 /* Register variable[4]: Result */
149 variable
[4] = CALL_static_type___MMLocalProperty___signature(variable
[0])(variable
[0]) /*MMLocalProperty::signature*/;
150 /* Register variable[4]: Result */
151 variable
[4] = CALL_static_type___MMSignature___adaptation_to(variable
[4])(variable
[4], variable
[1] /*t*/) /*MMSignature::adaptation_to*/;
152 variable
[3] = variable
[4];
153 /* Register variable[4]: Result */
154 variable
[4] = ATTR_static_type___MMLocalProperty____signatures_cache(variable
[0]) /*MMLocalProperty::_signatures_cache*/;
155 CALL_abstract_collection___Map_____braeq(variable
[4])(variable
[4], variable
[1] /*t*/, variable
[3] /*res*/) /*HashMap::[]=*/;
156 variable
[2] = variable
[3] /*res*/;
158 return_label3
: while(false);
159 tracehead
= trace
.prev
;
162 val_t
static_type___MMSignature___to_s(val_t self
) {
163 struct trace_t trace
= {NULL
, NULL
, 124, LOCATE_static_type___MMSignature___to_s
};
164 static val_t once_value_7
= NIT_NULL
; /* Once value for string variable[6]*/
165 static val_t once_value_8
= NIT_NULL
; /* Once value for string variable[6]*/
166 static val_t once_value_9
= NIT_NULL
; /* Once value for string variable[6]*/
167 static val_t once_value_10
= NIT_NULL
; /* Once value for string variable[4]*/
168 static val_t once_value_11
= NIT_NULL
; /* Once value for string variable[4]*/
170 struct WBT_
**closurevariable
= NULL
;
171 trace
.prev
= tracehead
; tracehead
= &trace
;
172 trace
.file
= LOCATE_static_type
;
173 /* Register variable[0]: Local variable */
175 /* Register variable[1]: Method return value and escape marker */
176 /* Register variable[2]: Local variable */
177 /* Register variable[3]: Result */
178 variable
[3] = NEW_Buffer_string___Buffer___init() /*new Buffer*/;
179 variable
[2] = variable
[3];
180 /* Register variable[3]: Result */
181 variable
[3] = ATTR_static_type___MMSignature____params(variable
[0]) /*MMSignature::_params*/;
182 /* Register variable[3]: Result */
183 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::==*/)))))));
184 /* Ensure var variable[3]: Left 'and' operand*/
185 if (UNTAG_Bool(variable
[3])) { /* and */
186 /* Register variable[3]: Result */
187 variable
[3] = ATTR_static_type___MMSignature____params(variable
[0]) /*MMSignature::_params*/;
188 /* Register variable[3]: Result */
189 variable
[3] = CALL_abstract_collection___Collection___length(variable
[3])(variable
[3]) /*AbstractArrayRead::length*/;
190 /* Register variable[3]: Result */
191 variable
[3] = TAG_Bool(UNTAG_Int(variable
[3])>UNTAG_Int( TAG_Int(0)));
193 /* Register variable[3]: Result */
194 if (UNTAG_Bool(variable
[3])) { /*if*/
195 /* Register variable[3]: Local variable */
196 /*variable[3] is variable tmp*/
197 /* Register variable[4]: Local variable */
198 /* Register variable[5]: Result */
199 variable
[5] = ATTR_static_type___MMSignature____params(variable
[0]) /*MMSignature::_params*/;
200 /* Register variable[5]: Result */
201 variable
[5] = CALL_abstract_collection___Collection___length(variable
[5])(variable
[5]) /*AbstractArrayRead::length*/;
202 /* Register variable[5]: Result */
203 variable
[5] = NEW_Array_array___Array___with_capacity(variable
[5]) /*new Array[String]*/;
204 variable
[4] = variable
[5];
205 /* Register variable[5]: Result */
206 variable
[5] = ATTR_static_type___MMSignature____params(variable
[0]) /*MMSignature::_params*/;
207 /* Register variable[5]: Result */
208 variable
[5] = CALL_abstract_collection___Collection___length(variable
[5])(variable
[5]) /*AbstractArrayRead::length*/;
209 /* Register variable[5]: Result */
210 variable
[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable
[5]) /*new Range[Int]*/;
211 /* Register variable[5]: For iterator */
212 variable
[5] = CALL_abstract_collection___Collection___iterator(variable
[5])(variable
[5]) /*Range::iterator*/;
213 while (true) { /*for*/
214 /* Register variable[6]: For 'is_ok' result */
215 variable
[6] = CALL_abstract_collection___Iterator___is_ok(variable
[5])(variable
[5]) /*Iterator::is_ok*/;
216 if (!UNTAG_Bool(variable
[6])) break; /*for*/
217 variable
[6] = CALL_abstract_collection___Iterator___item(variable
[5])(variable
[5]) /*Iterator::item*/ /* Ensure var: For item*/;
218 /* Register variable[7]: Local variable */
219 variable
[7] = variable
[6];
220 /* Register variable[8]: Local variable */
221 /* Register variable[9]: Result */
222 variable
[9] = ATTR_static_type___MMSignature____params(variable
[0]) /*MMSignature::_params*/;
223 /* Register variable[10]: Local variable */
224 variable
[10] = variable
[9];
225 /* Register variable[11]: Local variable */
226 variable
[11] = variable
[7] /*i*/;
227 /* Register variable[12]: Method return value and escape marker */
228 /* Register variable[13]: Result */
229 variable
[13] = TAG_Bool(UNTAG_Int( variable
[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
230 /* Ensure var variable[13]: Left 'and' operand*/
231 if (UNTAG_Bool(variable
[13])) { /* and */
232 /* Register variable[13]: Result */
233 variable
[13] = ATTR_array___AbstractArrayRead____length(variable
[10]) /*AbstractArrayRead::_length*/;
234 /* Register variable[13]: Result */
235 variable
[13] = TAG_Bool(UNTAG_Int( variable
[11] /*index*/)<UNTAG_Int(variable
[13]));
237 /* Register variable[13]: Result */
238 if (!UNTAG_Bool(variable
[13])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_static_type
, 234); nit_exit(1);}
239 /* Register variable[13]: Result */
240 variable
[13] = ATTR_array___Array____items(variable
[10]) /*Array::_items*/;
241 /* Register variable[13]: Result */
242 variable
[13] = UNBOX_NativeArray(variable
[13])[UNTAG_Int( variable
[11] /*index*/)];
243 variable
[12] = variable
[13];
245 return_label6
: while(false);
246 /* Register variable[9]: Result */
247 variable
[9] = variable
[12];
248 variable
[8] = variable
[9];
249 /* Register variable[9]: Result */
250 variable
[9] = CALL_string___Object___to_s( variable
[8] /*p*/)( variable
[8] /*p*/) /*Object::to_s*/;
251 CALL_abstract_collection___SimpleCollection___add( variable
[4] /*a*/)( variable
[4] /*a*/, variable
[9]) /*AbstractArray::add*/;
252 continue_5
: while(0);
253 CALL_abstract_collection___Iterator___next(variable
[5])(variable
[5]) /*Iterator::next*/;
256 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
257 /* Register variable[6]: Once String constant */
258 if (once_value_7
!= NIT_NULL
) variable
[6] = once_value_7
;
260 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
261 once_value_7
= variable
[6];
263 /* Register variable[6]: Result */
264 /* Ensure var variable[6]: super-string element*/
265 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
266 /* Register variable[6]: Once String constant */
267 if (once_value_8
!= NIT_NULL
) variable
[6] = once_value_8
;
269 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)) /*new String*/;
270 once_value_8
= variable
[6];
272 /* Register variable[6]: Result */
273 /* Register variable[6]: Result */
274 variable
[6] = CALL_string___Collection___join( variable
[4] /*a*/)( variable
[4] /*a*/, variable
[6]) /*Collection::join*/;
275 /* Ensure var variable[6]: super-string element*/
276 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
277 /* Register variable[6]: Once String constant */
278 if (once_value_9
!= NIT_NULL
) variable
[6] = once_value_9
;
280 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
281 once_value_9
= variable
[6];
283 /* Register variable[6]: Result */
284 /* Ensure var variable[6]: super-string element*/
285 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[6]) /*AbstractArray::add*/;
286 /* Register variable[5]: Result */
287 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
288 CALL_abstract_collection___IndexedCollection___append( variable
[2] /*s*/)( variable
[2] /*s*/, variable
[5]) /*Buffer::append*/;
290 /* Register variable[3]: Result */
291 variable
[3] = ATTR_static_type___MMSignature____return_type(variable
[0]) /*MMSignature::_return_type*/;
292 /* Register variable[3]: Result */
293 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::==*/)))))));
294 if (UNTAG_Bool(variable
[3])) { /*if*/
295 variable
[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
296 /* Register variable[4]: Once String constant */
297 if (once_value_10
!= NIT_NULL
) variable
[4] = once_value_10
;
299 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)) /*new String*/;
300 once_value_10
= variable
[4];
302 /* Register variable[4]: Result */
303 /* Ensure var variable[4]: super-string element*/
304 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
305 /* Register variable[4]: Result */
306 variable
[4] = ATTR_static_type___MMSignature____return_type(variable
[0]) /*MMSignature::_return_type*/;
307 /* Ensure var variable[4]: super-string element*/
308 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/) /*AbstractArray::add*/;
309 /* Register variable[4]: Once String constant */
310 if (once_value_11
!= NIT_NULL
) variable
[4] = once_value_11
;
312 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
313 once_value_11
= variable
[4];
315 /* Register variable[4]: Result */
316 /* Ensure var variable[4]: super-string element*/
317 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
318 /* Register variable[3]: Result */
319 variable
[3] = CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/;
320 CALL_abstract_collection___IndexedCollection___append( variable
[2] /*s*/)( variable
[2] /*s*/, variable
[3]) /*Buffer::append*/;
322 /* Register variable[3]: Result */
323 variable
[3] = CALL_string___Object___to_s( variable
[2] /*s*/)( variable
[2] /*s*/) /*Buffer::to_s*/;
324 variable
[1] = variable
[3];
326 return_label4
: while(false);
327 tracehead
= trace
.prev
;
330 val_t
static_type___MMSignature___recv(val_t self
) {
331 struct trace_t trace
= {NULL
, NULL
, 72, LOCATE_static_type___MMSignature___recv
};
332 val_t
*variable
= NULL
;
333 struct WBT_
**closurevariable
= NULL
;
334 trace
.prev
= tracehead
; tracehead
= &trace
;
335 trace
.file
= LOCATE_static_type
;
336 tracehead
= trace
.prev
;
337 return ATTR_static_type___MMSignature____recv( self
) /*MMSignature::_recv*/;
339 val_t
static_type___MMSignature___return_type(val_t self
) {
340 struct trace_t trace
= {NULL
, NULL
, 78, LOCATE_static_type___MMSignature___return_type
};
341 val_t
*variable
= NULL
;
342 struct WBT_
**closurevariable
= NULL
;
343 trace
.prev
= tracehead
; tracehead
= &trace
;
344 trace
.file
= LOCATE_static_type
;
345 tracehead
= trace
.prev
;
346 return ATTR_static_type___MMSignature____return_type( self
) /*MMSignature::_return_type*/;
348 val_t
static_type___MMSignature___closures(val_t self
) {
349 struct trace_t trace
= {NULL
, NULL
, 81, LOCATE_static_type___MMSignature___closures
};
350 val_t
*variable
= NULL
;
351 struct WBT_
**closurevariable
= NULL
;
352 trace
.prev
= tracehead
; tracehead
= &trace
;
353 trace
.file
= LOCATE_static_type
;
354 tracehead
= trace
.prev
;
355 return ATTR_static_type___MMSignature____closures( self
) /*MMSignature::_closures*/;
357 val_t
static_type___MMSignature___arity(val_t self
) {
358 struct trace_t trace
= {NULL
, NULL
, 84, LOCATE_static_type___MMSignature___arity
};
360 struct WBT_
**closurevariable
= NULL
;
361 trace
.prev
= tracehead
; tracehead
= &trace
;
362 trace
.file
= LOCATE_static_type
;
363 /* Register variable[0]: Local variable */
365 /* Register variable[1]: Method return value and escape marker */
366 /* Register variable[2]: Result */
367 variable
[2] = ATTR_static_type___MMSignature____params(variable
[0]) /*MMSignature::_params*/;
368 /* Register variable[2]: Result */
369 variable
[2] = TAG_Bool(!UNTAG_Bool(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::==*/)))))));
370 if (!UNTAG_Bool(variable
[2])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature___arity
, LOCATE_static_type
, 87); nit_exit(1);}
371 /* Register variable[2]: Result */
372 variable
[2] = ATTR_static_type___MMSignature____params(variable
[0]) /*MMSignature::_params*/;
373 /* Register variable[2]: Result */
374 variable
[2] = CALL_abstract_collection___Collection___length(variable
[2])(variable
[2]) /*AbstractArrayRead::length*/;
375 variable
[1] = variable
[2];
377 return_label12
: while(false);
378 tracehead
= trace
.prev
;
381 val_t
static_type___MMSignature_____l(val_t self
, val_t param0
) {
382 struct trace_t trace
= {NULL
, NULL
, 91, LOCATE_static_type___MMSignature_____l
};
384 struct WBT_
**closurevariable
= NULL
;
385 trace
.prev
= tracehead
; tracehead
= &trace
;
386 trace
.file
= LOCATE_static_type
;
387 /* Register variable[0]: Local variable */
389 /* Register variable[1]: Local variable */
390 variable
[1] = param0
;
391 /* Register variable[2]: Method return value and escape marker */
392 /* Register variable[3]: Result */
393 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*s*/ == NIT_NULL
/*null*/) || (( variable
[1] /*s*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*s*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*s*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*s*/)( variable
[1] /*s*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
394 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature_____l
, LOCATE_static_type
, 94); nit_exit(1);}
395 /* Register variable[3]: Result */
396 variable
[3] = TAG_Bool((variable
[0] == variable
[1] /*s*/) || ((variable
[0] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[0])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[0], variable
[1] /*s*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[0])(variable
[0], variable
[1] /*s*/) /*Object::==*/)))));
397 if (UNTAG_Bool(variable
[3])) { /*if*/
398 variable
[2] = TAG_Bool(true);
401 /* Register variable[3]: Result */
402 variable
[3] = ATTR_static_type___MMSignature____recv(variable
[0]) /*MMSignature::_recv*/;
403 /* Register variable[3]: Result */
404 variable
[3] = CALL_static_type___MMType___module(variable
[3])(variable
[3]) /*MMType::module*/;
405 /* Register variable[4]: Result */
406 variable
[4] = CALL_static_type___MMSignature___recv( variable
[1] /*s*/)( variable
[1] /*s*/) /*MMSignature::recv*/;
407 /* Register variable[4]: Result */
408 variable
[4] = CALL_static_type___MMType___module(variable
[4])(variable
[4]) /*MMType::module*/;
409 /* Register variable[3]: Result */
410 variable
[3] = 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::==*/)))));
411 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature_____l
, LOCATE_static_type
, 98); nit_exit(1);}
412 /* Register variable[3]: Result */
413 variable
[3] = CALL_static_type___MMSignature___arity(variable
[0])(variable
[0]) /*MMSignature::arity*/;
414 /* Register variable[4]: Result */
415 variable
[4] = CALL_static_type___MMSignature___arity( variable
[1] /*s*/)( variable
[1] /*s*/) /*MMSignature::arity*/;
416 /* Register variable[3]: Result */
417 variable
[3] = TAG_Bool((variable
[3])!=(variable
[4]));
418 /* Ensure var variable[3]: Left 'or' operand*/
419 if (!UNTAG_Bool(variable
[3])) { /* or */
420 /* Register variable[3]: Result */
421 variable
[3] = ATTR_static_type___MMSignature____return_type(variable
[0]) /*MMSignature::_return_type*/;
422 /* Register variable[3]: Result */
423 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::==*/)))));
424 /* Register variable[4]: Result */
425 variable
[4] = CALL_static_type___MMSignature___return_type( variable
[1] /*s*/)( variable
[1] /*s*/) /*MMSignature::return_type*/;
426 /* Register variable[4]: Result */
427 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::==*/)))));
428 /* Register variable[3]: Result */
429 variable
[3] = TAG_Bool((variable
[3])!=(variable
[4]));
431 /* Register variable[3]: Result */
432 if (UNTAG_Bool(variable
[3])) { /*if*/
433 variable
[2] = TAG_Bool(false);
436 /* Register variable[3]: Result */
437 variable
[3] = ATTR_static_type___MMSignature____return_type(variable
[0]) /*MMSignature::_return_type*/;
438 /* Register variable[3]: Result */
439 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::==*/)))))));
440 /* Ensure var variable[3]: Left 'and' operand*/
441 if (UNTAG_Bool(variable
[3])) { /* and */
442 /* Register variable[3]: Result */
443 variable
[3] = ATTR_static_type___MMSignature____return_type(variable
[0]) /*MMSignature::_return_type*/;
444 /* Register variable[4]: Result */
445 variable
[4] = CALL_static_type___MMSignature___return_type( variable
[1] /*s*/)( variable
[1] /*s*/) /*MMSignature::return_type*/;
446 /* Register variable[3]: Result */
447 variable
[3] = CALL_static_type___MMType_____l(variable
[3])(variable
[3], variable
[4]) /*MMType::<*/;
448 variable
[3] = TAG_Bool(!UNTAG_Bool(variable
[3]));
450 /* Register variable[3]: Result */
451 if (UNTAG_Bool(variable
[3])) { /*if*/
452 variable
[2] = TAG_Bool(false);
455 /* Register variable[3]: Result */
456 variable
[3] = CALL_static_type___MMSignature___arity(variable
[0])(variable
[0]) /*MMSignature::arity*/;
457 /* Register variable[3]: Result */
458 variable
[3] = NEW_Range_range___Range___without_last( TAG_Int(0), variable
[3]) /*new Range[Int]*/;
459 /* Register variable[3]: For iterator */
460 variable
[3] = CALL_abstract_collection___Collection___iterator(variable
[3])(variable
[3]) /*Range::iterator*/;
461 while (true) { /*for*/
462 /* Register variable[4]: For 'is_ok' result */
463 variable
[4] = CALL_abstract_collection___Iterator___is_ok(variable
[3])(variable
[3]) /*Iterator::is_ok*/;
464 if (!UNTAG_Bool(variable
[4])) break; /*for*/
465 variable
[4] = CALL_abstract_collection___Iterator___item(variable
[3])(variable
[3]) /*Iterator::item*/ /* Ensure var: For item*/;
466 /* Register variable[5]: Local variable */
467 variable
[5] = variable
[4];
468 /* Register variable[6]: Result */
469 variable
[6] = CALL_static_type___MMSignature_____bra( variable
[1] /*s*/)( variable
[1] /*s*/, variable
[5] /*i*/) /*MMSignature::[]*/;
470 /* Register variable[7]: Result */
471 variable
[7] = CALL_static_type___MMSignature_____bra(variable
[0])(variable
[0], variable
[5] /*i*/) /*MMSignature::[]*/;
472 /* Register variable[6]: Result */
473 variable
[6] = CALL_static_type___MMType_____l(variable
[6])(variable
[6], variable
[7]) /*MMType::<*/;
474 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[6])))) { /*if*/
475 variable
[2] = TAG_Bool(false);
478 continue_14
: while(0);
479 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
482 /* Register variable[3]: Result */
483 variable
[3] = CALL_static_type___MMSignature___closures(variable
[0])(variable
[0]) /*MMSignature::closures*/;
484 /* Register variable[3]: Result */
485 variable
[3] = CALL_abstract_collection___Collection___length(variable
[3])(variable
[3]) /*AbstractArrayRead::length*/;
486 /* Register variable[4]: Result */
487 variable
[4] = CALL_static_type___MMSignature___closures( variable
[1] /*s*/)( variable
[1] /*s*/) /*MMSignature::closures*/;
488 /* Register variable[4]: Result */
489 variable
[4] = CALL_abstract_collection___Collection___length(variable
[4])(variable
[4]) /*AbstractArrayRead::length*/;
490 /* Register variable[3]: Result */
491 variable
[3] = TAG_Bool((variable
[3])!=(variable
[4]));
492 if (UNTAG_Bool(variable
[3])) { /*if*/
493 variable
[2] = TAG_Bool(false);
496 /* Register variable[3]: Result */
497 variable
[3] = CALL_static_type___MMSignature___closures(variable
[0])(variable
[0]) /*MMSignature::closures*/;
498 /* Register variable[3]: Result */
499 variable
[3] = CALL_abstract_collection___Collection___length(variable
[3])(variable
[3]) /*AbstractArrayRead::length*/;
500 /* Register variable[3]: Result */
501 variable
[3] = NEW_Range_range___Range___without_last( TAG_Int(0), variable
[3]) /*new Range[Int]*/;
502 /* Register variable[3]: For iterator */
503 variable
[3] = CALL_abstract_collection___Collection___iterator(variable
[3])(variable
[3]) /*Range::iterator*/;
504 while (true) { /*for*/
505 /* Register variable[4]: For 'is_ok' result */
506 variable
[4] = CALL_abstract_collection___Iterator___is_ok(variable
[3])(variable
[3]) /*Iterator::is_ok*/;
507 if (!UNTAG_Bool(variable
[4])) break; /*for*/
508 variable
[4] = CALL_abstract_collection___Iterator___item(variable
[3])(variable
[3]) /*Iterator::item*/ /* Ensure var: For item*/;
509 /* Register variable[5]: Local variable */
510 variable
[5] = variable
[4];
511 /* Register variable[6]: Result */
512 variable
[6] = CALL_static_type___MMSignature___closures( variable
[1] /*s*/)( variable
[1] /*s*/) /*MMSignature::closures*/;
513 /* Register variable[7]: Local variable */
514 variable
[7] = variable
[6];
515 /* Register variable[8]: Local variable */
516 variable
[8] = variable
[5] /*i*/;
517 /* Register variable[9]: Method return value and escape marker */
518 /* Register variable[10]: Result */
519 variable
[10] = TAG_Bool(UNTAG_Int( variable
[8] /*index*/)>=UNTAG_Int( TAG_Int(0)));
520 /* Ensure var variable[10]: Left 'and' operand*/
521 if (UNTAG_Bool(variable
[10])) { /* and */
522 /* Register variable[10]: Result */
523 variable
[10] = ATTR_array___AbstractArrayRead____length(variable
[7]) /*AbstractArrayRead::_length*/;
524 /* Register variable[10]: Result */
525 variable
[10] = TAG_Bool(UNTAG_Int( variable
[8] /*index*/)<UNTAG_Int(variable
[10]));
527 /* Register variable[10]: Result */
528 if (!UNTAG_Bool(variable
[10])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_static_type
, 234); nit_exit(1);}
529 /* Register variable[10]: Result */
530 variable
[10] = ATTR_array___Array____items(variable
[7]) /*Array::_items*/;
531 /* Register variable[10]: Result */
532 variable
[10] = UNBOX_NativeArray(variable
[10])[UNTAG_Int( variable
[8] /*index*/)];
533 variable
[9] = variable
[10];
535 return_label16
: while(false);
536 /* Register variable[6]: Result */
537 variable
[6] = variable
[9];
538 /* Register variable[7]: Result */
539 variable
[7] = CALL_static_type___MMSignature___closures(variable
[0])(variable
[0]) /*MMSignature::closures*/;
540 /* Register variable[8]: Local variable */
541 variable
[8] = variable
[7];
542 /* Register variable[9]: Local variable */
543 variable
[9] = variable
[5] /*i*/;
544 /* Register variable[10]: Method return value and escape marker */
545 /* Register variable[11]: Result */
546 variable
[11] = TAG_Bool(UNTAG_Int( variable
[9] /*index*/)>=UNTAG_Int( TAG_Int(0)));
547 /* Ensure var variable[11]: Left 'and' operand*/
548 if (UNTAG_Bool(variable
[11])) { /* and */
549 /* Register variable[11]: Result */
550 variable
[11] = ATTR_array___AbstractArrayRead____length(variable
[8]) /*AbstractArrayRead::_length*/;
551 /* Register variable[11]: Result */
552 variable
[11] = TAG_Bool(UNTAG_Int( variable
[9] /*index*/)<UNTAG_Int(variable
[11]));
554 /* Register variable[11]: Result */
555 if (!UNTAG_Bool(variable
[11])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_static_type
, 234); nit_exit(1);}
556 /* Register variable[11]: Result */
557 variable
[11] = ATTR_array___Array____items(variable
[8]) /*Array::_items*/;
558 /* Register variable[11]: Result */
559 variable
[11] = UNBOX_NativeArray(variable
[11])[UNTAG_Int( variable
[9] /*index*/)];
560 variable
[10] = variable
[11];
562 return_label17
: while(false);
563 /* Register variable[7]: Result */
564 variable
[7] = variable
[10];
565 /* Register variable[6]: Result */
566 variable
[6] = CALL_static_type___MMClosure_____l(variable
[6])(variable
[6], variable
[7]) /*MMClosure::<*/;
567 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[6])))) { /*if*/
568 variable
[2] = TAG_Bool(false);
571 continue_15
: while(0);
572 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
575 variable
[2] = TAG_Bool(true);
577 return_label13
: while(false);
578 tracehead
= trace
.prev
;
581 val_t
static_type___MMSignature_____bra(val_t self
, val_t param0
) {
582 struct trace_t trace
= {NULL
, NULL
, 117, LOCATE_static_type___MMSignature_____bra
};
584 struct WBT_
**closurevariable
= NULL
;
585 trace
.prev
= tracehead
; tracehead
= &trace
;
586 trace
.file
= LOCATE_static_type
;
587 /* Register variable[0]: Local variable */
589 /* Register variable[1]: Local variable */
590 variable
[1] = param0
;
591 /* Register variable[2]: Method return value and escape marker */
592 /* Register variable[3]: Result */
593 variable
[3] = ATTR_static_type___MMSignature____params(variable
[0]) /*MMSignature::_params*/;
594 /* Register variable[3]: Result */
595 variable
[3] = CALL_abstract_collection___Collection___length(variable
[3])(variable
[3]) /*AbstractArrayRead::length*/;
596 /* Register variable[3]: Result */
597 variable
[3] = TAG_Bool(UNTAG_Int(variable
[3])>UNTAG_Int( variable
[1] /*i*/));
598 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature_____bra
, LOCATE_static_type
, 120); nit_exit(1);}
599 /* Register variable[3]: Result */
600 variable
[3] = ATTR_static_type___MMSignature____params(variable
[0]) /*MMSignature::_params*/;
601 /* Register variable[4]: Local variable */
602 variable
[4] = variable
[3];
603 /* Register variable[5]: Local variable */
604 variable
[5] = variable
[1] /*i*/;
605 /* Register variable[6]: Method return value and escape marker */
606 /* Register variable[7]: Result */
607 variable
[7] = TAG_Bool(UNTAG_Int( variable
[5] /*index*/)>=UNTAG_Int( TAG_Int(0)));
608 /* Ensure var variable[7]: Left 'and' operand*/
609 if (UNTAG_Bool(variable
[7])) { /* and */
610 /* Register variable[7]: Result */
611 variable
[7] = ATTR_array___AbstractArrayRead____length(variable
[4]) /*AbstractArrayRead::_length*/;
612 /* Register variable[7]: Result */
613 variable
[7] = TAG_Bool(UNTAG_Int( variable
[5] /*index*/)<UNTAG_Int(variable
[7]));
615 /* Register variable[7]: Result */
616 if (!UNTAG_Bool(variable
[7])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_static_type
, 234); nit_exit(1);}
617 /* Register variable[7]: Result */
618 variable
[7] = ATTR_array___Array____items(variable
[4]) /*Array::_items*/;
619 /* Register variable[7]: Result */
620 variable
[7] = UNBOX_NativeArray(variable
[7])[UNTAG_Int( variable
[5] /*index*/)];
621 variable
[6] = variable
[7];
623 return_label19
: while(false);
624 /* Register variable[3]: Result */
625 variable
[3] = variable
[6];
626 variable
[2] = variable
[3];
628 return_label18
: while(false);
629 tracehead
= trace
.prev
;
632 val_t
static_type___MMSignature___adaptation_to(val_t self
, val_t param0
) {
633 struct trace_t trace
= {NULL
, NULL
, 144, LOCATE_static_type___MMSignature___adaptation_to
};
635 struct WBT_
**closurevariable
= NULL
;
636 trace
.prev
= tracehead
; tracehead
= &trace
;
637 trace
.file
= LOCATE_static_type
;
638 /* Register variable[0]: Local variable */
640 /* Register variable[1]: Local variable */
641 variable
[1] = param0
;
642 /* Register variable[2]: Method return value and escape marker */
643 /* Register variable[3]: Result */
644 variable
[3] = ATTR_static_type___MMSignature____recv(variable
[0]) /*MMSignature::_recv*/;
645 /* Register variable[3]: Result */
646 variable
[3] = TAG_Bool((variable
[3] == variable
[1] /*r*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], variable
[1] /*r*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], variable
[1] /*r*/) /*Object::==*/)))));
647 if (UNTAG_Bool(variable
[3])) { /*if*/
648 variable
[2] = variable
[0];
651 /* Register variable[3]: Local variable */
652 /* Register variable[4]: Result */
653 variable
[4] = CALL_static_type___MMType___module( variable
[1] /*r*/)( variable
[1] /*r*/) /*MMType::module*/;
654 variable
[3] = variable
[4];
655 /* Register variable[4]: Local variable */
656 /* Register variable[5]: Result */
657 variable
[5] = ATTR_static_type___MMSignature____params(variable
[0]) /*MMSignature::_params*/;
658 variable
[4] = variable
[5];
659 /* Register variable[5]: Result */
660 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*p*/ == NIT_NULL
/*null*/) || (( variable
[4] /*p*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*p*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*p*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*p*/)( variable
[4] /*p*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
661 if (UNTAG_Bool(variable
[5])) { /*if*/
662 /* Register variable[5]: Result */
663 variable
[5] = NEW_Array_array___Array___init() /*new Array[MMType]*/;
664 variable
[4] = variable
[5] /*p=*/;
665 /* Register variable[5]: Result */
666 variable
[5] = ATTR_static_type___MMSignature____params(variable
[0]) /*MMSignature::_params*/;
667 /* Register variable[5]: For iterator */
668 variable
[5] = CALL_abstract_collection___Collection___iterator(variable
[5])(variable
[5]) /*AbstractArrayRead::iterator*/;
669 while (true) { /*for*/
670 /* Register variable[6]: For 'is_ok' result */
671 variable
[6] = CALL_abstract_collection___Iterator___is_ok(variable
[5])(variable
[5]) /*ArrayIterator::is_ok*/;
672 if (!UNTAG_Bool(variable
[6])) break; /*for*/
673 variable
[6] = CALL_abstract_collection___Iterator___item(variable
[5])(variable
[5]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
674 /* Register variable[7]: Local variable */
675 variable
[7] = variable
[6];
676 /* Register variable[8]: Result */
677 variable
[8] = CALL_static_type___MMType___for_module( variable
[7] /*i*/)( variable
[7] /*i*/, variable
[3] /*mod*/) /*MMType::for_module*/;
678 /* Register variable[8]: Result */
679 variable
[8] = CALL_static_type___MMType___adapt_to(variable
[8])(variable
[8], variable
[1] /*r*/) /*MMType::adapt_to*/;
680 CALL_abstract_collection___SimpleCollection___add( variable
[4] /*p*/)( variable
[4] /*p*/, variable
[8]) /*AbstractArray::add*/;
681 continue_21
: while(0);
682 CALL_abstract_collection___Iterator___next(variable
[5])(variable
[5]) /*ArrayIterator::next*/;
686 /* Register variable[5]: Local variable */
687 /* Register variable[6]: Result */
688 variable
[6] = ATTR_static_type___MMSignature____return_type(variable
[0]) /*MMSignature::_return_type*/;
689 variable
[5] = variable
[6];
690 /* Register variable[6]: Result */
691 variable
[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[5] /*rv*/ == NIT_NULL
/*null*/) || (( variable
[5] /*rv*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[5] /*rv*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[5] /*rv*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*rv*/)( variable
[5] /*rv*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
692 if (UNTAG_Bool(variable
[6])) { /*if*/
693 /* Register variable[6]: Result */
694 variable
[6] = CALL_static_type___MMType___for_module( variable
[5] /*rv*/)( variable
[5] /*rv*/, variable
[3] /*mod*/) /*MMType::for_module*/;
695 /* Register variable[6]: Result */
696 variable
[6] = CALL_static_type___MMType___adapt_to(variable
[6])(variable
[6], variable
[1] /*r*/) /*MMType::adapt_to*/;
697 variable
[5] = variable
[6] /*rv=*/;
699 /* Register variable[6]: Local variable */
700 /* Register variable[7]: Result */
701 variable
[7] = NEW_MMSignature_static_type___MMSignature___init( variable
[4] /*p*/, variable
[5] /*rv*/, variable
[1] /*r*/) /*new MMSignature*/;
702 variable
[6] = variable
[7];
703 /* Register variable[7]: Result */
704 variable
[7] = ATTR_static_type___MMSignature____closures(variable
[0]) /*MMSignature::_closures*/;
705 /* Register variable[7]: For iterator */
706 variable
[7] = CALL_abstract_collection___Collection___iterator(variable
[7])(variable
[7]) /*AbstractArrayRead::iterator*/;
707 while (true) { /*for*/
708 /* Register variable[8]: For 'is_ok' result */
709 variable
[8] = CALL_abstract_collection___Iterator___is_ok(variable
[7])(variable
[7]) /*ArrayIterator::is_ok*/;
710 if (!UNTAG_Bool(variable
[8])) break; /*for*/
711 variable
[8] = CALL_abstract_collection___Iterator___item(variable
[7])(variable
[7]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
712 /* Register variable[9]: Local variable */
713 variable
[9] = variable
[8];
714 /* Register variable[10]: Result */
715 variable
[10] = CALL_static_type___MMSignature___closures( variable
[6] /*res*/)( variable
[6] /*res*/) /*MMSignature::closures*/;
716 /* Register variable[11]: Result */
717 variable
[11] = CALL_static_type___MMClosure___adaptation_to( variable
[9] /*clos*/)( variable
[9] /*clos*/, variable
[1] /*r*/) /*MMClosure::adaptation_to*/;
718 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[11]) /*AbstractArray::add*/;
719 continue_22
: while(0);
720 CALL_abstract_collection___Iterator___next(variable
[7])(variable
[7]) /*ArrayIterator::next*/;
723 variable
[2] = variable
[6] /*res*/;
725 return_label20
: while(false);
726 tracehead
= trace
.prev
;
729 val_t
static_type___MMSignature___not_for_self(val_t self
) {
730 struct trace_t trace
= {NULL
, NULL
, 171, LOCATE_static_type___MMSignature___not_for_self
};
732 struct WBT_
**closurevariable
= NULL
;
733 trace
.prev
= tracehead
; tracehead
= &trace
;
734 trace
.file
= LOCATE_static_type
;
735 /* Register variable[0]: Local variable */
737 /* Register variable[1]: Method return value and escape marker */
738 /* Register variable[2]: Local variable */
739 /* Register variable[3]: Result */
740 variable
[3] = ATTR_static_type___MMSignature____not_for_self_cache(variable
[0]) /*MMSignature::_not_for_self_cache*/;
741 variable
[2] = variable
[3];
742 /* Register variable[3]: Result */
743 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[2] /*res*/ == NIT_NULL
/*null*/) || (( variable
[2] /*res*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[2] /*res*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[2] /*res*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[2] /*res*/)( variable
[2] /*res*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
744 if (UNTAG_Bool(variable
[3])) { /*if*/
745 variable
[1] = variable
[2] /*res*/;
748 /* Register variable[3]: Local variable */
749 variable
[3] = TAG_Bool(false);
750 /* Register variable[4]: Local variable */
751 /* Register variable[5]: Result */
752 variable
[5] = ATTR_static_type___MMSignature____params(variable
[0]) /*MMSignature::_params*/;
753 variable
[4] = variable
[5];
754 /* Register variable[5]: Result */
755 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*p*/ == NIT_NULL
/*null*/) || (( variable
[4] /*p*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[4] /*p*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*p*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[4] /*p*/)( variable
[4] /*p*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
756 if (UNTAG_Bool(variable
[5])) { /*if*/
757 /* Register variable[5]: Result */
758 variable
[5] = NEW_Array_array___Array___init() /*new Array[MMType]*/;
759 variable
[4] = variable
[5] /*p=*/;
760 /* Register variable[5]: Result */
761 variable
[5] = ATTR_static_type___MMSignature____params(variable
[0]) /*MMSignature::_params*/;
762 /* Register variable[5]: For iterator */
763 variable
[5] = CALL_abstract_collection___Collection___iterator(variable
[5])(variable
[5]) /*AbstractArrayRead::iterator*/;
764 while (true) { /*for*/
765 /* Register variable[6]: For 'is_ok' result */
766 variable
[6] = CALL_abstract_collection___Iterator___is_ok(variable
[5])(variable
[5]) /*ArrayIterator::is_ok*/;
767 if (!UNTAG_Bool(variable
[6])) break; /*for*/
768 variable
[6] = CALL_abstract_collection___Iterator___item(variable
[5])(variable
[5]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
769 /* Register variable[7]: Local variable */
770 variable
[7] = variable
[6];
771 /* Register variable[8]: Local variable */
772 /* Register variable[9]: Result */
773 variable
[9] = CALL_static_type___MMType___not_for_self( variable
[7] /*i*/)( variable
[7] /*i*/) /*MMType::not_for_self*/;
774 variable
[8] = variable
[9];
775 /* Register variable[9]: Result */
776 variable
[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[7] /*i*/ == variable
[8] /*i2*/) || (( variable
[7] /*i*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[7] /*i*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[7] /*i*/, variable
[8] /*i2*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[7] /*i*/)( variable
[7] /*i*/, variable
[8] /*i2*/) /*Object::==*/)))))));
777 if (UNTAG_Bool(variable
[9])) { /*if*/
778 variable
[3] = TAG_Bool(true) /*need_for_self=*/;
780 CALL_abstract_collection___SimpleCollection___add( variable
[4] /*p*/)( variable
[4] /*p*/, variable
[8] /*i2*/) /*AbstractArray::add*/;
781 continue_24
: while(0);
782 CALL_abstract_collection___Iterator___next(variable
[5])(variable
[5]) /*ArrayIterator::next*/;
786 /* Register variable[5]: Local variable */
787 /* Register variable[6]: Result */
788 variable
[6] = ATTR_static_type___MMSignature____return_type(variable
[0]) /*MMSignature::_return_type*/;
789 variable
[5] = variable
[6];
790 /* Register variable[6]: Result */
791 variable
[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[5] /*rv*/ == NIT_NULL
/*null*/) || (( variable
[5] /*rv*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[5] /*rv*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[5] /*rv*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*rv*/)( variable
[5] /*rv*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
792 if (UNTAG_Bool(variable
[6])) { /*if*/
793 /* Register variable[6]: Result */
794 variable
[6] = CALL_static_type___MMType___not_for_self( variable
[5] /*rv*/)( variable
[5] /*rv*/) /*MMType::not_for_self*/;
795 variable
[5] = variable
[6] /*rv=*/;
796 /* Register variable[6]: Result */
797 variable
[6] = ATTR_static_type___MMSignature____return_type(variable
[0]) /*MMSignature::_return_type*/;
798 /* Register variable[6]: Result */
799 variable
[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[5] /*rv*/ == variable
[6]) || (( variable
[5] /*rv*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[5] /*rv*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[5] /*rv*/,variable
[6])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*rv*/)( variable
[5] /*rv*/, variable
[6]) /*Object::==*/)))))));
800 if (UNTAG_Bool(variable
[6])) { /*if*/
801 variable
[3] = TAG_Bool(true) /*need_for_self=*/;
804 /* Register variable[6]: Local variable */
805 /* Register variable[7]: Result */
806 variable
[7] = ATTR_static_type___MMSignature____closures(variable
[0]) /*MMSignature::_closures*/;
807 variable
[6] = variable
[7];
808 /* Register variable[7]: Result */
809 variable
[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[6] /*clos*/ == NIT_NULL
/*null*/) || (( variable
[6] /*clos*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[6] /*clos*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[6] /*clos*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[6] /*clos*/)( variable
[6] /*clos*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
810 if (UNTAG_Bool(variable
[7])) { /*if*/
811 /* Register variable[7]: Result */
812 variable
[7] = NEW_Array_array___Array___init() /*new Array[MMClosure]*/;
813 variable
[6] = variable
[7] /*clos=*/;
814 /* Register variable[7]: Result */
815 variable
[7] = ATTR_static_type___MMSignature____closures(variable
[0]) /*MMSignature::_closures*/;
816 /* Register variable[7]: For iterator */
817 variable
[7] = CALL_abstract_collection___Collection___iterator(variable
[7])(variable
[7]) /*AbstractArrayRead::iterator*/;
818 while (true) { /*for*/
819 /* Register variable[8]: For 'is_ok' result */
820 variable
[8] = CALL_abstract_collection___Iterator___is_ok(variable
[7])(variable
[7]) /*ArrayIterator::is_ok*/;
821 if (!UNTAG_Bool(variable
[8])) break; /*for*/
822 variable
[8] = CALL_abstract_collection___Iterator___item(variable
[7])(variable
[7]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
823 /* Register variable[9]: Local variable */
824 variable
[9] = variable
[8];
825 /* Register variable[10]: Local variable */
826 /* Register variable[11]: Result */
827 variable
[11] = CALL_static_type___MMClosure___not_for_self( variable
[9] /*c*/)( variable
[9] /*c*/) /*MMClosure::not_for_self*/;
828 variable
[10] = variable
[11];
829 /* Register variable[11]: Result */
830 variable
[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[10] /*c2*/ == variable
[9] /*c*/) || (( variable
[10] /*c2*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[10] /*c2*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[10] /*c2*/, variable
[9] /*c*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[10] /*c2*/)( variable
[10] /*c2*/, variable
[9] /*c*/) /*Object::==*/)))))));
831 if (UNTAG_Bool(variable
[11])) { /*if*/
832 variable
[3] = TAG_Bool(true) /*need_for_self=*/;
834 CALL_abstract_collection___SimpleCollection___add( variable
[6] /*clos*/)( variable
[6] /*clos*/, variable
[10] /*c2*/) /*AbstractArray::add*/;
835 continue_25
: while(0);
836 CALL_abstract_collection___Iterator___next(variable
[7])(variable
[7]) /*ArrayIterator::next*/;
840 if (UNTAG_Bool( variable
[3] /*need_for_self*/)) { /*if*/
841 /* Register variable[7]: Result */
842 variable
[7] = ATTR_static_type___MMSignature____recv(variable
[0]) /*MMSignature::_recv*/;
843 /* Register variable[7]: Result */
844 variable
[7] = NEW_MMSignature_static_type___MMSignature___init( variable
[4] /*p*/, variable
[5] /*rv*/, variable
[7]) /*new MMSignature*/;
845 variable
[2] = variable
[7] /*res=*/;
846 /* Register variable[7]: Result */
847 variable
[7] = CALL_static_type___MMSignature___closures( variable
[2] /*res*/)( variable
[2] /*res*/) /*MMSignature::closures*/;
848 CALL_abstract_collection___SimpleCollection___add_all(variable
[7])(variable
[7], variable
[6] /*clos*/) /*SimpleCollection::add_all*/;
850 variable
[2] = variable
[0] /*res=*/;
852 ATTR_static_type___MMSignature____not_for_self_cache(variable
[0]) /*MMSignature::_not_for_self_cache*/ = variable
[2] /*res*/;
853 variable
[1] = variable
[2] /*res*/;
855 return_label23
: while(false);
856 tracehead
= trace
.prev
;
859 void static_type___MMSignature___init(val_t self
, val_t param0
, val_t param1
, val_t param2
, int* init_table
) {
860 struct trace_t trace
= {NULL
, NULL
, 216, LOCATE_static_type___MMSignature___init
};
862 struct WBT_
**closurevariable
= NULL
;
863 trace
.prev
= tracehead
; tracehead
= &trace
;
864 trace
.file
= LOCATE_static_type
;
865 /* Register variable[0]: Local variable */
867 /* Register variable[1]: Local variable */
868 variable
[1] = param0
;
869 /* Register variable[2]: Local variable */
870 variable
[2] = param1
;
871 /* Register variable[3]: Local variable */
872 variable
[3] = param2
;
873 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMSignature
].i
]) return;
874 /* Register variable[4]: Method return value and escape marker */
875 /* Register variable[5]: Result */
876 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*params*/ == NIT_NULL
/*null*/) || (( variable
[1] /*params*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*params*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*params*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*params*/)( variable
[1] /*params*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
877 if (!UNTAG_Bool(variable
[5])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature___init
, LOCATE_static_type
, 218); nit_exit(1);}
878 ATTR_static_type___MMSignature____params(variable
[0]) /*MMSignature::_params*/ = variable
[1] /*params*/;
879 ATTR_static_type___MMSignature____return_type(variable
[0]) /*MMSignature::_return_type*/ = variable
[2] /*return_type*/;
880 ATTR_static_type___MMSignature____recv(variable
[0]) /*MMSignature::_recv*/ = variable
[3] /*r*/;
881 return_label26
: while(false);
882 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMSignature
].i
] = 1;
883 tracehead
= trace
.prev
;
886 val_t
static_type___MMClosure___signature(val_t self
) {
887 struct trace_t trace
= {NULL
, NULL
, 227, LOCATE_static_type___MMClosure___signature
};
888 val_t
*variable
= NULL
;
889 struct WBT_
**closurevariable
= NULL
;
890 trace
.prev
= tracehead
; tracehead
= &trace
;
891 trace
.file
= LOCATE_static_type
;
892 tracehead
= trace
.prev
;
893 return ATTR_static_type___MMClosure____signature( self
) /*MMClosure::_signature*/;
895 val_t
static_type___MMClosure___is_break(val_t self
) {
896 struct trace_t trace
= {NULL
, NULL
, 230, LOCATE_static_type___MMClosure___is_break
};
897 val_t
*variable
= NULL
;
898 struct WBT_
**closurevariable
= NULL
;
899 trace
.prev
= tracehead
; tracehead
= &trace
;
900 trace
.file
= LOCATE_static_type
;
901 tracehead
= trace
.prev
;
902 return ATTR_static_type___MMClosure____is_break( self
) /*MMClosure::_is_break*/;
904 val_t
static_type___MMClosure___is_optional(val_t self
) {
905 struct trace_t trace
= {NULL
, NULL
, 234, LOCATE_static_type___MMClosure___is_optional
};
906 val_t
*variable
= NULL
;
907 struct WBT_
**closurevariable
= NULL
;
908 trace
.prev
= tracehead
; tracehead
= &trace
;
909 trace
.file
= LOCATE_static_type
;
910 tracehead
= trace
.prev
;
911 return ATTR_static_type___MMClosure____is_optional( self
) /*MMClosure::_is_optional*/;
913 val_t
static_type___MMClosure___adaptation_to(val_t self
, val_t param0
) {
914 struct trace_t trace
= {NULL
, NULL
, 238, LOCATE_static_type___MMClosure___adaptation_to
};
916 struct WBT_
**closurevariable
= NULL
;
917 trace
.prev
= tracehead
; tracehead
= &trace
;
918 trace
.file
= LOCATE_static_type
;
919 /* Register variable[0]: Local variable */
921 /* Register variable[1]: Local variable */
922 variable
[1] = param0
;
923 /* Register variable[2]: Method return value and escape marker */
924 /* Register variable[3]: Result */
925 variable
[3] = ATTR_static_type___MMClosure____signature(variable
[0]) /*MMClosure::_signature*/;
926 /* Register variable[3]: Result */
927 variable
[3] = CALL_static_type___MMSignature___adaptation_to(variable
[3])(variable
[3], variable
[1] /*r*/) /*MMSignature::adaptation_to*/;
928 /* Register variable[4]: Result */
929 variable
[4] = ATTR_static_type___MMClosure____is_break(variable
[0]) /*MMClosure::_is_break*/;
930 /* Register variable[5]: Result */
931 variable
[5] = ATTR_static_type___MMClosure____is_optional(variable
[0]) /*MMClosure::_is_optional*/;
932 /* Register variable[3]: Result */
933 variable
[3] = NEW_MMClosure_static_type___MMClosure___init(variable
[3], variable
[4], variable
[5]) /*new MMClosure*/;
934 variable
[2] = variable
[3];
936 return_label27
: while(false);
937 tracehead
= trace
.prev
;
940 void static_type___MMClosure___init(val_t self
, val_t param0
, val_t param1
, val_t param2
, int* init_table
) {
941 struct trace_t trace
= {NULL
, NULL
, 244, LOCATE_static_type___MMClosure___init
};
943 struct WBT_
**closurevariable
= NULL
;
944 trace
.prev
= tracehead
; tracehead
= &trace
;
945 trace
.file
= LOCATE_static_type
;
946 /* Register variable[0]: Local variable */
948 /* Register variable[1]: Local variable */
949 variable
[1] = param0
;
950 /* Register variable[2]: Local variable */
951 variable
[2] = param1
;
952 /* Register variable[3]: Local variable */
953 variable
[3] = param2
;
954 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMClosure
].i
]) return;
955 /* Register variable[4]: Method return value and escape marker */
956 ATTR_static_type___MMClosure____signature(variable
[0]) /*MMClosure::_signature*/ = variable
[1] /*s*/;
957 ATTR_static_type___MMClosure____is_break(variable
[0]) /*MMClosure::_is_break*/ = variable
[2] /*is_break*/;
958 ATTR_static_type___MMClosure____is_optional(variable
[0]) /*MMClosure::_is_optional*/ = variable
[3] /*is_optional*/;
959 return_label28
: while(false);
960 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMClosure
].i
] = 1;
961 tracehead
= trace
.prev
;
964 val_t
static_type___MMClosure___not_for_self(val_t self
) {
965 struct trace_t trace
= {NULL
, NULL
, 251, LOCATE_static_type___MMClosure___not_for_self
};
967 struct WBT_
**closurevariable
= NULL
;
968 trace
.prev
= tracehead
; tracehead
= &trace
;
969 trace
.file
= LOCATE_static_type
;
970 /* Register variable[0]: Local variable */
972 /* Register variable[1]: Method return value and escape marker */
973 /* Register variable[2]: Local variable */
974 /* Register variable[3]: Result */
975 variable
[3] = ATTR_static_type___MMClosure____signature(variable
[0]) /*MMClosure::_signature*/;
976 /* Register variable[3]: Result */
977 variable
[3] = CALL_static_type___MMSignature___not_for_self(variable
[3])(variable
[3]) /*MMSignature::not_for_self*/;
978 variable
[2] = variable
[3];
979 /* Register variable[3]: Result */
980 variable
[3] = ATTR_static_type___MMClosure____signature(variable
[0]) /*MMClosure::_signature*/;
981 /* Register variable[3]: Result */
982 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[2] /*sig*/ == variable
[3]) || (( variable
[2] /*sig*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[2] /*sig*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[2] /*sig*/,variable
[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[2] /*sig*/)( variable
[2] /*sig*/, variable
[3]) /*Object::==*/)))))));
983 if (UNTAG_Bool(variable
[3])) { /*if*/
984 /* Register variable[3]: Result */
985 variable
[3] = ATTR_static_type___MMClosure____is_break(variable
[0]) /*MMClosure::_is_break*/;
986 /* Register variable[4]: Result */
987 variable
[4] = ATTR_static_type___MMClosure____is_optional(variable
[0]) /*MMClosure::_is_optional*/;
988 /* Register variable[3]: Result */
989 variable
[3] = NEW_MMClosure_static_type___MMClosure___init( variable
[2] /*sig*/, variable
[3], variable
[4]) /*new MMClosure*/;
990 variable
[1] = variable
[3];
993 variable
[1] = variable
[0];
996 return_label29
: while(false);
997 tracehead
= trace
.prev
;
1000 val_t
static_type___MMClosure_____l(val_t self
, val_t param0
) {
1001 struct trace_t trace
= {NULL
, NULL
, 261, LOCATE_static_type___MMClosure_____l
};
1003 struct WBT_
**closurevariable
= NULL
;
1004 trace
.prev
= tracehead
; tracehead
= &trace
;
1005 trace
.file
= LOCATE_static_type
;
1006 /* Register variable[0]: Local variable */
1008 /* Register variable[1]: Local variable */
1009 variable
[1] = param0
;
1010 /* Register variable[2]: Method return value and escape marker */
1011 /* Register variable[3]: Result */
1012 variable
[3] = CALL_static_type___MMClosure___is_optional( variable
[1] /*c*/)( variable
[1] /*c*/) /*MMClosure::is_optional*/;
1013 /* Ensure var variable[3]: Left 'and' operand*/
1014 if (UNTAG_Bool(variable
[3])) { /* and */
1015 /* Register variable[3]: Result */
1016 variable
[3] = CALL_static_type___MMClosure___is_optional(variable
[0])(variable
[0]) /*MMClosure::is_optional*/;
1017 variable
[3] = TAG_Bool(!UNTAG_Bool(variable
[3]));
1019 /* Register variable[3]: Result */
1020 if (UNTAG_Bool(variable
[3])) { /*if*/
1021 variable
[2] = TAG_Bool(false);
1022 goto return_label30
;
1024 /* Register variable[3]: Result */
1025 variable
[3] = CALL_static_type___MMClosure___is_break( variable
[1] /*c*/)( variable
[1] /*c*/) /*MMClosure::is_break*/;
1026 variable
[3] = TAG_Bool(!UNTAG_Bool(variable
[3])) /* Ensure var: Left 'and' operand*/;
1027 if (UNTAG_Bool(variable
[3])) { /* and */
1028 /* Register variable[3]: Result */
1029 variable
[3] = CALL_static_type___MMClosure___is_break(variable
[0])(variable
[0]) /*MMClosure::is_break*/;
1031 /* Register variable[3]: Result */
1032 if (UNTAG_Bool(variable
[3])) { /*if*/
1033 variable
[2] = TAG_Bool(false);
1034 goto return_label30
;
1036 /* Register variable[3]: Result */
1037 variable
[3] = CALL_static_type___MMClosure___signature( variable
[1] /*c*/)( variable
[1] /*c*/) /*MMClosure::signature*/;
1038 /* Register variable[4]: Result */
1039 variable
[4] = CALL_static_type___MMClosure___signature(variable
[0])(variable
[0]) /*MMClosure::signature*/;
1040 /* Register variable[3]: Result */
1041 variable
[3] = CALL_static_type___MMSignature_____l(variable
[3])(variable
[3], variable
[4]) /*MMSignature::<*/;
1042 variable
[2] = variable
[3];
1043 goto return_label30
;
1044 return_label30
: while(false);
1045 tracehead
= trace
.prev
;
1048 val_t
static_type___MMAncestor___to_s(val_t self
) {
1049 struct trace_t trace
= {NULL
, NULL
, 288, LOCATE_static_type___MMAncestor___to_s
};
1051 struct WBT_
**closurevariable
= NULL
;
1052 trace
.prev
= tracehead
; tracehead
= &trace
;
1053 trace
.file
= LOCATE_static_type
;
1054 /* Register variable[0]: Local variable */
1056 /* Register variable[1]: Method return value and escape marker */
1057 /* Register variable[2]: Result */
1058 variable
[2] = CALL_static_type___MMAncestor___stype(variable
[0])(variable
[0]) /*MMAncestor::stype*/;
1059 /* Register variable[2]: Result */
1060 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::==*/)))));
1061 if (UNTAG_Bool(variable
[2])) { /*if*/
1062 /* Register variable[2]: Result */
1063 variable
[2] = CALL_static_type___MMAncestor___local_class(variable
[0])(variable
[0]) /*MMAncestor::local_class*/;
1064 /* Register variable[2]: Result */
1065 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*MMLocalClass::to_s*/;
1066 variable
[1] = variable
[2];
1067 goto return_label31
;
1069 /* Register variable[2]: Result */
1070 variable
[2] = CALL_static_type___MMAncestor___stype(variable
[0])(variable
[0]) /*MMAncestor::stype*/;
1071 /* Register variable[2]: Result */
1072 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*Object::to_s*/;
1073 variable
[1] = variable
[2];
1074 goto return_label31
;
1076 return_label31
: while(false);
1077 tracehead
= trace
.prev
;
1080 val_t
static_type___MMAncestor___stype(val_t self
) {
1081 struct trace_t trace
= {NULL
, NULL
, 271, LOCATE_static_type___MMAncestor___stype
};
1082 val_t
*variable
= NULL
;
1083 struct WBT_
**closurevariable
= NULL
;
1084 trace
.prev
= tracehead
; tracehead
= &trace
;
1085 trace
.file
= LOCATE_static_type
;
1086 tracehead
= trace
.prev
;
1087 return ATTR_static_type___MMAncestor____stype( self
) /*MMAncestor::_stype*/;
1089 void static_type___MMAncestor___stype__eq(val_t self
, val_t param0
) {
1090 struct trace_t trace
= {NULL
, NULL
, 271, LOCATE_static_type___MMAncestor___stype__eq
};
1091 val_t
*variable
= NULL
;
1092 struct WBT_
**closurevariable
= NULL
;
1093 trace
.prev
= tracehead
; tracehead
= &trace
;
1094 trace
.file
= LOCATE_static_type
;
1095 ATTR_static_type___MMAncestor____stype( self
) /*MMAncestor::_stype*/ = param0
;
1096 tracehead
= trace
.prev
;
1099 val_t
static_type___MMAncestor___inheriter(val_t self
) {
1100 struct trace_t trace
= {NULL
, NULL
, 274, LOCATE_static_type___MMAncestor___inheriter
};
1101 val_t
*variable
= NULL
;
1102 struct WBT_
**closurevariable
= NULL
;
1103 trace
.prev
= tracehead
; tracehead
= &trace
;
1104 trace
.file
= LOCATE_static_type
;
1105 tracehead
= trace
.prev
;
1106 return ATTR_static_type___MMAncestor____inheriter( self
) /*MMAncestor::_inheriter*/;
1108 void static_type___MMAncestor___inheriter__eq(val_t self
, val_t param0
) {
1109 struct trace_t trace
= {NULL
, NULL
, 274, LOCATE_static_type___MMAncestor___inheriter__eq
};
1110 val_t
*variable
= NULL
;
1111 struct WBT_
**closurevariable
= NULL
;
1112 trace
.prev
= tracehead
; tracehead
= &trace
;
1113 trace
.file
= LOCATE_static_type
;
1114 ATTR_static_type___MMAncestor____inheriter( self
) /*MMAncestor::_inheriter*/ = param0
;
1115 tracehead
= trace
.prev
;
1118 val_t
static_type___MMAncestor___is_reffinement(val_t self
) {
1119 struct trace_t trace
= {NULL
, NULL
, 277, LOCATE_static_type___MMAncestor___is_reffinement
};
1121 struct WBT_
**closurevariable
= NULL
;
1122 trace
.prev
= tracehead
; tracehead
= &trace
;
1123 trace
.file
= LOCATE_static_type
;
1124 /* Register variable[0]: Local variable */
1126 /* Register variable[1]: Method return value and escape marker */
1127 /* Register variable[2]: Result */
1128 variable
[2] = CALL_static_type___MMAncestor___stype(variable
[0])(variable
[0]) /*MMAncestor::stype*/;
1129 /* Register variable[2]: Result */
1130 variable
[2] = CALL_static_type___MMType___module(variable
[2])(variable
[2]) /*MMType::module*/;
1131 /* Register variable[3]: Result */
1132 variable
[3] = CALL_static_type___MMAncestor___stype(variable
[0])(variable
[0]) /*MMAncestor::stype*/;
1133 /* Register variable[3]: Result */
1134 variable
[3] = CALL_static_type___MMType___module(variable
[3])(variable
[3]) /*MMType::module*/;
1135 /* Register variable[2]: Result */
1136 variable
[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[2] == variable
[3]) || ((variable
[2] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[2])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[2],variable
[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[2])(variable
[2], variable
[3]) /*Object::==*/)))))));
1137 variable
[1] = variable
[2];
1138 goto return_label32
;
1139 return_label32
: while(false);
1140 tracehead
= trace
.prev
;
1143 val_t
static_type___MMAncestor___is_specialisation(val_t self
) {
1144 struct trace_t trace
= {NULL
, NULL
, 281, LOCATE_static_type___MMAncestor___is_specialisation
};
1146 struct WBT_
**closurevariable
= NULL
;
1147 trace
.prev
= tracehead
; tracehead
= &trace
;
1148 trace
.file
= LOCATE_static_type
;
1149 /* Register variable[0]: Local variable */
1151 /* Register variable[1]: Method return value and escape marker */
1152 /* Register variable[2]: Result */
1153 variable
[2] = CALL_static_type___MMAncestor___stype(variable
[0])(variable
[0]) /*MMAncestor::stype*/;
1154 /* Register variable[2]: Result */
1155 variable
[2] = CALL_static_type___MMType___local_class(variable
[2])(variable
[2]) /*MMType::local_class*/;
1156 /* Register variable[2]: Result */
1157 variable
[2] = CALL_abstractmetamodel___MMLocalClass___global(variable
[2])(variable
[2]) /*MMLocalClass::global*/;
1158 /* Register variable[3]: Result */
1159 variable
[3] = CALL_static_type___MMAncestor___inheriter(variable
[0])(variable
[0]) /*MMAncestor::inheriter*/;
1160 /* Register variable[3]: Result */
1161 variable
[3] = CALL_static_type___MMType___local_class(variable
[3])(variable
[3]) /*MMType::local_class*/;
1162 /* Register variable[3]: Result */
1163 variable
[3] = CALL_abstractmetamodel___MMLocalClass___global(variable
[3])(variable
[3]) /*MMLocalClass::global*/;
1164 /* Register variable[2]: Result */
1165 variable
[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[2] == variable
[3]) || ((variable
[2] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[2])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[2],variable
[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[2])(variable
[2], variable
[3]) /*Object::==*/)))))));
1166 variable
[1] = variable
[2];
1167 goto return_label33
;
1168 return_label33
: while(false);
1169 tracehead
= trace
.prev
;
1172 val_t
static_type___MMAncestor___local_class(val_t self
) {
1173 struct trace_t trace
= {NULL
, NULL
, 285, LOCATE_static_type___MMAncestor___local_class
};
1174 val_t
*variable
= NULL
;
1175 struct WBT_
**closurevariable
= NULL
;
1176 trace
.prev
= tracehead
; tracehead
= &trace
;
1177 trace
.file
= LOCATE_static_type
;
1178 fprintf(stderr
, "Deferred method called");
1179 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 285);
1181 tracehead
= trace
.prev
;
1184 void static_type___MMAncestor___init(val_t self
, int* init_table
) {
1185 struct trace_t trace
= {NULL
, NULL
, 0, LOCATE_static_type___MMAncestor___init
};
1186 val_t
*variable
= NULL
;
1187 struct WBT_
**closurevariable
= NULL
;
1188 trace
.prev
= tracehead
; tracehead
= &trace
;
1189 trace
.file
= LOCATE_static_type
;
1190 tracehead
= trace
.prev
;
1193 val_t
static_type___MMType___module(val_t self
) {
1194 struct trace_t trace
= {NULL
, NULL
, 301, LOCATE_static_type___MMType___module
};
1195 val_t
*variable
= NULL
;
1196 struct WBT_
**closurevariable
= NULL
;
1197 trace
.prev
= tracehead
; tracehead
= &trace
;
1198 trace
.file
= LOCATE_static_type
;
1199 fprintf(stderr
, "Deferred method called");
1200 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 301);
1202 tracehead
= trace
.prev
;
1205 val_t
static_type___MMType___local_class(val_t self
) {
1206 struct trace_t trace
= {NULL
, NULL
, 304, LOCATE_static_type___MMType___local_class
};
1207 val_t
*variable
= NULL
;
1208 struct WBT_
**closurevariable
= NULL
;
1209 trace
.prev
= tracehead
; tracehead
= &trace
;
1210 trace
.file
= LOCATE_static_type
;
1211 fprintf(stderr
, "Deferred method called");
1212 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 304);
1214 tracehead
= trace
.prev
;
1217 val_t
static_type___MMType___is_valid(val_t self
) {
1218 struct trace_t trace
= {NULL
, NULL
, 307, LOCATE_static_type___MMType___is_valid
};
1220 struct WBT_
**closurevariable
= NULL
;
1221 trace
.prev
= tracehead
; tracehead
= &trace
;
1222 trace
.file
= LOCATE_static_type
;
1223 /* Register variable[0]: Local variable */
1225 /* Register variable[1]: Method return value and escape marker */
1226 variable
[1] = TAG_Bool(true);
1227 goto return_label34
;
1228 return_label34
: while(false);
1229 tracehead
= trace
.prev
;
1232 val_t
static_type___MMType_____l(val_t self
, val_t param0
) {
1233 struct trace_t trace
= {NULL
, NULL
, 311, LOCATE_static_type___MMType_____l
};
1234 val_t
*variable
= NULL
;
1235 struct WBT_
**closurevariable
= NULL
;
1236 trace
.prev
= tracehead
; tracehead
= &trace
;
1237 trace
.file
= LOCATE_static_type
;
1238 fprintf(stderr
, "Deferred method called");
1239 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 311);
1241 tracehead
= trace
.prev
;
1244 val_t
static_type___MMType___is_supertype(val_t self
, val_t param0
) {
1245 struct trace_t trace
= {NULL
, NULL
, 314, LOCATE_static_type___MMType___is_supertype
};
1246 val_t
*variable
= NULL
;
1247 struct WBT_
**closurevariable
= NULL
;
1248 trace
.prev
= tracehead
; tracehead
= &trace
;
1249 trace
.file
= LOCATE_static_type
;
1250 fprintf(stderr
, "Deferred method called");
1251 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 314);
1253 tracehead
= trace
.prev
;
1256 val_t
static_type___MMType___for_module(val_t self
, val_t param0
) {
1257 struct trace_t trace
= {NULL
, NULL
, 319, LOCATE_static_type___MMType___for_module
};
1258 val_t
*variable
= NULL
;
1259 struct WBT_
**closurevariable
= NULL
;
1260 trace
.prev
= tracehead
; tracehead
= &trace
;
1261 trace
.file
= LOCATE_static_type
;
1262 fprintf(stderr
, "Deferred method called");
1263 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 319);
1265 tracehead
= trace
.prev
;
1268 val_t
static_type___MMType___adapt_to(val_t self
, val_t param0
) {
1269 struct trace_t trace
= {NULL
, NULL
, 322, LOCATE_static_type___MMType___adapt_to
};
1270 val_t
*variable
= NULL
;
1271 struct WBT_
**closurevariable
= NULL
;
1272 trace
.prev
= tracehead
; tracehead
= &trace
;
1273 trace
.file
= LOCATE_static_type
;
1274 fprintf(stderr
, "Deferred method called");
1275 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 322);
1277 tracehead
= trace
.prev
;
1280 val_t
static_type___MMType___upcast_for(val_t self
, val_t param0
) {
1281 struct trace_t trace
= {NULL
, NULL
, 326, LOCATE_static_type___MMType___upcast_for
};
1282 val_t
*variable
= NULL
;
1283 struct WBT_
**closurevariable
= NULL
;
1284 trace
.prev
= tracehead
; tracehead
= &trace
;
1285 trace
.file
= LOCATE_static_type
;
1286 fprintf(stderr
, "Deferred method called");
1287 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 326);
1289 tracehead
= trace
.prev
;
1292 val_t
static_type___MMType___not_for_self(val_t self
) {
1293 struct trace_t trace
= {NULL
, NULL
, 348, LOCATE_static_type___MMType___not_for_self
};
1295 struct WBT_
**closurevariable
= NULL
;
1296 trace
.prev
= tracehead
; tracehead
= &trace
;
1297 trace
.file
= LOCATE_static_type
;
1298 /* Register variable[0]: Local variable */
1300 /* Register variable[1]: Method return value and escape marker */
1301 variable
[1] = variable
[0];
1302 goto return_label35
;
1303 return_label35
: while(false);
1304 tracehead
= trace
.prev
;
1307 val_t
static_type___MMType___is_nullable(val_t self
) {
1308 struct trace_t trace
= {NULL
, NULL
, 355, LOCATE_static_type___MMType___is_nullable
};
1310 struct WBT_
**closurevariable
= NULL
;
1311 trace
.prev
= tracehead
; tracehead
= &trace
;
1312 trace
.file
= LOCATE_static_type
;
1313 /* Register variable[0]: Local variable */
1315 /* Register variable[1]: Method return value and escape marker */
1316 variable
[1] = TAG_Bool(false);
1317 goto return_label36
;
1318 return_label36
: while(false);
1319 tracehead
= trace
.prev
;
1322 val_t
static_type___MMType___as_nullable(val_t self
) {
1323 struct trace_t trace
= {NULL
, NULL
, 358, LOCATE_static_type___MMType___as_nullable
};
1325 struct WBT_
**closurevariable
= NULL
;
1326 trace
.prev
= tracehead
; tracehead
= &trace
;
1327 trace
.file
= LOCATE_static_type
;
1328 /* Register variable[0]: Local variable */
1330 /* Register variable[1]: Method return value and escape marker */
1331 /* Register variable[2]: Local variable */
1332 /* Register variable[3]: Result */
1333 variable
[3] = ATTR_static_type___MMType____as_nullable_cache(variable
[0]) /*MMType::_as_nullable_cache*/;
1334 variable
[2] = variable
[3];
1335 /* Register variable[3]: Result */
1336 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[2] /*cache*/ == NIT_NULL
/*null*/) || (( variable
[2] /*cache*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[2] /*cache*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[2] /*cache*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[2] /*cache*/)( variable
[2] /*cache*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1337 if (UNTAG_Bool(variable
[3])) { /*if*/
1338 variable
[1] = variable
[2] /*cache*/;
1339 goto return_label37
;
1341 /* Register variable[3]: Local variable */
1342 /* Register variable[4]: Result */
1343 variable
[4] = NEW_MMNullableType_static_type___MMNullableType___init(variable
[0]) /*new MMNullableType*/;
1344 variable
[3] = variable
[4];
1345 ATTR_static_type___MMType____as_nullable_cache(variable
[0]) /*MMType::_as_nullable_cache*/ = variable
[3] /*res*/;
1346 variable
[1] = variable
[3] /*res*/;
1347 goto return_label37
;
1348 return_label37
: while(false);
1349 tracehead
= trace
.prev
;
1352 val_t
static_type___MMType___as_notnull(val_t self
) {
1353 struct trace_t trace
= {NULL
, NULL
, 368, LOCATE_static_type___MMType___as_notnull
};
1355 struct WBT_
**closurevariable
= NULL
;
1356 trace
.prev
= tracehead
; tracehead
= &trace
;
1357 trace
.file
= LOCATE_static_type
;
1358 /* Register variable[0]: Local variable */
1360 /* Register variable[1]: Method return value and escape marker */
1361 variable
[1] = variable
[0];
1362 goto return_label38
;
1363 return_label38
: while(false);
1364 tracehead
= trace
.prev
;
1367 void static_type___MMType___init(val_t self
, int* init_table
) {
1368 struct trace_t trace
= {NULL
, NULL
, 0, LOCATE_static_type___MMType___init
};
1369 val_t
*variable
= NULL
;
1370 struct WBT_
**closurevariable
= NULL
;
1371 trace
.prev
= tracehead
; tracehead
= &trace
;
1372 trace
.file
= LOCATE_static_type
;
1373 tracehead
= trace
.prev
;
1376 val_t
static_type___MMNullableType___to_s(val_t self
) {
1377 struct trace_t trace
= {NULL
, NULL
, 391, LOCATE_static_type___MMNullableType___to_s
};
1378 static val_t once_value_40
= NIT_NULL
; /* Once value for string variable[3]*/
1379 static val_t once_value_41
= NIT_NULL
; /* Once value for string variable[3]*/
1381 struct WBT_
**closurevariable
= NULL
;
1382 trace
.prev
= tracehead
; tracehead
= &trace
;
1383 trace
.file
= LOCATE_static_type
;
1384 /* Register variable[0]: Local variable */
1386 /* Register variable[1]: Method return value and escape marker */
1387 variable
[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1388 /* Register variable[3]: Once String constant */
1389 if (once_value_40
!= NIT_NULL
) variable
[3] = once_value_40
;
1391 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("nullable "), TAG_Int(9)) /*new String*/;
1392 once_value_40
= variable
[3];
1394 /* Register variable[3]: Result */
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]: Result */
1398 variable
[3] = ATTR_static_type___MMNullableType____base_type(variable
[0]) /*MMNullableType::_base_type*/;
1399 /* Ensure var variable[3]: super-string element*/
1400 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/) /*AbstractArray::add*/;
1401 /* Register variable[3]: Once String constant */
1402 if (once_value_41
!= NIT_NULL
) variable
[3] = once_value_41
;
1404 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1405 once_value_41
= variable
[3];
1407 /* Register variable[3]: Result */
1408 /* Ensure var variable[3]: super-string element*/
1409 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
1410 /* Register variable[2]: Result */
1411 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*Object::to_s*/;
1412 variable
[1] = variable
[2];
1413 goto return_label39
;
1414 return_label39
: while(false);
1415 tracehead
= trace
.prev
;
1418 val_t
static_type___MMNullableType___module(val_t self
) {
1419 struct trace_t trace
= {NULL
, NULL
, 382, LOCATE_static_type___MMNullableType___module
};
1421 struct WBT_
**closurevariable
= NULL
;
1422 trace
.prev
= tracehead
; tracehead
= &trace
;
1423 trace
.file
= LOCATE_static_type
;
1424 /* Register variable[0]: Local variable */
1426 /* Register variable[1]: Method return value and escape marker */
1427 /* Register variable[2]: Result */
1428 variable
[2] = ATTR_static_type___MMNullableType____base_type(variable
[0]) /*MMNullableType::_base_type*/;
1429 /* Register variable[2]: Result */
1430 variable
[2] = CALL_static_type___MMType___module(variable
[2])(variable
[2]) /*MMType::module*/;
1431 variable
[1] = variable
[2];
1432 goto return_label42
;
1433 return_label42
: while(false);
1434 tracehead
= trace
.prev
;
1437 val_t
static_type___MMNullableType___local_class(val_t self
) {
1438 struct trace_t trace
= {NULL
, NULL
, 384, LOCATE_static_type___MMNullableType___local_class
};
1440 struct WBT_
**closurevariable
= NULL
;
1441 trace
.prev
= tracehead
; tracehead
= &trace
;
1442 trace
.file
= LOCATE_static_type
;
1443 /* Register variable[0]: Local variable */
1445 /* Register variable[1]: Method return value and escape marker */
1446 /* Register variable[2]: Result */
1447 variable
[2] = ATTR_static_type___MMNullableType____base_type(variable
[0]) /*MMNullableType::_base_type*/;
1448 /* Register variable[2]: Result */
1449 variable
[2] = CALL_static_type___MMType___local_class(variable
[2])(variable
[2]) /*MMType::local_class*/;
1450 variable
[1] = variable
[2];
1451 goto return_label43
;
1452 return_label43
: while(false);
1453 tracehead
= trace
.prev
;
1456 val_t
static_type___MMNullableType___is_valid(val_t self
) {
1457 struct trace_t trace
= {NULL
, NULL
, 376, LOCATE_static_type___MMNullableType___is_valid
};
1459 struct WBT_
**closurevariable
= NULL
;
1460 trace
.prev
= tracehead
; tracehead
= &trace
;
1461 trace
.file
= LOCATE_static_type
;
1462 /* Register variable[0]: Local variable */
1464 /* Register variable[1]: Method return value and escape marker */
1465 /* Register variable[2]: Result */
1466 variable
[2] = ATTR_static_type___MMNullableType____base_type(variable
[0]) /*MMNullableType::_base_type*/;
1467 /* Register variable[2]: Result */
1468 variable
[2] = CALL_static_type___MMType___is_valid(variable
[2])(variable
[2]) /*MMType::is_valid*/;
1469 variable
[1] = variable
[2];
1470 goto return_label44
;
1471 return_label44
: while(false);
1472 tracehead
= trace
.prev
;
1475 val_t
static_type___MMNullableType_____l(val_t self
, val_t param0
) {
1476 struct trace_t trace
= {NULL
, NULL
, 386, LOCATE_static_type___MMNullableType_____l
};
1478 struct WBT_
**closurevariable
= NULL
;
1479 trace
.prev
= tracehead
; tracehead
= &trace
;
1480 trace
.file
= LOCATE_static_type
;
1481 /* Register variable[0]: Local variable */
1483 /* Register variable[1]: Local variable */
1484 variable
[1] = param0
;
1485 /* Register variable[2]: Method return value and escape marker */
1486 /* Register variable[3]: Result */
1487 variable
[3] = TAG_Bool(( variable
[1] /*t*/==NIT_NULL
) || VAL_ISA( variable
[1] /*t*/, COLOR_MMNullableType
, ID_MMNullableType
)) /*cast MMNullableType*/;
1488 /* Ensure var variable[3]: Left 'and' operand*/
1489 if (UNTAG_Bool(variable
[3])) { /* and */
1490 /* Register variable[3]: Result */
1491 variable
[3] = ATTR_static_type___MMNullableType____base_type(variable
[0]) /*MMNullableType::_base_type*/;
1492 /* Register variable[4]: Result */
1493 variable
[4] = CALL_static_type___MMType___as_notnull( variable
[1] /*t*/)( variable
[1] /*t*/) /*MMNullableType::as_notnull*/;
1494 /* Register variable[3]: Result */
1495 variable
[3] = CALL_static_type___MMType_____l(variable
[3])(variable
[3], variable
[4]) /*MMType::<*/;
1497 /* Register variable[3]: Result */
1498 variable
[2] = variable
[3];
1499 goto return_label45
;
1500 return_label45
: while(false);
1501 tracehead
= trace
.prev
;
1504 val_t
static_type___MMNullableType___is_supertype(val_t self
, val_t param0
) {
1505 struct trace_t trace
= {NULL
, NULL
, 396, LOCATE_static_type___MMNullableType___is_supertype
};
1507 struct WBT_
**closurevariable
= NULL
;
1508 trace
.prev
= tracehead
; tracehead
= &trace
;
1509 trace
.file
= LOCATE_static_type
;
1510 /* Register variable[0]: Local variable */
1512 /* Register variable[1]: Local variable */
1513 variable
[1] = param0
;
1514 /* Register variable[2]: Method return value and escape marker */
1515 /* Register variable[3]: Result */
1516 variable
[3] = ATTR_static_type___MMNullableType____base_type(variable
[0]) /*MMNullableType::_base_type*/;
1517 /* Register variable[3]: Result */
1518 variable
[3] = CALL_static_type___MMType___is_supertype(variable
[3])(variable
[3], variable
[1] /*t*/) /*MMType::is_supertype*/;
1519 variable
[2] = variable
[3];
1520 goto return_label46
;
1521 return_label46
: while(false);
1522 tracehead
= trace
.prev
;
1525 val_t
static_type___MMNullableType___for_module(val_t self
, val_t param0
) {
1526 struct trace_t trace
= {NULL
, NULL
, 401, LOCATE_static_type___MMNullableType___for_module
};
1528 struct WBT_
**closurevariable
= NULL
;
1529 trace
.prev
= tracehead
; tracehead
= &trace
;
1530 trace
.file
= LOCATE_static_type
;
1531 /* Register variable[0]: Local variable */
1533 /* Register variable[1]: Local variable */
1534 variable
[1] = param0
;
1535 /* Register variable[2]: Method return value and escape marker */
1536 /* Register variable[3]: Result */
1537 variable
[3] = ATTR_static_type___MMNullableType____base_type(variable
[0]) /*MMNullableType::_base_type*/;
1538 /* Register variable[3]: Result */
1539 variable
[3] = CALL_static_type___MMType___for_module(variable
[3])(variable
[3], variable
[1] /*mod*/) /*MMType::for_module*/;
1540 /* Register variable[3]: Result */
1541 variable
[3] = CALL_static_type___MMType___as_nullable(variable
[3])(variable
[3]) /*MMType::as_nullable*/;
1542 variable
[2] = variable
[3];
1543 goto return_label47
;
1544 return_label47
: while(false);
1545 tracehead
= trace
.prev
;
1548 val_t
static_type___MMNullableType___adapt_to(val_t self
, val_t param0
) {
1549 struct trace_t trace
= {NULL
, NULL
, 406, LOCATE_static_type___MMNullableType___adapt_to
};
1551 struct WBT_
**closurevariable
= NULL
;
1552 trace
.prev
= tracehead
; tracehead
= &trace
;
1553 trace
.file
= LOCATE_static_type
;
1554 /* Register variable[0]: Local variable */
1556 /* Register variable[1]: Local variable */
1557 variable
[1] = param0
;
1558 /* Register variable[2]: Method return value and escape marker */
1559 /* Register variable[3]: Result */
1560 variable
[3] = ATTR_static_type___MMNullableType____base_type(variable
[0]) /*MMNullableType::_base_type*/;
1561 /* Register variable[3]: Result */
1562 variable
[3] = CALL_static_type___MMType___adapt_to(variable
[3])(variable
[3], variable
[1] /*recv*/) /*MMType::adapt_to*/;
1563 /* Register variable[3]: Result */
1564 variable
[3] = CALL_static_type___MMType___as_nullable(variable
[3])(variable
[3]) /*MMType::as_nullable*/;
1565 variable
[2] = variable
[3];
1566 goto return_label48
;
1567 return_label48
: while(false);
1568 tracehead
= trace
.prev
;
1571 val_t
static_type___MMNullableType___upcast_for(val_t self
, val_t param0
) {
1572 struct trace_t trace
= {NULL
, NULL
, 411, LOCATE_static_type___MMNullableType___upcast_for
};
1574 struct WBT_
**closurevariable
= NULL
;
1575 trace
.prev
= tracehead
; tracehead
= &trace
;
1576 trace
.file
= LOCATE_static_type
;
1577 /* Register variable[0]: Local variable */
1579 /* Register variable[1]: Local variable */
1580 variable
[1] = param0
;
1581 /* Register variable[2]: Method return value and escape marker */
1582 /* Register variable[3]: Result */
1583 variable
[3] = ATTR_static_type___MMNullableType____base_type(variable
[0]) /*MMNullableType::_base_type*/;
1584 /* Register variable[3]: Result */
1585 variable
[3] = CALL_static_type___MMType___upcast_for(variable
[3])(variable
[3], variable
[1] /*c*/) /*MMType::upcast_for*/;
1586 variable
[2] = variable
[3];
1587 goto return_label49
;
1588 return_label49
: while(false);
1589 tracehead
= trace
.prev
;
1592 val_t
static_type___MMNullableType___not_for_self(val_t self
) {
1593 struct trace_t trace
= {NULL
, NULL
, 416, LOCATE_static_type___MMNullableType___not_for_self
};
1595 struct WBT_
**closurevariable
= NULL
;
1596 trace
.prev
= tracehead
; tracehead
= &trace
;
1597 trace
.file
= LOCATE_static_type
;
1598 /* Register variable[0]: Local variable */
1600 /* Register variable[1]: Method return value and escape marker */
1601 /* Register variable[2]: Result */
1602 variable
[2] = ATTR_static_type___MMNullableType____base_type(variable
[0]) /*MMNullableType::_base_type*/;
1603 /* Register variable[2]: Result */
1604 variable
[2] = CALL_static_type___MMType___not_for_self(variable
[2])(variable
[2]) /*MMType::not_for_self*/;
1605 /* Register variable[2]: Result */
1606 variable
[2] = CALL_static_type___MMType___as_nullable(variable
[2])(variable
[2]) /*MMType::as_nullable*/;
1607 variable
[1] = variable
[2];
1608 goto return_label50
;
1609 return_label50
: while(false);
1610 tracehead
= trace
.prev
;
1613 val_t
static_type___MMNullableType___is_nullable(val_t self
) {
1614 struct trace_t trace
= {NULL
, NULL
, 377, LOCATE_static_type___MMNullableType___is_nullable
};
1616 struct WBT_
**closurevariable
= NULL
;
1617 trace
.prev
= tracehead
; tracehead
= &trace
;
1618 trace
.file
= LOCATE_static_type
;
1619 /* Register variable[0]: Local variable */
1621 /* Register variable[1]: Method return value and escape marker */
1622 variable
[1] = TAG_Bool(true);
1623 goto return_label51
;
1624 return_label51
: while(false);
1625 tracehead
= trace
.prev
;
1628 val_t
static_type___MMNullableType___as_nullable(val_t self
) {
1629 struct trace_t trace
= {NULL
, NULL
, 379, LOCATE_static_type___MMNullableType___as_nullable
};
1631 struct WBT_
**closurevariable
= NULL
;
1632 trace
.prev
= tracehead
; tracehead
= &trace
;
1633 trace
.file
= LOCATE_static_type
;
1634 /* Register variable[0]: Local variable */
1636 /* Register variable[1]: Method return value and escape marker */
1637 variable
[1] = variable
[0];
1638 goto return_label52
;
1639 return_label52
: while(false);
1640 tracehead
= trace
.prev
;
1643 val_t
static_type___MMNullableType___as_notnull(val_t self
) {
1644 struct trace_t trace
= {NULL
, NULL
, 378, LOCATE_static_type___MMNullableType___as_notnull
};
1646 struct WBT_
**closurevariable
= NULL
;
1647 trace
.prev
= tracehead
; tracehead
= &trace
;
1648 trace
.file
= LOCATE_static_type
;
1649 /* Register variable[0]: Local variable */
1651 /* Register variable[1]: Method return value and escape marker */
1652 /* Register variable[2]: Result */
1653 variable
[2] = ATTR_static_type___MMNullableType____base_type(variable
[0]) /*MMNullableType::_base_type*/;
1654 variable
[1] = variable
[2];
1655 goto return_label53
;
1656 return_label53
: while(false);
1657 tracehead
= trace
.prev
;
1660 void static_type___MMNullableType___init(val_t self
, val_t param0
, int* init_table
) {
1661 struct trace_t trace
= {NULL
, NULL
, 380, LOCATE_static_type___MMNullableType___init
};
1663 struct WBT_
**closurevariable
= NULL
;
1664 trace
.prev
= tracehead
; tracehead
= &trace
;
1665 trace
.file
= LOCATE_static_type
;
1666 /* Register variable[0]: Local variable */
1668 /* Register variable[1]: Local variable */
1669 variable
[1] = param0
;
1670 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMNullableType
].i
]) return;
1671 /* Register variable[2]: Method return value and escape marker */
1672 ATTR_static_type___MMNullableType____base_type(variable
[0]) /*MMNullableType::_base_type*/ = variable
[1] /*t*/;
1673 return_label54
: while(false);
1674 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMNullableType
].i
] = 1;
1675 tracehead
= trace
.prev
;
1678 val_t
static_type___MMTypeClass___to_s(val_t self
) {
1679 struct trace_t trace
= {NULL
, NULL
, 428, LOCATE_static_type___MMTypeClass___to_s
};
1681 struct WBT_
**closurevariable
= NULL
;
1682 trace
.prev
= tracehead
; tracehead
= &trace
;
1683 trace
.file
= LOCATE_static_type
;
1684 /* Register variable[0]: Local variable */
1686 /* Register variable[1]: Method return value and escape marker */
1687 /* Register variable[2]: Result */
1688 variable
[2] = ATTR_static_type___MMTypeClass____local_class(variable
[0]) /*MMTypeClass::_local_class*/;
1689 /* Register variable[2]: Result */
1690 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*MMLocalClass::to_s*/;
1691 variable
[1] = variable
[2];
1692 goto return_label55
;
1693 return_label55
: while(false);
1694 tracehead
= trace
.prev
;
1697 val_t
static_type___MMTypeClass___module(val_t self
) {
1698 struct trace_t trace
= {NULL
, NULL
, 425, LOCATE_static_type___MMTypeClass___module
};
1700 struct WBT_
**closurevariable
= NULL
;
1701 trace
.prev
= tracehead
; tracehead
= &trace
;
1702 trace
.file
= LOCATE_static_type
;
1703 /* Register variable[0]: Local variable */
1705 /* Register variable[1]: Method return value and escape marker */
1706 /* Register variable[2]: Result */
1707 variable
[2] = ATTR_static_type___MMTypeClass____local_class(variable
[0]) /*MMTypeClass::_local_class*/;
1708 /* Register variable[2]: Result */
1709 variable
[2] = CALL_abstractmetamodel___MMLocalClass___module(variable
[2])(variable
[2]) /*MMLocalClass::module*/;
1710 variable
[1] = variable
[2];
1711 goto return_label56
;
1712 return_label56
: while(false);
1713 tracehead
= trace
.prev
;
1716 val_t
static_type___MMTypeClass___local_class(val_t self
) {
1717 struct trace_t trace
= {NULL
, NULL
, 424, LOCATE_static_type___MMTypeClass___local_class
};
1718 val_t
*variable
= NULL
;
1719 struct WBT_
**closurevariable
= NULL
;
1720 trace
.prev
= tracehead
; tracehead
= &trace
;
1721 trace
.file
= LOCATE_static_type
;
1722 tracehead
= trace
.prev
;
1723 return ATTR_static_type___MMTypeClass____local_class( self
) /*MMTypeClass::_local_class*/;
1725 val_t
static_type___MMTypeClass_____l(val_t self
, val_t param0
) {
1726 struct trace_t trace
= {NULL
, NULL
, 426, LOCATE_static_type___MMTypeClass_____l
};
1728 struct WBT_
**closurevariable
= NULL
;
1729 trace
.prev
= tracehead
; tracehead
= &trace
;
1730 trace
.file
= LOCATE_static_type
;
1731 /* Register variable[0]: Local variable */
1733 /* Register variable[1]: Local variable */
1734 variable
[1] = param0
;
1735 /* Register variable[2]: Method return value and escape marker */
1736 /* Register variable[3]: Result */
1737 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*t*/ == NIT_NULL
/*null*/) || (( variable
[1] /*t*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*t*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*t*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*t*/)( variable
[1] /*t*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1738 /* Ensure var variable[3]: Left 'and' operand*/
1739 if (UNTAG_Bool(variable
[3])) { /* and */
1740 /* Register variable[3]: Result */
1741 variable
[3] = CALL_static_type___MMType___is_supertype( variable
[1] /*t*/)( variable
[1] /*t*/, variable
[0]) /*MMType::is_supertype*/;
1743 /* Register variable[3]: Result */
1744 variable
[2] = variable
[3];
1745 goto return_label57
;
1746 return_label57
: while(false);
1747 tracehead
= trace
.prev
;
1750 val_t
static_type___MMTypeClass___upcast_for(val_t self
, val_t param0
) {
1751 struct trace_t trace
= {NULL
, NULL
, 433, LOCATE_static_type___MMTypeClass___upcast_for
};
1753 struct WBT_
**closurevariable
= NULL
;
1754 trace
.prev
= tracehead
; tracehead
= &trace
;
1755 trace
.file
= LOCATE_static_type
;
1756 /* Register variable[0]: Local variable */
1758 /* Register variable[1]: Local variable */
1759 variable
[1] = param0
;
1760 /* Register variable[2]: Method return value and escape marker */
1761 /* Register variable[3]: Result */
1762 variable
[3] = ATTR_static_type___MMTypeClass____local_class(variable
[0]) /*MMTypeClass::_local_class*/;
1763 /* Register variable[3]: Result */
1764 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::==*/)))))));
1765 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeClass___upcast_for
, LOCATE_static_type
, 435); nit_exit(1);}
1766 /* Register variable[3]: Result */
1767 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*c*/ == NIT_NULL
/*null*/) || (( variable
[1] /*c*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*c*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*c*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*c*/)( variable
[1] /*c*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1768 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeClass___upcast_for
, LOCATE_static_type
, 436); nit_exit(1);}
1769 /* Register variable[3]: Local variable */
1770 variable
[3] = variable
[0];
1771 /* Register variable[4]: Result */
1772 variable
[4] = ATTR_static_type___MMTypeClass____local_class(variable
[0]) /*MMTypeClass::_local_class*/;
1773 /* Register variable[4]: Result */
1774 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == variable
[1] /*c*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], variable
[1] /*c*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], variable
[1] /*c*/) /*Object::==*/)))))));
1775 if (UNTAG_Bool(variable
[4])) { /*if*/
1776 /* Register variable[4]: Result */
1777 variable
[4] = ATTR_static_type___MMTypeClass____local_class(variable
[0]) /*MMTypeClass::_local_class*/;
1778 /* Register variable[4]: Result */
1779 variable
[4] = CALL_static_type___MMLocalClass___ancestor(variable
[4])(variable
[4], variable
[1] /*c*/) /*MMLocalClass::ancestor*/;
1780 variable
[3] = variable
[4] /*t=*/;
1782 /* Register variable[4]: Result */
1783 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::==*/)))))));
1784 if (!UNTAG_Bool(variable
[4])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeClass___upcast_for
, LOCATE_static_type
, 442); nit_exit(1);}
1785 variable
[2] = variable
[3] /*t*/;
1786 goto return_label58
;
1787 return_label58
: while(false);
1788 tracehead
= trace
.prev
;
1791 void static_type___MMTypeClass___init(val_t self
, val_t param0
, int* init_table
) {
1792 struct trace_t trace
= {NULL
, NULL
, 446, LOCATE_static_type___MMTypeClass___init
};
1794 struct WBT_
**closurevariable
= NULL
;
1795 trace
.prev
= tracehead
; tracehead
= &trace
;
1796 trace
.file
= LOCATE_static_type
;
1797 /* Register variable[0]: Local variable */
1799 /* Register variable[1]: Local variable */
1800 variable
[1] = param0
;
1801 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMTypeClass
].i
]) return;
1802 /* Register variable[2]: Method return value and escape marker */
1803 ATTR_static_type___MMTypeClass____local_class(variable
[0]) /*MMTypeClass::_local_class*/ = variable
[1] /*c*/;
1804 return_label59
: while(false);
1805 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMTypeClass
].i
] = 1;
1806 tracehead
= trace
.prev
;
1809 val_t
static_type___MMTypeSimpleClass___is_supertype(val_t self
, val_t param0
) {
1810 struct trace_t trace
= {NULL
, NULL
, 454, LOCATE_static_type___MMTypeSimpleClass___is_supertype
};
1812 struct WBT_
**closurevariable
= NULL
;
1813 trace
.prev
= tracehead
; tracehead
= &trace
;
1814 trace
.file
= LOCATE_static_type
;
1815 /* Register variable[0]: Local variable */
1817 /* Register variable[1]: Local variable */
1818 variable
[1] = param0
;
1819 /* Register variable[2]: Method return value and escape marker */
1820 /* Register variable[3]: Result */
1821 variable
[3] = CALL_static_type___MMType___local_class( variable
[1] /*t*/)( variable
[1] /*t*/) /*MMType::local_class*/;
1822 /* Register variable[3]: Result */
1823 variable
[3] = CALL_abstractmetamodel___MMLocalClass___cshe(variable
[3])(variable
[3]) /*MMLocalClass::cshe*/;
1824 /* Register variable[4]: Result */
1825 variable
[4] = ATTR_static_type___MMTypeClass____local_class(variable
[0]) /*MMTypeClass::_local_class*/;
1826 /* Register variable[3]: Result */
1827 variable
[3] = CALL_partial_order___PartialOrderElement_____leq(variable
[3])(variable
[3], variable
[4]) /*PartialOrderElement::<=*/;
1828 variable
[2] = variable
[3];
1829 goto return_label60
;
1830 return_label60
: while(false);
1831 tracehead
= trace
.prev
;
1834 val_t
static_type___MMTypeSimpleClass___for_module(val_t self
, val_t param0
) {
1835 struct trace_t trace
= {NULL
, NULL
, 459, LOCATE_static_type___MMTypeSimpleClass___for_module
};
1837 struct WBT_
**closurevariable
= NULL
;
1838 trace
.prev
= tracehead
; tracehead
= &trace
;
1839 trace
.file
= LOCATE_static_type
;
1840 /* Register variable[0]: Local variable */
1842 /* Register variable[1]: Local variable */
1843 variable
[1] = param0
;
1844 /* Register variable[2]: Method return value and escape marker */
1845 /* Register variable[3]: Local variable */
1846 variable
[3] = variable
[0];
1847 /* Register variable[4]: Result */
1848 variable
[4] = CALL_static_type___MMType___module(variable
[0])(variable
[0]) /*MMTypeClass::module*/;
1849 /* Register variable[4]: Result */
1850 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == variable
[1] /*mod*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], variable
[1] /*mod*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], variable
[1] /*mod*/) /*Object::==*/)))))));
1851 if (UNTAG_Bool(variable
[4])) { /*if*/
1852 /* Register variable[4]: Result */
1853 variable
[4] = ATTR_static_type___MMTypeClass____local_class(variable
[0]) /*MMTypeClass::_local_class*/;
1854 /* Register variable[4]: Result */
1855 variable
[4] = CALL_abstractmetamodel___MMLocalClass___for_module(variable
[4])(variable
[4], variable
[1] /*mod*/) /*MMLocalClass::for_module*/;
1856 /* Register variable[4]: Result */
1857 variable
[4] = CALL_static_type___MMLocalClass___get_type(variable
[4])(variable
[4]) /*MMLocalClass::get_type*/;
1858 variable
[3] = variable
[4] /*t=*/;
1860 /* Register variable[4]: Result */
1861 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::==*/)))))));
1862 if (!UNTAG_Bool(variable
[4])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeSimpleClass___for_module
, LOCATE_static_type
, 465); nit_exit(1);}
1863 variable
[2] = variable
[3] /*t*/;
1864 goto return_label61
;
1865 return_label61
: while(false);
1866 tracehead
= trace
.prev
;
1869 val_t
static_type___MMTypeSimpleClass___adapt_to(val_t self
, val_t param0
) {
1870 struct trace_t trace
= {NULL
, NULL
, 469, LOCATE_static_type___MMTypeSimpleClass___adapt_to
};
1872 struct WBT_
**closurevariable
= NULL
;
1873 trace
.prev
= tracehead
; tracehead
= &trace
;
1874 trace
.file
= LOCATE_static_type
;
1875 /* Register variable[0]: Local variable */
1877 /* Register variable[1]: Local variable */
1878 variable
[1] = param0
;
1879 /* Register variable[2]: Method return value and escape marker */
1880 variable
[2] = variable
[0];
1881 goto return_label62
;
1882 return_label62
: while(false);
1883 tracehead
= trace
.prev
;
1886 void static_type___MMTypeSimpleClass___init(val_t self
, val_t param0
, int* init_table
) {
1887 struct trace_t trace
= {NULL
, NULL
, 471, LOCATE_static_type___MMTypeSimpleClass___init
};
1889 struct WBT_
**closurevariable
= NULL
;
1890 trace
.prev
= tracehead
; tracehead
= &trace
;
1891 trace
.file
= LOCATE_static_type
;
1892 /* Register variable[0]: Local variable */
1894 /* Register variable[1]: Local variable */
1895 variable
[1] = param0
;
1896 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMTypeSimpleClass
].i
]) return;
1897 /* Register variable[2]: Method return value and escape marker */
1898 CALL_static_type___MMTypeClass___init(variable
[0])(variable
[0], variable
[1] /*c*/, init_table
/*YYY*/) /*MMTypeClass::init*/;
1899 return_label63
: while(false);
1900 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMTypeSimpleClass
].i
] = 1;
1901 tracehead
= trace
.prev
;
1904 val_t
static_type___MMTypeNone___to_s(val_t self
) {
1905 struct trace_t trace
= {NULL
, NULL
, 483, LOCATE_static_type___MMTypeNone___to_s
};
1906 static val_t once_value_65
= NIT_NULL
; /* Once value for string variable[2]*/
1908 struct WBT_
**closurevariable
= NULL
;
1909 trace
.prev
= tracehead
; tracehead
= &trace
;
1910 trace
.file
= LOCATE_static_type
;
1911 /* Register variable[0]: Local variable */
1913 /* Register variable[1]: Method return value and escape marker */
1914 /* Register variable[2]: Once String constant */
1915 if (once_value_65
!= NIT_NULL
) variable
[2] = once_value_65
;
1917 variable
[2] = NEW_String_string___String___with_native(BOX_NativeString("null"), TAG_Int(4)) /*new String*/;
1918 once_value_65
= variable
[2];
1920 /* Register variable[2]: Result */
1921 variable
[1] = variable
[2];
1922 goto return_label64
;
1923 return_label64
: while(false);
1924 tracehead
= trace
.prev
;
1927 val_t
static_type___MMTypeNone___module(val_t self
) {
1928 struct trace_t trace
= {NULL
, NULL
, 480, LOCATE_static_type___MMTypeNone___module
};
1929 val_t
*variable
= NULL
;
1930 struct WBT_
**closurevariable
= NULL
;
1931 trace
.prev
= tracehead
; tracehead
= &trace
;
1932 trace
.file
= LOCATE_static_type
;
1933 tracehead
= trace
.prev
;
1934 return ATTR_static_type___MMTypeNone____module( self
) /*MMTypeNone::_module*/;
1936 val_t
static_type___MMTypeNone___local_class(val_t self
) {
1937 struct trace_t trace
= {NULL
, NULL
, 485, LOCATE_static_type___MMTypeNone___local_class
};
1939 struct WBT_
**closurevariable
= NULL
;
1940 trace
.prev
= tracehead
; tracehead
= &trace
;
1941 trace
.file
= LOCATE_static_type
;
1942 /* Register variable[0]: Local variable */
1944 /* Register variable[1]: Method return value and escape marker */
1945 fprintf(stderr
, "Aborted"); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeNone___local_class
, LOCATE_static_type
, 485); nit_exit(1);
1946 return_label66
: while(false);
1947 tracehead
= trace
.prev
;
1950 val_t
static_type___MMTypeNone_____l(val_t self
, val_t param0
) {
1951 struct trace_t trace
= {NULL
, NULL
, 482, LOCATE_static_type___MMTypeNone_____l
};
1953 struct WBT_
**closurevariable
= NULL
;
1954 trace
.prev
= tracehead
; tracehead
= &trace
;
1955 trace
.file
= LOCATE_static_type
;
1956 /* Register variable[0]: Local variable */
1958 /* Register variable[1]: Local variable */
1959 variable
[1] = param0
;
1960 /* Register variable[2]: Method return value and escape marker */
1961 /* Register variable[3]: Result */
1962 variable
[3] = TAG_Bool(( variable
[1] /*t*/==NIT_NULL
) || VAL_ISA( variable
[1] /*t*/, COLOR_MMTypeNone
, ID_MMTypeNone
)) /*cast MMTypeNone*/;
1963 /* Ensure var variable[3]: Left 'or' operand*/
1964 if (!UNTAG_Bool(variable
[3])) { /* or */
1965 /* Register variable[3]: Result */
1966 variable
[3] = TAG_Bool(( variable
[1] /*t*/==NIT_NULL
) || VAL_ISA( variable
[1] /*t*/, COLOR_MMNullableType
, ID_MMNullableType
)) /*cast MMNullableType*/;
1968 /* Register variable[3]: Result */
1969 variable
[2] = variable
[3];
1970 goto return_label67
;
1971 return_label67
: while(false);
1972 tracehead
= trace
.prev
;
1975 val_t
static_type___MMTypeNone___is_supertype(val_t self
, val_t param0
) {
1976 struct trace_t trace
= {NULL
, NULL
, 484, LOCATE_static_type___MMTypeNone___is_supertype
};
1978 struct WBT_
**closurevariable
= NULL
;
1979 trace
.prev
= tracehead
; tracehead
= &trace
;
1980 trace
.file
= LOCATE_static_type
;
1981 /* Register variable[0]: Local variable */
1983 /* Register variable[1]: Local variable */
1984 variable
[1] = param0
;
1985 /* Register variable[2]: Method return value and escape marker */
1986 variable
[2] = TAG_Bool(false);
1987 goto return_label68
;
1988 return_label68
: while(false);
1989 tracehead
= trace
.prev
;
1992 val_t
static_type___MMTypeNone___upcast_for(val_t self
, val_t param0
) {
1993 struct trace_t trace
= {NULL
, NULL
, 486, LOCATE_static_type___MMTypeNone___upcast_for
};
1995 struct WBT_
**closurevariable
= NULL
;
1996 trace
.prev
= tracehead
; tracehead
= &trace
;
1997 trace
.file
= LOCATE_static_type
;
1998 /* Register variable[0]: Local variable */
2000 /* Register variable[1]: Local variable */
2001 variable
[1] = param0
;
2002 /* Register variable[2]: Method return value and escape marker */
2003 fprintf(stderr
, "Aborted"); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeNone___upcast_for
, LOCATE_static_type
, 486); nit_exit(1);
2004 return_label69
: while(false);
2005 tracehead
= trace
.prev
;
2008 val_t
static_type___MMTypeNone___is_nullable(val_t self
) {
2009 struct trace_t trace
= {NULL
, NULL
, 481, LOCATE_static_type___MMTypeNone___is_nullable
};
2011 struct WBT_
**closurevariable
= NULL
;
2012 trace
.prev
= tracehead
; tracehead
= &trace
;
2013 trace
.file
= LOCATE_static_type
;
2014 /* Register variable[0]: Local variable */
2016 /* Register variable[1]: Method return value and escape marker */
2017 variable
[1] = TAG_Bool(true);
2018 goto return_label70
;
2019 return_label70
: while(false);
2020 tracehead
= trace
.prev
;
2023 val_t
static_type___MMTypeNone___as_nullable(val_t self
) {
2024 struct trace_t trace
= {NULL
, NULL
, 487, LOCATE_static_type___MMTypeNone___as_nullable
};
2026 struct WBT_
**closurevariable
= NULL
;
2027 trace
.prev
= tracehead
; tracehead
= &trace
;
2028 trace
.file
= LOCATE_static_type
;
2029 /* Register variable[0]: Local variable */
2031 /* Register variable[1]: Method return value and escape marker */
2032 variable
[1] = variable
[0];
2033 goto return_label71
;
2034 return_label71
: while(false);
2035 tracehead
= trace
.prev
;
2038 val_t
static_type___MMTypeNone___as_notnull(val_t self
) {
2039 struct trace_t trace
= {NULL
, NULL
, 488, LOCATE_static_type___MMTypeNone___as_notnull
};
2041 struct WBT_
**closurevariable
= NULL
;
2042 trace
.prev
= tracehead
; tracehead
= &trace
;
2043 trace
.file
= LOCATE_static_type
;
2044 /* Register variable[0]: Local variable */
2046 /* Register variable[1]: Method return value and escape marker */
2047 fprintf(stderr
, "Aborted"); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeNone___as_notnull
, LOCATE_static_type
, 488); nit_exit(1);
2048 return_label72
: while(false);
2049 tracehead
= trace
.prev
;
2052 void static_type___MMTypeNone___init(val_t self
, val_t param0
, int* init_table
) {
2053 struct trace_t trace
= {NULL
, NULL
, 490, LOCATE_static_type___MMTypeNone___init
};
2055 struct WBT_
**closurevariable
= NULL
;
2056 trace
.prev
= tracehead
; tracehead
= &trace
;
2057 trace
.file
= LOCATE_static_type
;
2058 /* Register variable[0]: Local variable */
2060 /* Register variable[1]: Local variable */
2061 variable
[1] = param0
;
2062 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMTypeNone
].i
]) return;
2063 /* Register variable[2]: Method return value and escape marker */
2064 ATTR_static_type___MMTypeNone____module(variable
[0]) /*MMTypeNone::_module*/ = variable
[1] /*m*/;
2065 return_label73
: while(false);
2066 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMTypeNone
].i
] = 1;
2067 tracehead
= trace
.prev
;
2070 val_t
static_type___MMModule___type_none(val_t self
) {
2071 struct trace_t trace
= {NULL
, NULL
, 494, LOCATE_static_type___MMModule___type_none
};
2072 val_t
*variable
= NULL
;
2073 struct WBT_
**closurevariable
= NULL
;
2074 trace
.prev
= tracehead
; tracehead
= &trace
;
2075 trace
.file
= LOCATE_static_type
;
2076 tracehead
= trace
.prev
;
2077 return ATTR_static_type___MMModule____type_none( self
) /*MMModule::_type_none*/;