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 void **closurevariable
= NULL
;
7 trace
.prev
= tracehead
; tracehead
= &trace
;
8 trace
.file
= LOCATE_static_type
;
10 variable
[2] = variable
[0];
11 variable
[2] = ATTR_static_type___MMLocalClass____base_type_cache(variable
[2]) /*MMLocalClass::_base_type_cache*/;
12 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::==*/)))));
13 if (UNTAG_Bool(variable
[2])) { /*if*/
14 variable
[2] = variable
[0];
15 variable
[3] = variable
[0];
16 variable
[4] = NEW_MMTypeSimpleClass_static_type___MMTypeSimpleClass___init(variable
[3]); /*new MMTypeSimpleClass*/
17 variable
[3] = variable
[4];
18 ATTR_static_type___MMLocalClass____base_type_cache(variable
[2]) /*MMLocalClass::_base_type_cache*/ = variable
[3];
20 variable
[2] = variable
[0];
21 variable
[2] = ATTR_static_type___MMLocalClass____base_type_cache(variable
[2]) /*MMLocalClass::_base_type_cache*/;
22 variable
[1] = variable
[2];
24 return_label0
: while(false);
25 tracehead
= trace
.prev
;
28 void static_type___MMLocalClass___add_ancestor(val_t self
, val_t param0
) {
29 struct trace_t trace
= {NULL
, NULL
, 34, LOCATE_static_type___MMLocalClass___add_ancestor
};
31 void **closurevariable
= NULL
;
32 trace
.prev
= tracehead
; tracehead
= &trace
;
33 trace
.file
= LOCATE_static_type
;
36 variable
[3] = variable
[0];
37 variable
[3] = ATTR_static_type___MMLocalClass____ancestors(variable
[3]) /*MMLocalClass::_ancestors*/;
38 variable
[4] = CALL_static_type___MMAncestor___local_class( variable
[1] /*a*/)( variable
[1] /*a*/) /*MMAncestor::local_class*/;
39 variable
[3] = CALL_abstract_collection___Map___has_key(variable
[3])(variable
[3], variable
[4]) /*Map::has_key*/;
40 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);}
41 variable
[3] = CALL_static_type___MMAncestor___local_class( variable
[1] /*a*/)( variable
[1] /*a*/) /*MMAncestor::local_class*/;
42 variable
[4] = variable
[0];
43 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == variable
[4]) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3],variable
[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], variable
[4]) /*Object::==*/)))))));
44 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);}
45 variable
[3] = variable
[0];
46 variable
[3] = ATTR_static_type___MMLocalClass____ancestors(variable
[3]) /*MMLocalClass::_ancestors*/;
47 variable
[4] = CALL_static_type___MMAncestor___local_class( variable
[1] /*a*/)( variable
[1] /*a*/) /*MMAncestor::local_class*/;
48 CALL_abstract_collection___Map_____braeq(variable
[3])(variable
[3], variable
[4], variable
[1] /*a*/) /*Map::[]=*/;
49 return_label1
: while(false);
50 tracehead
= trace
.prev
;
53 val_t
static_type___MMLocalClass___ancestors(val_t self
) {
54 struct trace_t trace
= {NULL
, NULL
, 42, LOCATE_static_type___MMLocalClass___ancestors
};
55 val_t
*variable
= NULL
;
56 void **closurevariable
= NULL
;
57 trace
.prev
= tracehead
; tracehead
= &trace
;
58 trace
.file
= LOCATE_static_type
;
59 tracehead
= trace
.prev
;
60 return ATTR_static_type___MMLocalClass____ancestors( self
) /*MMLocalClass::_ancestors*/;
62 val_t
static_type___MMLocalClass___ancestor(val_t self
, val_t param0
) {
63 struct trace_t trace
= {NULL
, NULL
, 45, LOCATE_static_type___MMLocalClass___ancestor
};
65 void **closurevariable
= NULL
;
66 trace
.prev
= tracehead
; tracehead
= &trace
;
67 trace
.file
= LOCATE_static_type
;
70 variable
[3] = variable
[0];
71 variable
[3] = ATTR_static_type___MMLocalClass____ancestors(variable
[3]) /*MMLocalClass::_ancestors*/;
72 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::==*/)))))));
73 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMLocalClass___ancestor
, LOCATE_static_type
, 48); nit_exit(1);}
74 variable
[3] = variable
[0];
75 variable
[3] = ATTR_static_type___MMLocalClass____ancestors(variable
[3]) /*MMLocalClass::_ancestors*/;
76 variable
[3] = CALL_abstract_collection___Map___has_key(variable
[3])(variable
[3], variable
[1] /*c*/) /*Map::has_key*/;
77 if (UNTAG_Bool(variable
[3])) { /*if*/
78 variable
[3] = variable
[0];
79 variable
[3] = ATTR_static_type___MMLocalClass____ancestors(variable
[3]) /*MMLocalClass::_ancestors*/;
80 variable
[3] = CALL_abstract_collection___Map_____bra(variable
[3])(variable
[3], variable
[1] /*c*/) /*Map::[]*/;
81 variable
[3] = CALL_static_type___MMAncestor___stype(variable
[3])(variable
[3]) /*MMAncestor::stype*/;
82 variable
[2] = variable
[3];
85 variable
[2] = NIT_NULL
/*null*/;
87 return_label2
: while(false);
88 tracehead
= trace
.prev
;
91 val_t
static_type___MMLocalProperty___signature(val_t self
) {
92 struct trace_t trace
= {NULL
, NULL
, 57, LOCATE_static_type___MMLocalProperty___signature
};
93 val_t
*variable
= NULL
;
94 void **closurevariable
= NULL
;
95 trace
.prev
= tracehead
; tracehead
= &trace
;
96 trace
.file
= LOCATE_static_type
;
97 tracehead
= trace
.prev
;
98 return ATTR_static_type___MMLocalProperty____signature( self
) /*MMLocalProperty::_signature*/;
100 void static_type___MMLocalProperty___signature__eq(val_t self
, val_t param0
) {
101 struct trace_t trace
= {NULL
, NULL
, 57, LOCATE_static_type___MMLocalProperty___signature__eq
};
102 val_t
*variable
= NULL
;
103 void **closurevariable
= NULL
;
104 trace
.prev
= tracehead
; tracehead
= &trace
;
105 trace
.file
= LOCATE_static_type
;
106 ATTR_static_type___MMLocalProperty____signature( self
) /*MMLocalProperty::_signature*/ = param0
;
107 tracehead
= trace
.prev
;
110 val_t
static_type___MMLocalProperty___signature_for(val_t self
, val_t param0
) {
111 struct trace_t trace
= {NULL
, NULL
, 62, LOCATE_static_type___MMLocalProperty___signature_for
};
113 void **closurevariable
= NULL
;
114 trace
.prev
= tracehead
; tracehead
= &trace
;
115 trace
.file
= LOCATE_static_type
;
117 variable
[1] = param0
;
118 variable
[3] = variable
[0];
119 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[3])(variable
[3]) /*MMLocalProperty::local_class*/;
120 variable
[3] = CALL_static_type___MMLocalClass___get_type(variable
[3])(variable
[3]) /*MMLocalClass::get_type*/;
121 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::==*/)))));
122 if (UNTAG_Bool(variable
[3])) { /*if*/
123 variable
[3] = variable
[0];
124 variable
[3] = CALL_static_type___MMLocalProperty___signature(variable
[3])(variable
[3]) /*MMLocalProperty::signature*/;
125 variable
[2] = variable
[3];
128 variable
[3] = variable
[0];
129 variable
[3] = ATTR_static_type___MMLocalProperty____signatures_cache(variable
[3]) /*MMLocalProperty::_signatures_cache*/;
130 variable
[3] = CALL_abstract_collection___Map___has_key(variable
[3])(variable
[3], variable
[1] /*t*/) /*CoupleMap::has_key*/;
131 if (UNTAG_Bool(variable
[3])) { /*if*/
132 variable
[3] = variable
[0];
133 variable
[3] = ATTR_static_type___MMLocalProperty____signatures_cache(variable
[3]) /*MMLocalProperty::_signatures_cache*/;
134 variable
[3] = CALL_abstract_collection___Map_____bra(variable
[3])(variable
[3], variable
[1] /*t*/) /*CoupleMap::[]*/;
135 variable
[2] = variable
[3];
138 variable
[4] = variable
[0];
139 variable
[4] = CALL_static_type___MMLocalProperty___signature(variable
[4])(variable
[4]) /*MMLocalProperty::signature*/;
140 variable
[4] = CALL_static_type___MMSignature___adaptation_to(variable
[4])(variable
[4], variable
[1] /*t*/) /*MMSignature::adaptation_to*/;
141 variable
[3] = variable
[4];
142 variable
[4] = variable
[0];
143 variable
[4] = ATTR_static_type___MMLocalProperty____signatures_cache(variable
[4]) /*MMLocalProperty::_signatures_cache*/;
144 CALL_abstract_collection___Map_____braeq(variable
[4])(variable
[4], variable
[1] /*t*/, variable
[3] /*res*/) /*HashMap::[]=*/;
145 variable
[2] = variable
[3] /*res*/;
147 return_label3
: while(false);
148 tracehead
= trace
.prev
;
151 val_t
static_type___MMSignature___to_s(val_t self
) {
152 struct trace_t trace
= {NULL
, NULL
, 123, LOCATE_static_type___MMSignature___to_s
};
154 void **closurevariable
= NULL
;
155 trace
.prev
= tracehead
; tracehead
= &trace
;
156 trace
.file
= LOCATE_static_type
;
158 /*variable[2] is variable s*/
159 variable
[3] = variable
[0];
160 variable
[3] = ATTR_static_type___MMSignature____params(variable
[3]) /*MMSignature::_params*/;
161 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::==*/)))))));
162 variable
[4] = variable
[3];
163 if (UNTAG_Bool(variable
[4])) { /* and */
164 variable
[4] = variable
[0];
165 variable
[4] = ATTR_static_type___MMSignature____params(variable
[4]) /*MMSignature::_params*/;
166 variable
[4] = CALL_abstract_collection___Collection___length(variable
[4])(variable
[4]) /*AbstractArray::length*/;
167 variable
[4] = TAG_Bool(UNTAG_Int(variable
[4])>UNTAG_Int( TAG_Int(0)));
169 variable
[3] = variable
[4];
170 if (UNTAG_Bool(variable
[3])) { /*if*/
171 /*variable[3] is variable tmp*/
172 variable
[5] = variable
[0];
173 variable
[5] = ATTR_static_type___MMSignature____params(variable
[5]) /*MMSignature::_params*/;
174 variable
[5] = CALL_abstract_collection___Collection___length(variable
[5])(variable
[5]) /*AbstractArray::length*/;
175 variable
[6] = NEW_Array_array___Array___with_capacity(variable
[5]); /*new Array[String]*/
176 variable
[5] = variable
[6];
177 variable
[4] = variable
[5];
178 variable
[5] = variable
[0];
179 variable
[5] = ATTR_static_type___MMSignature____params(variable
[5]) /*MMSignature::_params*/;
180 variable
[5] = CALL_abstract_collection___Collection___length(variable
[5])(variable
[5]) /*AbstractArray::length*/;
181 variable
[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable
[5]); /*new Range[Int]*/
182 variable
[5] = variable
[6];
183 variable
[5] = CALL_abstract_collection___Collection___iterator(variable
[5])(variable
[5]) /*Range::iterator*/;
184 while (true) { /*for*/
185 variable
[6] = CALL_abstract_collection___Iterator___is_ok(variable
[5])(variable
[5]) /*Iterator::is_ok*/;
186 if (!UNTAG_Bool(variable
[6])) break; /*for*/
187 variable
[6] = CALL_abstract_collection___Iterator___item(variable
[5])(variable
[5]) /*Iterator::item*/;
188 variable
[7] = variable
[6];
189 variable
[9] = variable
[0];
190 variable
[9] = ATTR_static_type___MMSignature____params(variable
[9]) /*MMSignature::_params*/;
191 variable
[10] = variable
[9];
192 variable
[11] = variable
[7] /*i*/;
193 variable
[13] = TAG_Bool(UNTAG_Int( variable
[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
194 variable
[14] = variable
[13];
195 if (UNTAG_Bool(variable
[14])) { /* and */
196 variable
[14] = variable
[10];
197 variable
[14] = ATTR_array___AbstractArray____length(variable
[14]) /*AbstractArray::_length*/;
198 variable
[14] = TAG_Bool(UNTAG_Int( variable
[11] /*index*/)<UNTAG_Int(variable
[14]));
200 variable
[13] = variable
[14];
201 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
, 229); nit_exit(1);}
202 variable
[13] = variable
[10];
203 variable
[13] = ATTR_array___Array____items(variable
[13]) /*Array::_items*/;
204 variable
[13] = UNBOX_NativeArray(variable
[13])[UNTAG_Int( variable
[11] /*index*/)];
205 variable
[12] = variable
[13];
207 return_label6
: while(false);
208 variable
[9] = variable
[12];
209 variable
[8] = variable
[9];
210 variable
[9] = CALL_string___Object___to_s( variable
[8] /*p*/)( variable
[8] /*p*/) /*Object::to_s*/;
211 CALL_abstract_collection___SimpleCollection___add( variable
[4] /*a*/)( variable
[4] /*a*/, variable
[9]) /*AbstractArray::add*/;
212 continue_5
: while(0);
213 CALL_abstract_collection___Iterator___next(variable
[5])(variable
[5]) /*Iterator::next*/;
216 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
217 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
218 variable
[7] = variable
[6];
219 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[7]) /*AbstractArray::add*/;
220 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
221 variable
[8] = CALL_string___Collection___join( variable
[4] /*a*/)( variable
[4] /*a*/, variable
[8]) /*Collection::join*/;
222 variable
[9] = variable
[8];
223 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[9]) /*AbstractArray::add*/;
224 variable
[10] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
225 variable
[11] = variable
[10];
226 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[11]) /*AbstractArray::add*/;
227 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
228 variable
[2] = variable
[5] /*s=*/;
230 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
231 variable
[2] = variable
[3] /*s=*/;
233 variable
[3] = variable
[0];
234 variable
[3] = ATTR_static_type___MMSignature____return_type(variable
[3]) /*MMSignature::_return_type*/;
235 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::==*/)))))));
236 if (UNTAG_Bool(variable
[3])) { /*if*/
237 variable
[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
238 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
239 variable
[5] = variable
[4];
240 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[5]) /*AbstractArray::add*/;
241 variable
[6] = variable
[0];
242 variable
[6] = ATTR_static_type___MMSignature____return_type(variable
[6]) /*MMSignature::_return_type*/;
243 variable
[7] = variable
[6];
244 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
245 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[7]) /*AbstractArray::add*/;
246 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
247 variable
[9] = variable
[8];
248 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[9]) /*AbstractArray::add*/;
249 variable
[3] = CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/;
250 CALL_abstract_collection___IndexedCollection___append( variable
[2] /*s*/)( variable
[2] /*s*/, variable
[3]) /*String::append*/;
252 variable
[1] = variable
[2] /*s*/;
254 return_label4
: while(false);
255 tracehead
= trace
.prev
;
258 val_t
static_type___MMSignature___recv(val_t self
) {
259 struct trace_t trace
= {NULL
, NULL
, 76, LOCATE_static_type___MMSignature___recv
};
260 val_t
*variable
= NULL
;
261 void **closurevariable
= NULL
;
262 trace
.prev
= tracehead
; tracehead
= &trace
;
263 trace
.file
= LOCATE_static_type
;
264 tracehead
= trace
.prev
;
265 return ATTR_static_type___MMSignature____recv( self
) /*MMSignature::_recv*/;
267 val_t
static_type___MMSignature___return_type(val_t self
) {
268 struct trace_t trace
= {NULL
, NULL
, 82, LOCATE_static_type___MMSignature___return_type
};
269 val_t
*variable
= NULL
;
270 void **closurevariable
= NULL
;
271 trace
.prev
= tracehead
; tracehead
= &trace
;
272 trace
.file
= LOCATE_static_type
;
273 tracehead
= trace
.prev
;
274 return ATTR_static_type___MMSignature____return_type( self
) /*MMSignature::_return_type*/;
276 val_t
static_type___MMSignature___closures(val_t self
) {
277 struct trace_t trace
= {NULL
, NULL
, 85, LOCATE_static_type___MMSignature___closures
};
278 val_t
*variable
= NULL
;
279 void **closurevariable
= NULL
;
280 trace
.prev
= tracehead
; tracehead
= &trace
;
281 trace
.file
= LOCATE_static_type
;
282 tracehead
= trace
.prev
;
283 return ATTR_static_type___MMSignature____closures( self
) /*MMSignature::_closures*/;
285 val_t
static_type___MMSignature___arity(val_t self
) {
286 struct trace_t trace
= {NULL
, NULL
, 88, LOCATE_static_type___MMSignature___arity
};
288 void **closurevariable
= NULL
;
289 trace
.prev
= tracehead
; tracehead
= &trace
;
290 trace
.file
= LOCATE_static_type
;
292 variable
[2] = variable
[0];
293 variable
[2] = ATTR_static_type___MMSignature____params(variable
[2]) /*MMSignature::_params*/;
294 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::==*/)))))));
295 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
, 91); nit_exit(1);}
296 variable
[2] = variable
[0];
297 variable
[2] = ATTR_static_type___MMSignature____params(variable
[2]) /*MMSignature::_params*/;
298 variable
[2] = CALL_abstract_collection___Collection___length(variable
[2])(variable
[2]) /*AbstractArray::length*/;
299 variable
[1] = variable
[2];
301 return_label7
: while(false);
302 tracehead
= trace
.prev
;
305 val_t
static_type___MMSignature_____l(val_t self
, val_t param0
) {
306 struct trace_t trace
= {NULL
, NULL
, 95, LOCATE_static_type___MMSignature_____l
};
308 void **closurevariable
= NULL
;
309 trace
.prev
= tracehead
; tracehead
= &trace
;
310 trace
.file
= LOCATE_static_type
;
312 variable
[1] = param0
;
313 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::==*/)))))));
314 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);}
315 variable
[3] = variable
[0];
316 variable
[3] = TAG_Bool((variable
[3] == variable
[1] /*s*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], variable
[1] /*s*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], variable
[1] /*s*/) /*Object::==*/)))));
317 if (UNTAG_Bool(variable
[3])) { /*if*/
318 variable
[2] = TAG_Bool(true);
321 variable
[3] = variable
[0];
322 variable
[3] = ATTR_static_type___MMSignature____recv(variable
[3]) /*MMSignature::_recv*/;
323 variable
[3] = CALL_static_type___MMType___module(variable
[3])(variable
[3]) /*MMType::module*/;
324 variable
[4] = CALL_static_type___MMSignature___recv( variable
[1] /*s*/)( variable
[1] /*s*/) /*MMSignature::recv*/;
325 variable
[4] = CALL_static_type___MMType___module(variable
[4])(variable
[4]) /*MMType::module*/;
326 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::==*/)))));
327 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
, 102); nit_exit(1);}
328 variable
[3] = variable
[0];
329 variable
[3] = CALL_static_type___MMSignature___arity(variable
[3])(variable
[3]) /*MMSignature::arity*/;
330 variable
[4] = CALL_static_type___MMSignature___arity( variable
[1] /*s*/)( variable
[1] /*s*/) /*MMSignature::arity*/;
331 variable
[3] = TAG_Bool((variable
[3])!=(variable
[4]));
332 variable
[4] = variable
[3];
333 if (!UNTAG_Bool(variable
[4])) { /* or */
334 variable
[4] = variable
[0];
335 variable
[4] = ATTR_static_type___MMSignature____return_type(variable
[4]) /*MMSignature::_return_type*/;
336 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::==*/)))));
337 variable
[5] = CALL_static_type___MMSignature___return_type( variable
[1] /*s*/)( variable
[1] /*s*/) /*MMSignature::return_type*/;
338 variable
[5] = TAG_Bool((variable
[5] == NIT_NULL
/*null*/) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], NIT_NULL
/*null*/) /*Object::==*/)))));
339 variable
[4] = TAG_Bool((variable
[4])!=(variable
[5]));
341 variable
[3] = variable
[4];
342 if (UNTAG_Bool(variable
[3])) { /*if*/
343 variable
[2] = TAG_Bool(false);
346 variable
[3] = variable
[0];
347 variable
[3] = ATTR_static_type___MMSignature____return_type(variable
[3]) /*MMSignature::_return_type*/;
348 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::==*/)))))));
349 variable
[4] = variable
[3];
350 if (UNTAG_Bool(variable
[4])) { /* and */
351 variable
[4] = variable
[0];
352 variable
[4] = ATTR_static_type___MMSignature____return_type(variable
[4]) /*MMSignature::_return_type*/;
353 variable
[5] = CALL_static_type___MMSignature___return_type( variable
[1] /*s*/)( variable
[1] /*s*/) /*MMSignature::return_type*/;
354 variable
[4] = CALL_static_type___MMType_____l(variable
[4])(variable
[4], variable
[5]) /*MMType::<*/;
355 variable
[4] = TAG_Bool(!UNTAG_Bool(variable
[4]));
357 variable
[3] = variable
[4];
358 if (UNTAG_Bool(variable
[3])) { /*if*/
359 variable
[2] = TAG_Bool(false);
362 variable
[3] = variable
[0];
363 variable
[3] = CALL_static_type___MMSignature___arity(variable
[3])(variable
[3]) /*MMSignature::arity*/;
364 variable
[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable
[3]); /*new Range[Int]*/
365 variable
[3] = variable
[4];
366 variable
[3] = CALL_abstract_collection___Collection___iterator(variable
[3])(variable
[3]) /*Range::iterator*/;
367 while (true) { /*for*/
368 variable
[4] = CALL_abstract_collection___Iterator___is_ok(variable
[3])(variable
[3]) /*Iterator::is_ok*/;
369 if (!UNTAG_Bool(variable
[4])) break; /*for*/
370 variable
[4] = CALL_abstract_collection___Iterator___item(variable
[3])(variable
[3]) /*Iterator::item*/;
371 variable
[5] = variable
[4];
372 variable
[6] = CALL_static_type___MMSignature_____bra( variable
[1] /*s*/)( variable
[1] /*s*/, variable
[5] /*i*/) /*MMSignature::[]*/;
373 variable
[7] = variable
[0];
374 variable
[7] = CALL_static_type___MMSignature_____bra(variable
[7])(variable
[7], variable
[5] /*i*/) /*MMSignature::[]*/;
375 variable
[6] = CALL_static_type___MMType_____l(variable
[6])(variable
[6], variable
[7]) /*MMType::<*/;
376 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[6])))) { /*if*/
377 variable
[2] = TAG_Bool(false);
380 continue_9
: while(0);
381 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
384 variable
[2] = TAG_Bool(true);
386 return_label8
: while(false);
387 tracehead
= trace
.prev
;
390 val_t
static_type___MMSignature_____bra(val_t self
, val_t param0
) {
391 struct trace_t trace
= {NULL
, NULL
, 116, LOCATE_static_type___MMSignature_____bra
};
393 void **closurevariable
= NULL
;
394 trace
.prev
= tracehead
; tracehead
= &trace
;
395 trace
.file
= LOCATE_static_type
;
397 variable
[1] = param0
;
398 variable
[3] = variable
[0];
399 variable
[3] = ATTR_static_type___MMSignature____params(variable
[3]) /*MMSignature::_params*/;
400 variable
[3] = CALL_abstract_collection___Collection___length(variable
[3])(variable
[3]) /*AbstractArray::length*/;
401 variable
[3] = TAG_Bool(UNTAG_Int(variable
[3])>UNTAG_Int( variable
[1] /*i*/));
402 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
, 119); nit_exit(1);}
403 variable
[3] = variable
[0];
404 variable
[3] = ATTR_static_type___MMSignature____params(variable
[3]) /*MMSignature::_params*/;
405 variable
[4] = variable
[3];
406 variable
[5] = variable
[1] /*i*/;
407 variable
[7] = TAG_Bool(UNTAG_Int( variable
[5] /*index*/)>=UNTAG_Int( TAG_Int(0)));
408 variable
[8] = variable
[7];
409 if (UNTAG_Bool(variable
[8])) { /* and */
410 variable
[8] = variable
[4];
411 variable
[8] = ATTR_array___AbstractArray____length(variable
[8]) /*AbstractArray::_length*/;
412 variable
[8] = TAG_Bool(UNTAG_Int( variable
[5] /*index*/)<UNTAG_Int(variable
[8]));
414 variable
[7] = variable
[8];
415 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
, 229); nit_exit(1);}
416 variable
[7] = variable
[4];
417 variable
[7] = ATTR_array___Array____items(variable
[7]) /*Array::_items*/;
418 variable
[7] = UNBOX_NativeArray(variable
[7])[UNTAG_Int( variable
[5] /*index*/)];
419 variable
[6] = variable
[7];
421 return_label11
: while(false);
422 variable
[3] = variable
[6];
423 variable
[2] = variable
[3];
425 return_label10
: while(false);
426 tracehead
= trace
.prev
;
429 val_t
static_type___MMSignature___adaptation_to(val_t self
, val_t param0
) {
430 struct trace_t trace
= {NULL
, NULL
, 145, LOCATE_static_type___MMSignature___adaptation_to
};
432 void **closurevariable
= NULL
;
433 trace
.prev
= tracehead
; tracehead
= &trace
;
434 trace
.file
= LOCATE_static_type
;
436 variable
[1] = param0
;
437 variable
[3] = variable
[0];
438 variable
[3] = ATTR_static_type___MMSignature____recv(variable
[3]) /*MMSignature::_recv*/;
439 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::==*/)))));
440 if (UNTAG_Bool(variable
[3])) { /*if*/
441 variable
[3] = variable
[0];
442 variable
[2] = variable
[3];
445 variable
[4] = CALL_static_type___MMType___module( variable
[1] /*r*/)( variable
[1] /*r*/) /*MMType::module*/;
446 variable
[3] = variable
[4];
447 variable
[5] = variable
[0];
448 variable
[5] = ATTR_static_type___MMSignature____params(variable
[5]) /*MMSignature::_params*/;
449 variable
[4] = variable
[5];
450 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::==*/)))))));
451 if (UNTAG_Bool(variable
[5])) { /*if*/
452 variable
[5] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
453 variable
[4] = variable
[5] /*p=*/;
454 variable
[5] = variable
[0];
455 variable
[5] = ATTR_static_type___MMSignature____params(variable
[5]) /*MMSignature::_params*/;
456 variable
[5] = CALL_abstract_collection___Collection___iterator(variable
[5])(variable
[5]) /*AbstractArray::iterator*/;
457 while (true) { /*for*/
458 variable
[6] = CALL_abstract_collection___Iterator___is_ok(variable
[5])(variable
[5]) /*ArrayIterator::is_ok*/;
459 if (!UNTAG_Bool(variable
[6])) break; /*for*/
460 variable
[6] = CALL_abstract_collection___Iterator___item(variable
[5])(variable
[5]) /*ArrayIterator::item*/;
461 variable
[7] = variable
[6];
462 variable
[8] = CALL_static_type___MMType___for_module( variable
[7] /*i*/)( variable
[7] /*i*/, variable
[3] /*mod*/) /*MMType::for_module*/;
463 variable
[8] = CALL_static_type___MMType___adapt_to(variable
[8])(variable
[8], variable
[1] /*r*/) /*MMType::adapt_to*/;
464 CALL_abstract_collection___SimpleCollection___add( variable
[4] /*p*/)( variable
[4] /*p*/, variable
[8]) /*AbstractArray::add*/;
465 continue_13
: while(0);
466 CALL_abstract_collection___Iterator___next(variable
[5])(variable
[5]) /*ArrayIterator::next*/;
470 variable
[6] = variable
[0];
471 variable
[6] = ATTR_static_type___MMSignature____return_type(variable
[6]) /*MMSignature::_return_type*/;
472 variable
[5] = variable
[6];
473 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::==*/)))))));
474 if (UNTAG_Bool(variable
[6])) { /*if*/
475 variable
[6] = CALL_static_type___MMType___for_module( variable
[5] /*rv*/)( variable
[5] /*rv*/, variable
[3] /*mod*/) /*MMType::for_module*/;
476 variable
[6] = CALL_static_type___MMType___adapt_to(variable
[6])(variable
[6], variable
[1] /*r*/) /*MMType::adapt_to*/;
477 variable
[5] = variable
[6] /*rv=*/;
479 variable
[7] = NEW_MMSignature_static_type___MMSignature___init( variable
[4] /*p*/, variable
[5] /*rv*/, variable
[1] /*r*/); /*new MMSignature*/
480 variable
[6] = variable
[7];
481 variable
[7] = variable
[0];
482 variable
[7] = ATTR_static_type___MMSignature____closures(variable
[7]) /*MMSignature::_closures*/;
483 variable
[7] = CALL_abstract_collection___Collection___iterator(variable
[7])(variable
[7]) /*AbstractArray::iterator*/;
484 while (true) { /*for*/
485 variable
[8] = CALL_abstract_collection___Iterator___is_ok(variable
[7])(variable
[7]) /*ArrayIterator::is_ok*/;
486 if (!UNTAG_Bool(variable
[8])) break; /*for*/
487 variable
[8] = CALL_abstract_collection___Iterator___item(variable
[7])(variable
[7]) /*ArrayIterator::item*/;
488 variable
[9] = variable
[8];
489 variable
[10] = CALL_static_type___MMSignature___closures( variable
[6] /*res*/)( variable
[6] /*res*/) /*MMSignature::closures*/;
490 variable
[11] = CALL_static_type___MMClosure___adaptation_to( variable
[9] /*clos*/)( variable
[9] /*clos*/, variable
[1] /*r*/) /*MMClosure::adaptation_to*/;
491 CALL_abstract_collection___SimpleCollection___add(variable
[10])(variable
[10], variable
[11]) /*AbstractArray::add*/;
492 continue_14
: while(0);
493 CALL_abstract_collection___Iterator___next(variable
[7])(variable
[7]) /*ArrayIterator::next*/;
496 variable
[2] = variable
[6] /*res*/;
498 return_label12
: while(false);
499 tracehead
= trace
.prev
;
502 val_t
static_type___MMSignature___not_for_self(val_t self
) {
503 struct trace_t trace
= {NULL
, NULL
, 172, LOCATE_static_type___MMSignature___not_for_self
};
505 void **closurevariable
= NULL
;
506 trace
.prev
= tracehead
; tracehead
= &trace
;
507 trace
.file
= LOCATE_static_type
;
509 variable
[3] = variable
[0];
510 variable
[3] = ATTR_static_type___MMSignature____not_for_self_cache(variable
[3]) /*MMSignature::_not_for_self_cache*/;
511 variable
[2] = variable
[3];
512 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::==*/)))))));
513 if (UNTAG_Bool(variable
[3])) { /*if*/
514 variable
[1] = variable
[2] /*res*/;
517 variable
[3] = TAG_Bool(false);
518 variable
[5] = variable
[0];
519 variable
[5] = ATTR_static_type___MMSignature____params(variable
[5]) /*MMSignature::_params*/;
520 variable
[4] = variable
[5];
521 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::==*/)))))));
522 if (UNTAG_Bool(variable
[5])) { /*if*/
523 variable
[5] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
524 variable
[4] = variable
[5] /*p=*/;
525 variable
[5] = variable
[0];
526 variable
[5] = ATTR_static_type___MMSignature____params(variable
[5]) /*MMSignature::_params*/;
527 variable
[5] = CALL_abstract_collection___Collection___iterator(variable
[5])(variable
[5]) /*AbstractArray::iterator*/;
528 while (true) { /*for*/
529 variable
[6] = CALL_abstract_collection___Iterator___is_ok(variable
[5])(variable
[5]) /*ArrayIterator::is_ok*/;
530 if (!UNTAG_Bool(variable
[6])) break; /*for*/
531 variable
[6] = CALL_abstract_collection___Iterator___item(variable
[5])(variable
[5]) /*ArrayIterator::item*/;
532 variable
[7] = variable
[6];
533 variable
[9] = CALL_static_type___MMType___not_for_self( variable
[7] /*i*/)( variable
[7] /*i*/) /*MMType::not_for_self*/;
534 variable
[8] = variable
[9];
535 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::==*/)))))));
536 if (UNTAG_Bool(variable
[9])) { /*if*/
537 variable
[3] = TAG_Bool(true) /*need_for_self=*/;
539 CALL_abstract_collection___SimpleCollection___add( variable
[4] /*p*/)( variable
[4] /*p*/, variable
[8] /*i2*/) /*AbstractArray::add*/;
540 continue_16
: while(0);
541 CALL_abstract_collection___Iterator___next(variable
[5])(variable
[5]) /*ArrayIterator::next*/;
545 variable
[6] = variable
[0];
546 variable
[6] = ATTR_static_type___MMSignature____return_type(variable
[6]) /*MMSignature::_return_type*/;
547 variable
[5] = variable
[6];
548 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::==*/)))))));
549 if (UNTAG_Bool(variable
[6])) { /*if*/
550 variable
[6] = CALL_static_type___MMType___not_for_self( variable
[5] /*rv*/)( variable
[5] /*rv*/) /*MMType::not_for_self*/;
551 variable
[5] = variable
[6] /*rv=*/;
552 variable
[6] = variable
[0];
553 variable
[6] = ATTR_static_type___MMSignature____return_type(variable
[6]) /*MMSignature::_return_type*/;
554 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::==*/)))))));
555 if (UNTAG_Bool(variable
[6])) { /*if*/
556 variable
[3] = TAG_Bool(true) /*need_for_self=*/;
559 variable
[7] = variable
[0];
560 variable
[7] = ATTR_static_type___MMSignature____closures(variable
[7]) /*MMSignature::_closures*/;
561 variable
[6] = variable
[7];
562 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::==*/)))))));
563 if (UNTAG_Bool(variable
[7])) { /*if*/
564 variable
[7] = NEW_Array_array___Array___init(); /*new Array[MMClosure]*/
565 variable
[6] = variable
[7] /*clos=*/;
566 variable
[7] = variable
[0];
567 variable
[7] = ATTR_static_type___MMSignature____closures(variable
[7]) /*MMSignature::_closures*/;
568 variable
[7] = CALL_abstract_collection___Collection___iterator(variable
[7])(variable
[7]) /*AbstractArray::iterator*/;
569 while (true) { /*for*/
570 variable
[8] = CALL_abstract_collection___Iterator___is_ok(variable
[7])(variable
[7]) /*ArrayIterator::is_ok*/;
571 if (!UNTAG_Bool(variable
[8])) break; /*for*/
572 variable
[8] = CALL_abstract_collection___Iterator___item(variable
[7])(variable
[7]) /*ArrayIterator::item*/;
573 variable
[9] = variable
[8];
574 variable
[11] = CALL_static_type___MMClosure___not_for_self( variable
[9] /*c*/)( variable
[9] /*c*/) /*MMClosure::not_for_self*/;
575 variable
[10] = variable
[11];
576 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::==*/)))))));
577 if (UNTAG_Bool(variable
[11])) { /*if*/
578 variable
[3] = TAG_Bool(true) /*need_for_self=*/;
580 CALL_abstract_collection___SimpleCollection___add( variable
[6] /*clos*/)( variable
[6] /*clos*/, variable
[10] /*c2*/) /*AbstractArray::add*/;
581 continue_17
: while(0);
582 CALL_abstract_collection___Iterator___next(variable
[7])(variable
[7]) /*ArrayIterator::next*/;
586 if (UNTAG_Bool( variable
[3] /*need_for_self*/)) { /*if*/
587 variable
[7] = variable
[0];
588 variable
[7] = ATTR_static_type___MMSignature____recv(variable
[7]) /*MMSignature::_recv*/;
589 variable
[8] = NEW_MMSignature_static_type___MMSignature___init( variable
[4] /*p*/, variable
[5] /*rv*/, variable
[7]); /*new MMSignature*/
590 variable
[7] = variable
[8];
591 variable
[2] = variable
[7] /*res=*/;
592 variable
[7] = CALL_static_type___MMSignature___closures( variable
[2] /*res*/)( variable
[2] /*res*/) /*MMSignature::closures*/;
593 CALL_abstract_collection___SimpleCollection___add_all(variable
[7])(variable
[7], variable
[6] /*clos*/) /*SimpleCollection::add_all*/;
595 variable
[7] = variable
[0];
596 variable
[2] = variable
[7] /*res=*/;
598 variable
[7] = variable
[0];
599 ATTR_static_type___MMSignature____not_for_self_cache(variable
[7]) /*MMSignature::_not_for_self_cache*/ = variable
[2] /*res*/;
600 variable
[1] = variable
[2] /*res*/;
602 return_label15
: while(false);
603 tracehead
= trace
.prev
;
606 void static_type___MMSignature___init(val_t self
, val_t param0
, val_t param1
, val_t param2
, int* init_table
) {
607 struct trace_t trace
= {NULL
, NULL
, 217, LOCATE_static_type___MMSignature___init
};
609 void **closurevariable
= NULL
;
610 trace
.prev
= tracehead
; tracehead
= &trace
;
611 trace
.file
= LOCATE_static_type
;
613 variable
[1] = param0
;
614 variable
[2] = param1
;
615 variable
[3] = param2
;
616 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMSignature
].i
]) return;
617 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::==*/)))))));
618 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
, 219); nit_exit(1);}
619 variable
[5] = variable
[0];
620 ATTR_static_type___MMSignature____params(variable
[5]) /*MMSignature::_params*/ = variable
[1] /*params*/;
621 variable
[5] = variable
[0];
622 ATTR_static_type___MMSignature____return_type(variable
[5]) /*MMSignature::_return_type*/ = variable
[2] /*return_type*/;
623 variable
[5] = variable
[0];
624 ATTR_static_type___MMSignature____recv(variable
[5]) /*MMSignature::_recv*/ = variable
[3] /*r*/;
625 return_label18
: while(false);
626 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMSignature
].i
] = 1;
627 tracehead
= trace
.prev
;
630 val_t
static_type___MMClosure___signature(val_t self
) {
631 struct trace_t trace
= {NULL
, NULL
, 228, LOCATE_static_type___MMClosure___signature
};
632 val_t
*variable
= NULL
;
633 void **closurevariable
= NULL
;
634 trace
.prev
= tracehead
; tracehead
= &trace
;
635 trace
.file
= LOCATE_static_type
;
636 tracehead
= trace
.prev
;
637 return ATTR_static_type___MMClosure____signature( self
) /*MMClosure::_signature*/;
639 val_t
static_type___MMClosure___is_break(val_t self
) {
640 struct trace_t trace
= {NULL
, NULL
, 231, LOCATE_static_type___MMClosure___is_break
};
641 val_t
*variable
= NULL
;
642 void **closurevariable
= NULL
;
643 trace
.prev
= tracehead
; tracehead
= &trace
;
644 trace
.file
= LOCATE_static_type
;
645 tracehead
= trace
.prev
;
646 return ATTR_static_type___MMClosure____is_break( self
) /*MMClosure::_is_break*/;
648 val_t
static_type___MMClosure___is_optional(val_t self
) {
649 struct trace_t trace
= {NULL
, NULL
, 235, LOCATE_static_type___MMClosure___is_optional
};
650 val_t
*variable
= NULL
;
651 void **closurevariable
= NULL
;
652 trace
.prev
= tracehead
; tracehead
= &trace
;
653 trace
.file
= LOCATE_static_type
;
654 tracehead
= trace
.prev
;
655 return ATTR_static_type___MMClosure____is_optional( self
) /*MMClosure::_is_optional*/;
657 val_t
static_type___MMClosure___adaptation_to(val_t self
, val_t param0
) {
658 struct trace_t trace
= {NULL
, NULL
, 239, LOCATE_static_type___MMClosure___adaptation_to
};
660 void **closurevariable
= NULL
;
661 trace
.prev
= tracehead
; tracehead
= &trace
;
662 trace
.file
= LOCATE_static_type
;
664 variable
[1] = param0
;
665 variable
[3] = variable
[0];
666 variable
[3] = ATTR_static_type___MMClosure____signature(variable
[3]) /*MMClosure::_signature*/;
667 variable
[3] = CALL_static_type___MMSignature___adaptation_to(variable
[3])(variable
[3], variable
[1] /*r*/) /*MMSignature::adaptation_to*/;
668 variable
[4] = variable
[0];
669 variable
[4] = ATTR_static_type___MMClosure____is_break(variable
[4]) /*MMClosure::_is_break*/;
670 variable
[5] = variable
[0];
671 variable
[5] = ATTR_static_type___MMClosure____is_optional(variable
[5]) /*MMClosure::_is_optional*/;
672 variable
[6] = NEW_MMClosure_static_type___MMClosure___init(variable
[3], variable
[4], variable
[5]); /*new MMClosure*/
673 variable
[3] = variable
[6];
674 variable
[2] = variable
[3];
676 return_label19
: while(false);
677 tracehead
= trace
.prev
;
680 void static_type___MMClosure___init(val_t self
, val_t param0
, val_t param1
, val_t param2
, int* init_table
) {
681 struct trace_t trace
= {NULL
, NULL
, 245, LOCATE_static_type___MMClosure___init
};
683 void **closurevariable
= NULL
;
684 trace
.prev
= tracehead
; tracehead
= &trace
;
685 trace
.file
= LOCATE_static_type
;
687 variable
[1] = param0
;
688 variable
[2] = param1
;
689 variable
[3] = param2
;
690 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMClosure
].i
]) return;
691 variable
[5] = variable
[0];
692 ATTR_static_type___MMClosure____signature(variable
[5]) /*MMClosure::_signature*/ = variable
[1] /*s*/;
693 variable
[5] = variable
[0];
694 ATTR_static_type___MMClosure____is_break(variable
[5]) /*MMClosure::_is_break*/ = variable
[2] /*is_break*/;
695 variable
[5] = variable
[0];
696 ATTR_static_type___MMClosure____is_optional(variable
[5]) /*MMClosure::_is_optional*/ = variable
[3] /*is_optional*/;
697 return_label20
: while(false);
698 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMClosure
].i
] = 1;
699 tracehead
= trace
.prev
;
702 val_t
static_type___MMClosure___not_for_self(val_t self
) {
703 struct trace_t trace
= {NULL
, NULL
, 252, LOCATE_static_type___MMClosure___not_for_self
};
705 void **closurevariable
= NULL
;
706 trace
.prev
= tracehead
; tracehead
= &trace
;
707 trace
.file
= LOCATE_static_type
;
709 variable
[3] = variable
[0];
710 variable
[3] = ATTR_static_type___MMClosure____signature(variable
[3]) /*MMClosure::_signature*/;
711 variable
[3] = CALL_static_type___MMSignature___not_for_self(variable
[3])(variable
[3]) /*MMSignature::not_for_self*/;
712 variable
[2] = variable
[3];
713 variable
[3] = variable
[0];
714 variable
[3] = ATTR_static_type___MMClosure____signature(variable
[3]) /*MMClosure::_signature*/;
715 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::==*/)))))));
716 if (UNTAG_Bool(variable
[3])) { /*if*/
717 variable
[3] = variable
[0];
718 variable
[3] = ATTR_static_type___MMClosure____is_break(variable
[3]) /*MMClosure::_is_break*/;
719 variable
[4] = variable
[0];
720 variable
[4] = ATTR_static_type___MMClosure____is_optional(variable
[4]) /*MMClosure::_is_optional*/;
721 variable
[5] = NEW_MMClosure_static_type___MMClosure___init( variable
[2] /*sig*/, variable
[3], variable
[4]); /*new MMClosure*/
722 variable
[3] = variable
[5];
723 variable
[1] = variable
[3];
726 variable
[3] = variable
[0];
727 variable
[1] = variable
[3];
730 return_label21
: while(false);
731 tracehead
= trace
.prev
;
734 val_t
static_type___MMAncestor___to_s(val_t self
) {
735 struct trace_t trace
= {NULL
, NULL
, 282, LOCATE_static_type___MMAncestor___to_s
};
737 void **closurevariable
= NULL
;
738 trace
.prev
= tracehead
; tracehead
= &trace
;
739 trace
.file
= LOCATE_static_type
;
741 variable
[2] = variable
[0];
742 variable
[2] = CALL_static_type___MMAncestor___stype(variable
[2])(variable
[2]) /*MMAncestor::stype*/;
743 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::==*/)))));
744 if (UNTAG_Bool(variable
[2])) { /*if*/
745 variable
[2] = variable
[0];
746 variable
[2] = CALL_static_type___MMAncestor___local_class(variable
[2])(variable
[2]) /*MMAncestor::local_class*/;
747 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*MMLocalClass::to_s*/;
748 variable
[1] = variable
[2];
751 variable
[2] = variable
[0];
752 variable
[2] = CALL_static_type___MMAncestor___stype(variable
[2])(variable
[2]) /*MMAncestor::stype*/;
753 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*Object::to_s*/;
754 variable
[1] = variable
[2];
757 return_label22
: while(false);
758 tracehead
= trace
.prev
;
761 val_t
static_type___MMAncestor___stype(val_t self
) {
762 struct trace_t trace
= {NULL
, NULL
, 265, LOCATE_static_type___MMAncestor___stype
};
763 val_t
*variable
= NULL
;
764 void **closurevariable
= NULL
;
765 trace
.prev
= tracehead
; tracehead
= &trace
;
766 trace
.file
= LOCATE_static_type
;
767 tracehead
= trace
.prev
;
768 return ATTR_static_type___MMAncestor____stype( self
) /*MMAncestor::_stype*/;
770 void static_type___MMAncestor___stype__eq(val_t self
, val_t param0
) {
771 struct trace_t trace
= {NULL
, NULL
, 265, LOCATE_static_type___MMAncestor___stype__eq
};
772 val_t
*variable
= NULL
;
773 void **closurevariable
= NULL
;
774 trace
.prev
= tracehead
; tracehead
= &trace
;
775 trace
.file
= LOCATE_static_type
;
776 ATTR_static_type___MMAncestor____stype( self
) /*MMAncestor::_stype*/ = param0
;
777 tracehead
= trace
.prev
;
780 val_t
static_type___MMAncestor___inheriter(val_t self
) {
781 struct trace_t trace
= {NULL
, NULL
, 268, LOCATE_static_type___MMAncestor___inheriter
};
782 val_t
*variable
= NULL
;
783 void **closurevariable
= NULL
;
784 trace
.prev
= tracehead
; tracehead
= &trace
;
785 trace
.file
= LOCATE_static_type
;
786 tracehead
= trace
.prev
;
787 return ATTR_static_type___MMAncestor____inheriter( self
) /*MMAncestor::_inheriter*/;
789 void static_type___MMAncestor___inheriter__eq(val_t self
, val_t param0
) {
790 struct trace_t trace
= {NULL
, NULL
, 268, LOCATE_static_type___MMAncestor___inheriter__eq
};
791 val_t
*variable
= NULL
;
792 void **closurevariable
= NULL
;
793 trace
.prev
= tracehead
; tracehead
= &trace
;
794 trace
.file
= LOCATE_static_type
;
795 ATTR_static_type___MMAncestor____inheriter( self
) /*MMAncestor::_inheriter*/ = param0
;
796 tracehead
= trace
.prev
;
799 val_t
static_type___MMAncestor___is_reffinement(val_t self
) {
800 struct trace_t trace
= {NULL
, NULL
, 271, LOCATE_static_type___MMAncestor___is_reffinement
};
802 void **closurevariable
= NULL
;
803 trace
.prev
= tracehead
; tracehead
= &trace
;
804 trace
.file
= LOCATE_static_type
;
806 variable
[2] = variable
[0];
807 variable
[2] = CALL_static_type___MMAncestor___stype(variable
[2])(variable
[2]) /*MMAncestor::stype*/;
808 variable
[2] = CALL_static_type___MMType___module(variable
[2])(variable
[2]) /*MMType::module*/;
809 variable
[3] = variable
[0];
810 variable
[3] = CALL_static_type___MMAncestor___stype(variable
[3])(variable
[3]) /*MMAncestor::stype*/;
811 variable
[3] = CALL_static_type___MMType___module(variable
[3])(variable
[3]) /*MMType::module*/;
812 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::==*/)))))));
813 variable
[1] = variable
[2];
815 return_label23
: while(false);
816 tracehead
= trace
.prev
;
819 val_t
static_type___MMAncestor___is_specialisation(val_t self
) {
820 struct trace_t trace
= {NULL
, NULL
, 275, LOCATE_static_type___MMAncestor___is_specialisation
};
822 void **closurevariable
= NULL
;
823 trace
.prev
= tracehead
; tracehead
= &trace
;
824 trace
.file
= LOCATE_static_type
;
826 variable
[2] = variable
[0];
827 variable
[2] = CALL_static_type___MMAncestor___stype(variable
[2])(variable
[2]) /*MMAncestor::stype*/;
828 variable
[2] = CALL_static_type___MMType___local_class(variable
[2])(variable
[2]) /*MMType::local_class*/;
829 variable
[2] = CALL_abstractmetamodel___MMLocalClass___global(variable
[2])(variable
[2]) /*MMLocalClass::global*/;
830 variable
[3] = variable
[0];
831 variable
[3] = CALL_static_type___MMAncestor___inheriter(variable
[3])(variable
[3]) /*MMAncestor::inheriter*/;
832 variable
[3] = CALL_static_type___MMType___local_class(variable
[3])(variable
[3]) /*MMType::local_class*/;
833 variable
[3] = CALL_abstractmetamodel___MMLocalClass___global(variable
[3])(variable
[3]) /*MMLocalClass::global*/;
834 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::==*/)))))));
835 variable
[1] = variable
[2];
837 return_label24
: while(false);
838 tracehead
= trace
.prev
;
841 val_t
static_type___MMAncestor___local_class(val_t self
) {
842 struct trace_t trace
= {NULL
, NULL
, 279, LOCATE_static_type___MMAncestor___local_class
};
843 val_t
*variable
= NULL
;
844 void **closurevariable
= NULL
;
845 trace
.prev
= tracehead
; tracehead
= &trace
;
846 trace
.file
= LOCATE_static_type
;
847 fprintf(stderr
, "Deferred method called");
848 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 279);
850 tracehead
= trace
.prev
;
853 void static_type___MMAncestor___init(val_t self
, int* init_table
) {
854 struct trace_t trace
= {NULL
, NULL
, 0, LOCATE_static_type___MMAncestor___init
};
855 val_t
*variable
= NULL
;
856 void **closurevariable
= NULL
;
857 trace
.prev
= tracehead
; tracehead
= &trace
;
858 trace
.file
= LOCATE_static_type
;
859 tracehead
= trace
.prev
;
862 val_t
static_type___MMType___module(val_t self
) {
863 struct trace_t trace
= {NULL
, NULL
, 295, LOCATE_static_type___MMType___module
};
864 val_t
*variable
= NULL
;
865 void **closurevariable
= NULL
;
866 trace
.prev
= tracehead
; tracehead
= &trace
;
867 trace
.file
= LOCATE_static_type
;
868 fprintf(stderr
, "Deferred method called");
869 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 295);
871 tracehead
= trace
.prev
;
874 val_t
static_type___MMType___local_class(val_t self
) {
875 struct trace_t trace
= {NULL
, NULL
, 298, LOCATE_static_type___MMType___local_class
};
876 val_t
*variable
= NULL
;
877 void **closurevariable
= NULL
;
878 trace
.prev
= tracehead
; tracehead
= &trace
;
879 trace
.file
= LOCATE_static_type
;
880 fprintf(stderr
, "Deferred method called");
881 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 298);
883 tracehead
= trace
.prev
;
886 val_t
static_type___MMType_____l(val_t self
, val_t param0
) {
887 struct trace_t trace
= {NULL
, NULL
, 301, LOCATE_static_type___MMType_____l
};
888 val_t
*variable
= NULL
;
889 void **closurevariable
= NULL
;
890 trace
.prev
= tracehead
; tracehead
= &trace
;
891 trace
.file
= LOCATE_static_type
;
892 fprintf(stderr
, "Deferred method called");
893 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 301);
895 tracehead
= trace
.prev
;
898 val_t
static_type___MMType___is_supertype(val_t self
, val_t param0
) {
899 struct trace_t trace
= {NULL
, NULL
, 304, LOCATE_static_type___MMType___is_supertype
};
900 val_t
*variable
= NULL
;
901 void **closurevariable
= NULL
;
902 trace
.prev
= tracehead
; tracehead
= &trace
;
903 trace
.file
= LOCATE_static_type
;
904 fprintf(stderr
, "Deferred method called");
905 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 304);
907 tracehead
= trace
.prev
;
910 val_t
static_type___MMType___for_module(val_t self
, val_t param0
) {
911 struct trace_t trace
= {NULL
, NULL
, 309, LOCATE_static_type___MMType___for_module
};
912 val_t
*variable
= NULL
;
913 void **closurevariable
= NULL
;
914 trace
.prev
= tracehead
; tracehead
= &trace
;
915 trace
.file
= LOCATE_static_type
;
916 fprintf(stderr
, "Deferred method called");
917 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 309);
919 tracehead
= trace
.prev
;
922 val_t
static_type___MMType___adapt_to(val_t self
, val_t param0
) {
923 struct trace_t trace
= {NULL
, NULL
, 312, LOCATE_static_type___MMType___adapt_to
};
924 val_t
*variable
= NULL
;
925 void **closurevariable
= NULL
;
926 trace
.prev
= tracehead
; tracehead
= &trace
;
927 trace
.file
= LOCATE_static_type
;
928 fprintf(stderr
, "Deferred method called");
929 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 312);
931 tracehead
= trace
.prev
;
934 val_t
static_type___MMType___upcast_for(val_t self
, val_t param0
) {
935 struct trace_t trace
= {NULL
, NULL
, 316, LOCATE_static_type___MMType___upcast_for
};
936 val_t
*variable
= NULL
;
937 void **closurevariable
= NULL
;
938 trace
.prev
= tracehead
; tracehead
= &trace
;
939 trace
.file
= LOCATE_static_type
;
940 fprintf(stderr
, "Deferred method called");
941 fprintf(stderr
, " (%s:%d)\n", LOCATE_static_type
, 316);
943 tracehead
= trace
.prev
;
946 val_t
static_type___MMType___not_for_self(val_t self
) {
947 struct trace_t trace
= {NULL
, NULL
, 320, LOCATE_static_type___MMType___not_for_self
};
949 void **closurevariable
= NULL
;
950 trace
.prev
= tracehead
; tracehead
= &trace
;
951 trace
.file
= LOCATE_static_type
;
953 variable
[2] = variable
[0];
954 variable
[1] = variable
[2];
956 return_label25
: while(false);
957 tracehead
= trace
.prev
;
960 void static_type___MMType___init(val_t self
, int* init_table
) {
961 struct trace_t trace
= {NULL
, NULL
, 0, LOCATE_static_type___MMType___init
};
962 val_t
*variable
= NULL
;
963 void **closurevariable
= NULL
;
964 trace
.prev
= tracehead
; tracehead
= &trace
;
965 trace
.file
= LOCATE_static_type
;
966 tracehead
= trace
.prev
;
969 val_t
static_type___MMTypeClass___to_s(val_t self
) {
970 struct trace_t trace
= {NULL
, NULL
, 331, LOCATE_static_type___MMTypeClass___to_s
};
972 void **closurevariable
= NULL
;
973 trace
.prev
= tracehead
; tracehead
= &trace
;
974 trace
.file
= LOCATE_static_type
;
976 variable
[2] = variable
[0];
977 variable
[2] = ATTR_static_type___MMTypeClass____local_class(variable
[2]) /*MMTypeClass::_local_class*/;
978 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*MMLocalClass::to_s*/;
979 variable
[1] = variable
[2];
981 return_label26
: while(false);
982 tracehead
= trace
.prev
;
985 val_t
static_type___MMTypeClass___module(val_t self
) {
986 struct trace_t trace
= {NULL
, NULL
, 328, LOCATE_static_type___MMTypeClass___module
};
988 void **closurevariable
= NULL
;
989 trace
.prev
= tracehead
; tracehead
= &trace
;
990 trace
.file
= LOCATE_static_type
;
992 variable
[2] = variable
[0];
993 variable
[2] = ATTR_static_type___MMTypeClass____local_class(variable
[2]) /*MMTypeClass::_local_class*/;
994 variable
[2] = CALL_abstractmetamodel___MMLocalClass___module(variable
[2])(variable
[2]) /*MMLocalClass::module*/;
995 variable
[1] = variable
[2];
997 return_label27
: while(false);
998 tracehead
= trace
.prev
;
1001 val_t
static_type___MMTypeClass___local_class(val_t self
) {
1002 struct trace_t trace
= {NULL
, NULL
, 327, LOCATE_static_type___MMTypeClass___local_class
};
1003 val_t
*variable
= NULL
;
1004 void **closurevariable
= NULL
;
1005 trace
.prev
= tracehead
; tracehead
= &trace
;
1006 trace
.file
= LOCATE_static_type
;
1007 tracehead
= trace
.prev
;
1008 return ATTR_static_type___MMTypeClass____local_class( self
) /*MMTypeClass::_local_class*/;
1010 val_t
static_type___MMTypeClass_____l(val_t self
, val_t param0
) {
1011 struct trace_t trace
= {NULL
, NULL
, 329, LOCATE_static_type___MMTypeClass_____l
};
1013 void **closurevariable
= NULL
;
1014 trace
.prev
= tracehead
; tracehead
= &trace
;
1015 trace
.file
= LOCATE_static_type
;
1017 variable
[1] = param0
;
1018 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::==*/)))))));
1019 variable
[4] = variable
[3];
1020 if (UNTAG_Bool(variable
[4])) { /* and */
1021 variable
[4] = variable
[0];
1022 variable
[4] = CALL_static_type___MMType___is_supertype( variable
[1] /*t*/)( variable
[1] /*t*/, variable
[4]) /*MMType::is_supertype*/;
1024 variable
[3] = variable
[4];
1025 variable
[2] = variable
[3];
1026 goto return_label28
;
1027 return_label28
: while(false);
1028 tracehead
= trace
.prev
;
1031 val_t
static_type___MMTypeClass___upcast_for(val_t self
, val_t param0
) {
1032 struct trace_t trace
= {NULL
, NULL
, 336, LOCATE_static_type___MMTypeClass___upcast_for
};
1034 void **closurevariable
= NULL
;
1035 trace
.prev
= tracehead
; tracehead
= &trace
;
1036 trace
.file
= LOCATE_static_type
;
1038 variable
[1] = param0
;
1039 variable
[3] = variable
[0];
1040 variable
[3] = ATTR_static_type___MMTypeClass____local_class(variable
[3]) /*MMTypeClass::_local_class*/;
1041 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::==*/)))))));
1042 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
, 338); nit_exit(1);}
1043 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::==*/)))))));
1044 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
, 339); nit_exit(1);}
1045 variable
[4] = variable
[0];
1046 variable
[3] = variable
[4];
1047 variable
[4] = variable
[0];
1048 variable
[4] = ATTR_static_type___MMTypeClass____local_class(variable
[4]) /*MMTypeClass::_local_class*/;
1049 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::==*/)))))));
1050 if (UNTAG_Bool(variable
[4])) { /*if*/
1051 variable
[4] = variable
[0];
1052 variable
[4] = ATTR_static_type___MMTypeClass____local_class(variable
[4]) /*MMTypeClass::_local_class*/;
1053 variable
[4] = CALL_static_type___MMLocalClass___ancestor(variable
[4])(variable
[4], variable
[1] /*c*/) /*MMLocalClass::ancestor*/;
1054 variable
[3] = variable
[4] /*t=*/;
1056 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::==*/)))))));
1057 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
, 345); nit_exit(1);}
1058 variable
[2] = variable
[3] /*t*/;
1059 goto return_label29
;
1060 return_label29
: while(false);
1061 tracehead
= trace
.prev
;
1064 void static_type___MMTypeClass___init(val_t self
, val_t param0
, int* init_table
) {
1065 struct trace_t trace
= {NULL
, NULL
, 349, LOCATE_static_type___MMTypeClass___init
};
1067 void **closurevariable
= NULL
;
1068 trace
.prev
= tracehead
; tracehead
= &trace
;
1069 trace
.file
= LOCATE_static_type
;
1071 variable
[1] = param0
;
1072 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMTypeClass
].i
]) return;
1073 variable
[3] = variable
[0];
1074 ATTR_static_type___MMTypeClass____local_class(variable
[3]) /*MMTypeClass::_local_class*/ = variable
[1] /*c*/;
1075 return_label30
: while(false);
1076 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMTypeClass
].i
] = 1;
1077 tracehead
= trace
.prev
;
1080 val_t
static_type___MMTypeSimpleClass___is_supertype(val_t self
, val_t param0
) {
1081 struct trace_t trace
= {NULL
, NULL
, 357, LOCATE_static_type___MMTypeSimpleClass___is_supertype
};
1083 void **closurevariable
= NULL
;
1084 trace
.prev
= tracehead
; tracehead
= &trace
;
1085 trace
.file
= LOCATE_static_type
;
1087 variable
[1] = param0
;
1088 variable
[3] = CALL_static_type___MMType___local_class( variable
[1] /*t*/)( variable
[1] /*t*/) /*MMType::local_class*/;
1089 variable
[3] = CALL_abstractmetamodel___MMLocalClass___cshe(variable
[3])(variable
[3]) /*MMLocalClass::cshe*/;
1090 variable
[4] = variable
[0];
1091 variable
[4] = ATTR_static_type___MMTypeClass____local_class(variable
[4]) /*MMTypeClass::_local_class*/;
1092 variable
[3] = CALL_partial_order___PartialOrderElement_____leq(variable
[3])(variable
[3], variable
[4]) /*PartialOrderElement::<=*/;
1093 variable
[2] = variable
[3];
1094 goto return_label31
;
1095 return_label31
: while(false);
1096 tracehead
= trace
.prev
;
1099 val_t
static_type___MMTypeSimpleClass___for_module(val_t self
, val_t param0
) {
1100 struct trace_t trace
= {NULL
, NULL
, 362, LOCATE_static_type___MMTypeSimpleClass___for_module
};
1102 void **closurevariable
= NULL
;
1103 trace
.prev
= tracehead
; tracehead
= &trace
;
1104 trace
.file
= LOCATE_static_type
;
1106 variable
[1] = param0
;
1107 variable
[4] = variable
[0];
1108 variable
[3] = variable
[4];
1109 variable
[4] = variable
[0];
1110 variable
[4] = CALL_static_type___MMType___module(variable
[4])(variable
[4]) /*MMTypeClass::module*/;
1111 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::==*/)))))));
1112 if (UNTAG_Bool(variable
[4])) { /*if*/
1113 variable
[4] = variable
[0];
1114 variable
[4] = ATTR_static_type___MMTypeClass____local_class(variable
[4]) /*MMTypeClass::_local_class*/;
1115 variable
[4] = CALL_abstractmetamodel___MMLocalClass___for_module(variable
[4])(variable
[4], variable
[1] /*mod*/) /*MMLocalClass::for_module*/;
1116 variable
[4] = CALL_static_type___MMLocalClass___get_type(variable
[4])(variable
[4]) /*MMLocalClass::get_type*/;
1117 variable
[3] = variable
[4] /*t=*/;
1119 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::==*/)))))));
1120 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
, 368); nit_exit(1);}
1121 variable
[2] = variable
[3] /*t*/;
1122 goto return_label32
;
1123 return_label32
: while(false);
1124 tracehead
= trace
.prev
;
1127 val_t
static_type___MMTypeSimpleClass___adapt_to(val_t self
, val_t param0
) {
1128 struct trace_t trace
= {NULL
, NULL
, 372, LOCATE_static_type___MMTypeSimpleClass___adapt_to
};
1130 void **closurevariable
= NULL
;
1131 trace
.prev
= tracehead
; tracehead
= &trace
;
1132 trace
.file
= LOCATE_static_type
;
1134 variable
[1] = param0
;
1135 variable
[3] = variable
[0];
1136 variable
[2] = variable
[3];
1137 goto return_label33
;
1138 return_label33
: while(false);
1139 tracehead
= trace
.prev
;
1142 void static_type___MMTypeSimpleClass___init(val_t self
, val_t param0
, int* init_table
) {
1143 struct trace_t trace
= {NULL
, NULL
, 374, LOCATE_static_type___MMTypeSimpleClass___init
};
1145 void **closurevariable
= NULL
;
1146 trace
.prev
= tracehead
; tracehead
= &trace
;
1147 trace
.file
= LOCATE_static_type
;
1149 variable
[1] = param0
;
1150 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMTypeSimpleClass
].i
]) return;
1151 CALL_static_type___MMTypeClass___init(variable
[0])(variable
[0], variable
[1] /*c*/, init_table
/*YYY*/) /*MMTypeClass::init*/;
1152 return_label34
: while(false);
1153 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMTypeSimpleClass
].i
] = 1;
1154 tracehead
= trace
.prev
;
1157 val_t
static_type___MMTypeNone___module(val_t self
) {
1158 struct trace_t trace
= {NULL
, NULL
, 383, LOCATE_static_type___MMTypeNone___module
};
1159 val_t
*variable
= NULL
;
1160 void **closurevariable
= NULL
;
1161 trace
.prev
= tracehead
; tracehead
= &trace
;
1162 trace
.file
= LOCATE_static_type
;
1163 tracehead
= trace
.prev
;
1164 return ATTR_static_type___MMTypeNone____module( self
) /*MMTypeNone::_module*/;
1166 val_t
static_type___MMTypeNone___local_class(val_t self
) {
1167 struct trace_t trace
= {NULL
, NULL
, 386, LOCATE_static_type___MMTypeNone___local_class
};
1169 void **closurevariable
= NULL
;
1170 trace
.prev
= tracehead
; tracehead
= &trace
;
1171 trace
.file
= LOCATE_static_type
;
1173 fprintf(stderr
, "Aborted"); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeNone___local_class
, LOCATE_static_type
, 386); nit_exit(1);
1174 return_label35
: while(false);
1175 tracehead
= trace
.prev
;
1178 val_t
static_type___MMTypeNone_____l(val_t self
, val_t param0
) {
1179 struct trace_t trace
= {NULL
, NULL
, 384, LOCATE_static_type___MMTypeNone_____l
};
1181 void **closurevariable
= NULL
;
1182 trace
.prev
= tracehead
; tracehead
= &trace
;
1183 trace
.file
= LOCATE_static_type
;
1185 variable
[1] = param0
;
1186 variable
[2] = TAG_Bool(true);
1187 goto return_label36
;
1188 return_label36
: while(false);
1189 tracehead
= trace
.prev
;
1192 val_t
static_type___MMTypeNone___is_supertype(val_t self
, val_t param0
) {
1193 struct trace_t trace
= {NULL
, NULL
, 385, LOCATE_static_type___MMTypeNone___is_supertype
};
1195 void **closurevariable
= NULL
;
1196 trace
.prev
= tracehead
; tracehead
= &trace
;
1197 trace
.file
= LOCATE_static_type
;
1199 variable
[1] = param0
;
1200 variable
[2] = TAG_Bool(false);
1201 goto return_label37
;
1202 return_label37
: while(false);
1203 tracehead
= trace
.prev
;
1206 val_t
static_type___MMTypeNone___upcast_for(val_t self
, val_t param0
) {
1207 struct trace_t trace
= {NULL
, NULL
, 387, LOCATE_static_type___MMTypeNone___upcast_for
};
1209 void **closurevariable
= NULL
;
1210 trace
.prev
= tracehead
; tracehead
= &trace
;
1211 trace
.file
= LOCATE_static_type
;
1213 variable
[1] = param0
;
1214 variable
[3] = variable
[0];
1215 variable
[2] = variable
[3];
1216 goto return_label38
;
1217 return_label38
: while(false);
1218 tracehead
= trace
.prev
;
1221 void static_type___MMTypeNone___init(val_t self
, val_t param0
, int* init_table
) {
1222 struct trace_t trace
= {NULL
, NULL
, 389, LOCATE_static_type___MMTypeNone___init
};
1224 void **closurevariable
= NULL
;
1225 trace
.prev
= tracehead
; tracehead
= &trace
;
1226 trace
.file
= LOCATE_static_type
;
1228 variable
[1] = param0
;
1229 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMTypeNone
].i
]) return;
1230 variable
[3] = variable
[0];
1231 ATTR_static_type___MMTypeNone____module(variable
[3]) /*MMTypeNone::_module*/ = variable
[1] /*m*/;
1232 return_label39
: while(false);
1233 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMTypeNone
].i
] = 1;
1234 tracehead
= trace
.prev
;
1237 val_t
static_type___MMModule___type_none(val_t self
) {
1238 struct trace_t trace
= {NULL
, NULL
, 393, LOCATE_static_type___MMModule___type_none
};
1239 val_t
*variable
= NULL
;
1240 void **closurevariable
= NULL
;
1241 trace
.prev
= tracehead
; tracehead
= &trace
;
1242 trace
.file
= LOCATE_static_type
;
1243 tracehead
= trace
.prev
;
1244 return ATTR_static_type___MMModule____type_none( self
) /*MMModule::_type_none*/;