Update c_src
[nit.git] / c_src / static_type._sep.c
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, LOCATE_static_type, 27, LOCATE_static_type___MMLocalClass___get_type};
5 val_t variable0;
6 trace.prev = tracehead; tracehead = &trace;
7 variable0 = ATTR_static_type___MMLocalClass____base_type_cache( self) /*MMLocalClass::_base_type_cache*/;
8 variable0 = TAG_Bool((variable0 == NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, NIT_NULL /*null*/) /*Object::==*/)))));
9 if (UNTAG_Bool(variable0)) { /*if*/
10 variable0 = NEW_static_type___MMTypeSimpleClass___init( self); /*new MMTypeSimpleClass*/
11 ATTR_static_type___MMLocalClass____base_type_cache( self) /*MMLocalClass::_base_type_cache*/ = variable0;
12 }
13 variable0 = ATTR_static_type___MMLocalClass____base_type_cache( self) /*MMLocalClass::_base_type_cache*/;
14 goto return_label0;
15 return_label0: while(false);
16 tracehead = trace.prev;
17 return variable0;
18 }
19 void static_type___MMLocalClass___add_ancestor(val_t self, val_t param0) {
20 struct trace_t trace = {NULL, LOCATE_static_type, 34, LOCATE_static_type___MMLocalClass___add_ancestor};
21 val_t variable0;
22 val_t variable1;
23 val_t variable2;
24 trace.prev = tracehead; tracehead = &trace;
25 variable0 = param0;
26 variable1 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
27 variable2 = ((static_type___MMAncestor___local_class_t)CALL( variable0 /*a*/,COLOR_static_type___MMAncestor___local_class))( variable0 /*a*/) /*MMAncestor::local_class*/;
28 variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable2) /*Map::has_key*/;
29 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { 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);}
30 variable1 = ((static_type___MMAncestor___local_class_t)CALL( variable0 /*a*/,COLOR_static_type___MMAncestor___local_class))( variable0 /*a*/) /*MMAncestor::local_class*/;
31 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == self) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, self)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, self) /*Object::==*/)))))));
32 if (!UNTAG_Bool(variable1)) { 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);}
33 variable1 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
34 variable2 = ((static_type___MMAncestor___local_class_t)CALL( variable0 /*a*/,COLOR_static_type___MMAncestor___local_class))( variable0 /*a*/) /*MMAncestor::local_class*/;
35 ((abstract_collection___Map_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1, variable2, variable0 /*a*/) /*Map::[]=*/;
36 tracehead = trace.prev;
37 return;
38 }
39 val_t static_type___MMLocalClass___ancestors(val_t self) {
40 struct trace_t trace = {NULL, LOCATE_static_type, 42, LOCATE_static_type___MMLocalClass___ancestors};
41 trace.prev = tracehead; tracehead = &trace;
42 tracehead = trace.prev;
43 return ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
44 }
45 val_t static_type___MMLocalClass___ancestor(val_t self, val_t param0) {
46 struct trace_t trace = {NULL, LOCATE_static_type, 45, LOCATE_static_type___MMLocalClass___ancestor};
47 val_t variable0;
48 val_t variable1;
49 trace.prev = tracehead; tracehead = &trace;
50 variable0 = param0;
51 variable1 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
52 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))))));
53 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMLocalClass___ancestor, LOCATE_static_type, 48); nit_exit(1);}
54 variable1 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
55 variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable0 /*c*/) /*Map::has_key*/;
56 if (UNTAG_Bool(variable1)) { /*if*/
57 variable1 = ATTR_static_type___MMLocalClass____ancestors( self) /*MMLocalClass::_ancestors*/;
58 variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1, variable0 /*c*/) /*Map::[]*/;
59 variable1 = ((static_type___MMAncestor___stype_t)CALL(variable1,COLOR_static_type___MMAncestor___stype))(variable1) /*MMAncestor::stype*/;
60 goto return_label2;
61 }
62 variable1 = NIT_NULL /*null*/;
63 goto return_label2;
64 return_label2: while(false);
65 tracehead = trace.prev;
66 return variable1;
67 }
68 val_t static_type___MMLocalProperty___signature(val_t self) {
69 struct trace_t trace = {NULL, LOCATE_static_type, 57, LOCATE_static_type___MMLocalProperty___signature};
70 trace.prev = tracehead; tracehead = &trace;
71 tracehead = trace.prev;
72 return ATTR_static_type___MMLocalProperty____signature( self) /*MMLocalProperty::_signature*/;
73 }
74 void static_type___MMLocalProperty___signature__eq(val_t self, val_t param0) {
75 struct trace_t trace = {NULL, LOCATE_static_type, 57, LOCATE_static_type___MMLocalProperty___signature__eq};
76 trace.prev = tracehead; tracehead = &trace;
77 ATTR_static_type___MMLocalProperty____signature( self) /*MMLocalProperty::_signature*/ = param0;
78 tracehead = trace.prev;
79 return;
80 }
81 val_t static_type___MMLocalProperty___signature_for(val_t self, val_t param0) {
82 struct trace_t trace = {NULL, LOCATE_static_type, 62, LOCATE_static_type___MMLocalProperty___signature_for};
83 val_t variable0;
84 val_t variable1;
85 val_t variable2;
86 trace.prev = tracehead; tracehead = &trace;
87 variable0 = param0;
88 variable1 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
89 variable1 = ((static_type___MMLocalClass___get_type_t)CALL(variable1,COLOR_static_type___MMLocalClass___get_type))(variable1) /*MMLocalClass::get_type*/;
90 variable1 = TAG_Bool(( variable0 /*t*/ == variable1) || (( variable0 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*t*/,variable1)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*t*/,COLOR_kernel___Object_____eqeq))( variable0 /*t*/, variable1) /*Object::==*/)))));
91 if (UNTAG_Bool(variable1)) { /*if*/
92 variable1 = ((static_type___MMLocalProperty___signature_t)CALL( self,COLOR_static_type___MMLocalProperty___signature))( self) /*MMLocalProperty::signature*/;
93 goto return_label3;
94 }
95 variable1 = ATTR_static_type___MMLocalProperty____signatures_cache( self) /*MMLocalProperty::_signatures_cache*/;
96 variable1 = ((abstract_collection___CoupleMap___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable0 /*t*/) /*CoupleMap::has_key*/;
97 if (UNTAG_Bool(variable1)) { /*if*/
98 variable1 = ATTR_static_type___MMLocalProperty____signatures_cache( self) /*MMLocalProperty::_signatures_cache*/;
99 variable1 = ((abstract_collection___CoupleMap_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1, variable0 /*t*/) /*CoupleMap::[]*/;
100 goto return_label3;
101 }
102 variable2 = ((static_type___MMLocalProperty___signature_t)CALL( self,COLOR_static_type___MMLocalProperty___signature))( self) /*MMLocalProperty::signature*/;
103 variable2 = ((static_type___MMSignature___adaptation_to_t)CALL(variable2,COLOR_static_type___MMSignature___adaptation_to))(variable2, variable0 /*t*/) /*MMSignature::adaptation_to*/;
104 variable1 = variable2;
105 variable2 = ATTR_static_type___MMLocalProperty____signatures_cache( self) /*MMLocalProperty::_signatures_cache*/;
106 ((hash___HashMap_____braeq_t)CALL(variable2,COLOR_abstract_collection___Map_____braeq))(variable2, variable0 /*t*/, variable1 /*res*/) /*HashMap::[]=*/;
107 variable1 = variable1 /*res*/;
108 goto return_label3;
109 return_label3: while(false);
110 tracehead = trace.prev;
111 return variable1;
112 }
113 val_t static_type___MMSignature___recv(val_t self) {
114 struct trace_t trace = {NULL, LOCATE_static_type, 76, LOCATE_static_type___MMSignature___recv};
115 trace.prev = tracehead; tracehead = &trace;
116 tracehead = trace.prev;
117 return ATTR_static_type___MMSignature____recv( self) /*MMSignature::_recv*/;
118 }
119 val_t static_type___MMSignature___return_type(val_t self) {
120 struct trace_t trace = {NULL, LOCATE_static_type, 82, LOCATE_static_type___MMSignature___return_type};
121 trace.prev = tracehead; tracehead = &trace;
122 tracehead = trace.prev;
123 return ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/;
124 }
125 val_t static_type___MMSignature___arity(val_t self) {
126 struct trace_t trace = {NULL, LOCATE_static_type, 85, LOCATE_static_type___MMSignature___arity};
127 val_t variable0;
128 trace.prev = tracehead; tracehead = &trace;
129 variable0 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
130 variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 == NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, NIT_NULL /*null*/) /*Object::==*/)))))));
131 if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature___arity, LOCATE_static_type, 88); nit_exit(1);}
132 variable0 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
133 variable0 = ((array___AbstractArray___length_t)CALL(variable0,COLOR_abstract_collection___Collection___length))(variable0) /*AbstractArray::length*/;
134 goto return_label4;
135 return_label4: while(false);
136 tracehead = trace.prev;
137 return variable0;
138 }
139 val_t static_type___MMSignature_____l(val_t self, val_t param0) {
140 struct trace_t trace = {NULL, LOCATE_static_type, 92, LOCATE_static_type___MMSignature_____l};
141 val_t variable0;
142 val_t variable1;
143 val_t variable2;
144 val_t variable3;
145 val_t variable4;
146 trace.prev = tracehead; tracehead = &trace;
147 variable0 = param0;
148 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*s*/ == NIT_NULL /*null*/) || (( variable0 /*s*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*s*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*s*/,COLOR_kernel___Object_____eqeq))( variable0 /*s*/, NIT_NULL /*null*/) /*Object::==*/)))))));
149 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature_____l, LOCATE_static_type, 95); nit_exit(1);}
150 variable1 = TAG_Bool(( self == variable0 /*s*/) || (( self != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( self,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( self, variable0 /*s*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( self,COLOR_kernel___Object_____eqeq))( self, variable0 /*s*/) /*Object::==*/)))));
151 if (UNTAG_Bool(variable1)) { /*if*/
152 variable1 = TAG_Bool(true);
153 goto return_label5;
154 }
155 variable1 = ATTR_static_type___MMSignature____recv( self) /*MMSignature::_recv*/;
156 variable1 = ((static_type___MMType___module_t)CALL(variable1,COLOR_static_type___MMType___module))(variable1) /*MMType::module*/;
157 variable2 = ((static_type___MMSignature___recv_t)CALL( variable0 /*s*/,COLOR_static_type___MMSignature___recv))( variable0 /*s*/) /*MMSignature::recv*/;
158 variable2 = ((static_type___MMType___module_t)CALL(variable2,COLOR_static_type___MMType___module))(variable2) /*MMType::module*/;
159 variable1 = TAG_Bool((variable1 == variable2) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1,variable2)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, variable2) /*Object::==*/)))));
160 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature_____l, LOCATE_static_type, 99); nit_exit(1);}
161 variable1 = ((static_type___MMSignature___arity_t)CALL( self,COLOR_static_type___MMSignature___arity))( self) /*MMSignature::arity*/;
162 variable2 = ((static_type___MMSignature___arity_t)CALL( variable0 /*s*/,COLOR_static_type___MMSignature___arity))( variable0 /*s*/) /*MMSignature::arity*/;
163 variable1 = TAG_Bool((variable1)!=(variable2));
164 variable2 = variable1;
165 if (!UNTAG_Bool(variable2)) { /* or */
166 variable2 = ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/;
167 variable2 = TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Object::==*/)))));
168 variable3 = ((static_type___MMSignature___return_type_t)CALL( variable0 /*s*/,COLOR_static_type___MMSignature___return_type))( variable0 /*s*/) /*MMSignature::return_type*/;
169 variable3 = TAG_Bool((variable3 == NIT_NULL /*null*/) || ((variable3 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable3, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable3,COLOR_kernel___Object_____eqeq))(variable3, NIT_NULL /*null*/) /*Object::==*/)))));
170 variable2 = TAG_Bool((variable2)!=(variable3));
171 }
172 variable1 = variable2;
173 if (UNTAG_Bool(variable1)) { /*if*/
174 variable1 = TAG_Bool(false);
175 goto return_label5;
176 }
177 variable1 = ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/;
178 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))))));
179 variable2 = variable1;
180 if (UNTAG_Bool(variable2)) { /* and */
181 variable2 = ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/;
182 variable3 = ((static_type___MMSignature___return_type_t)CALL( variable0 /*s*/,COLOR_static_type___MMSignature___return_type))( variable0 /*s*/) /*MMSignature::return_type*/;
183 variable2 = ((static_type___MMType_____l_t)CALL(variable2,COLOR_static_type___MMType_____l))(variable2, variable3) /*MMType::<*/;
184 variable2 = TAG_Bool(!UNTAG_Bool(variable2));
185 }
186 variable1 = variable2;
187 if (UNTAG_Bool(variable1)) { /*if*/
188 variable1 = TAG_Bool(false);
189 goto return_label5;
190 }
191 variable1 = ((static_type___MMSignature___arity_t)CALL( self,COLOR_static_type___MMSignature___arity))( self) /*MMSignature::arity*/;
192 variable2 = NEW_range___Range___without_last( TAG_Int(0), variable1); /*new Range[E]*/
193 variable1 = variable2;
194 variable1 = ((range___Range___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Range::iterator*/;
195 while (true) { /*for*/
196 variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
197 if (!UNTAG_Bool(variable2)) break; /*for*/
198 variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
199 variable3 = ((static_type___MMSignature_____bra_t)CALL( variable0 /*s*/,COLOR_static_type___MMSignature_____bra))( variable0 /*s*/, variable2 /*i*/) /*MMSignature::[]*/;
200 variable4 = ((static_type___MMSignature_____bra_t)CALL( self,COLOR_static_type___MMSignature_____bra))( self, variable2 /*i*/) /*MMSignature::[]*/;
201 variable3 = ((static_type___MMType_____l_t)CALL(variable3,COLOR_static_type___MMType_____l))(variable3, variable4) /*MMType::<*/;
202 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable3)))) { /*if*/
203 variable1 = TAG_Bool(false);
204 goto return_label5;
205 }
206 continue_6: while(0);
207 ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
208 }
209 break_6: while(0);
210 variable1 = TAG_Bool(true);
211 goto return_label5;
212 return_label5: while(false);
213 tracehead = trace.prev;
214 return variable1;
215 }
216 val_t static_type___MMSignature_____bra(val_t self, val_t param0) {
217 struct trace_t trace = {NULL, LOCATE_static_type, 113, LOCATE_static_type___MMSignature_____bra};
218 val_t variable0;
219 val_t variable1;
220 val_t variable2;
221 val_t variable3;
222 val_t variable4;
223 trace.prev = tracehead; tracehead = &trace;
224 variable0 = param0;
225 variable1 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
226 variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*AbstractArray::length*/;
227 variable1 = TAG_Bool(UNTAG_Int(variable1)>UNTAG_Int( variable0 /*i*/));
228 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature_____bra, LOCATE_static_type, 116); nit_exit(1);}
229 variable1 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
230 variable2 = variable0 /*i*/;
231 variable3 = TAG_Bool(UNTAG_Int( variable2 /*index*/)>=UNTAG_Int( TAG_Int(0)));
232 variable4 = variable3;
233 if (UNTAG_Bool(variable4)) { /* and */
234 variable4 = variable1;
235 variable4 = ATTR_array___AbstractArray____length(variable4) /*AbstractArray::_length*/;
236 variable4 = TAG_Bool(UNTAG_Int( variable2 /*index*/)<UNTAG_Int(variable4));
237 }
238 variable3 = variable4;
239 if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_static_type, 229); nit_exit(1);}
240 variable3 = variable1;
241 variable3 = ATTR_array___Array____items(variable3) /*Array::_items*/;
242 variable3 = UNBOX_NativeArray(variable3)[UNTAG_Int( variable2 /*index*/)];
243 goto return_label8;
244 return_label8: while(false);
245 variable1 = variable3;
246 goto return_label7;
247 return_label7: while(false);
248 tracehead = trace.prev;
249 return variable1;
250 }
251 val_t static_type___MMSignature___to_s(val_t self) {
252 struct trace_t trace = {NULL, LOCATE_static_type, 120, LOCATE_static_type___MMSignature___to_s};
253 val_t variable0;
254 val_t variable1;
255 val_t variable2;
256 val_t variable3;
257 val_t variable4;
258 val_t variable5;
259 val_t variable6;
260 val_t variable7;
261 val_t variable8;
262 val_t variable9;
263 trace.prev = tracehead; tracehead = &trace;
264 variable0 = NIT_NULL /*decl variable s*/;
265 variable1 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
266 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))))));
267 variable2 = variable1;
268 if (UNTAG_Bool(variable2)) { /* and */
269 variable2 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
270 variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*AbstractArray::length*/;
271 variable2 = TAG_Bool(UNTAG_Int(variable2)>UNTAG_Int( TAG_Int(0)));
272 }
273 variable1 = variable2;
274 if (UNTAG_Bool(variable1)) { /*if*/
275 variable1 = NIT_NULL /*decl variable tmp*/;
276 variable3 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
277 variable3 = ((array___AbstractArray___length_t)CALL(variable3,COLOR_abstract_collection___Collection___length))(variable3) /*AbstractArray::length*/;
278 variable4 = NEW_array___Array___with_capacity(variable3); /*new Array[E]*/
279 variable3 = variable4;
280 variable2 = variable3;
281 variable3 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
282 variable3 = ((array___AbstractArray___length_t)CALL(variable3,COLOR_abstract_collection___Collection___length))(variable3) /*AbstractArray::length*/;
283 variable4 = NEW_range___Range___without_last( TAG_Int(0), variable3); /*new Range[E]*/
284 variable3 = variable4;
285 variable3 = ((range___Range___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*Range::iterator*/;
286 while (true) { /*for*/
287 variable4 = ((abstract_collection___Iterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*Iterator::is_ok*/;
288 if (!UNTAG_Bool(variable4)) break; /*for*/
289 variable4 = ((abstract_collection___Iterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*Iterator::item*/;
290 variable6 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
291 variable7 = variable4 /*i*/;
292 variable8 = TAG_Bool(UNTAG_Int( variable7 /*index*/)>=UNTAG_Int( TAG_Int(0)));
293 variable9 = variable8;
294 if (UNTAG_Bool(variable9)) { /* and */
295 variable9 = variable6;
296 variable9 = ATTR_array___AbstractArray____length(variable9) /*AbstractArray::_length*/;
297 variable9 = TAG_Bool(UNTAG_Int( variable7 /*index*/)<UNTAG_Int(variable9));
298 }
299 variable8 = variable9;
300 if (!UNTAG_Bool(variable8)) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_static_type, 229); nit_exit(1);}
301 variable8 = variable6;
302 variable8 = ATTR_array___Array____items(variable8) /*Array::_items*/;
303 variable8 = UNBOX_NativeArray(variable8)[UNTAG_Int( variable7 /*index*/)];
304 goto return_label11;
305 return_label11: while(false);
306 variable6 = variable8;
307 variable5 = variable6;
308 variable6 = ((string___Object___to_s_t)CALL( variable5 /*p*/,COLOR_string___Object___to_s))( variable5 /*p*/) /*Object::to_s*/;
309 ((array___AbstractArray___add_t)CALL( variable2 /*a*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*a*/, variable6) /*AbstractArray::add*/;
310 continue_10: while(0);
311 ((abstract_collection___Iterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*Iterator::next*/;
312 }
313 break_10: while(0);
314 variable3 = NEW_string___String___init(); /*new String*/
315 variable4 = NEW_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
316 variable5 = variable4;
317 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable5) /*String::append*/;
318 variable6 = NEW_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
319 variable6 = ((string___Collection___join_t)CALL( variable2 /*a*/,COLOR_string___Collection___join))( variable2 /*a*/, variable6) /*Collection::join*/;
320 variable7 = variable6;
321 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable7) /*String::append*/;
322 variable8 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
323 variable9 = variable8;
324 ((string___String___append_t)CALL(variable3,COLOR_abstract_collection___IndexedCollection___append))(variable3, variable9) /*String::append*/;
325 variable0 = variable3 /*s=*/;
326 } else { /*if*/
327 variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
328 variable0 = variable1 /*s=*/;
329 }
330 variable1 = ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/;
331 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))))));
332 if (UNTAG_Bool(variable1)) { /*if*/
333 variable1 = NEW_string___String___init(); /*new String*/
334 variable2 = NEW_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
335 variable3 = variable2;
336 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
337 variable4 = ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/;
338 variable5 = variable4;
339 variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
340 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
341 variable6 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
342 variable7 = variable6;
343 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
344 ((string___String___append_t)CALL( variable0 /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable0 /*s*/, variable1) /*String::append*/;
345 }
346 variable0 = variable0 /*s*/;
347 goto return_label9;
348 return_label9: while(false);
349 tracehead = trace.prev;
350 return variable0;
351 }
352 val_t static_type___MMSignature___adaptation_to(val_t self, val_t param0) {
353 struct trace_t trace = {NULL, LOCATE_static_type, 142, LOCATE_static_type___MMSignature___adaptation_to};
354 val_t variable0;
355 val_t variable1;
356 val_t variable2;
357 val_t variable3;
358 val_t variable4;
359 val_t variable5;
360 trace.prev = tracehead; tracehead = &trace;
361 variable0 = param0;
362 variable1 = ATTR_static_type___MMSignature____recv( self) /*MMSignature::_recv*/;
363 variable1 = TAG_Bool((variable1 == variable0 /*r*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*r*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, variable0 /*r*/) /*Object::==*/)))));
364 if (UNTAG_Bool(variable1)) { /*if*/
365 variable1 = self;
366 goto return_label12;
367 }
368 variable2 = ((static_type___MMType___module_t)CALL( variable0 /*r*/,COLOR_static_type___MMType___module))( variable0 /*r*/) /*MMType::module*/;
369 variable1 = variable2;
370 variable3 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
371 variable2 = variable3;
372 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*p*/ == NIT_NULL /*null*/) || (( variable2 /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*p*/,COLOR_kernel___Object_____eqeq))( variable2 /*p*/, NIT_NULL /*null*/) /*Object::==*/)))))));
373 if (UNTAG_Bool(variable3)) { /*if*/
374 variable3 = NEW_array___Array___init(); /*new Array[E]*/
375 variable2 = variable3 /*p=*/;
376 variable3 = ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/;
377 variable3 = ((array___AbstractArray___iterator_t)CALL(variable3,COLOR_abstract_collection___Collection___iterator))(variable3) /*AbstractArray::iterator*/;
378 while (true) { /*for*/
379 variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
380 if (!UNTAG_Bool(variable4)) break; /*for*/
381 variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
382 variable5 = ((static_type___MMType___for_module_t)CALL( variable4 /*i*/,COLOR_static_type___MMType___for_module))( variable4 /*i*/, variable1 /*mod*/) /*MMType::for_module*/;
383 variable5 = ((static_type___MMType___adapt_to_t)CALL(variable5,COLOR_static_type___MMType___adapt_to))(variable5, variable0 /*r*/) /*MMType::adapt_to*/;
384 ((array___AbstractArray___add_t)CALL( variable2 /*p*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*p*/, variable5) /*AbstractArray::add*/;
385 continue_13: while(0);
386 ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
387 }
388 break_13: while(0);
389 }
390 variable4 = ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/;
391 variable3 = variable4;
392 variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable3 /*rv*/ == NIT_NULL /*null*/) || (( variable3 /*rv*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*rv*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*rv*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*rv*/,COLOR_kernel___Object_____eqeq))( variable3 /*rv*/, NIT_NULL /*null*/) /*Object::==*/)))))));
393 if (UNTAG_Bool(variable4)) { /*if*/
394 variable4 = ((static_type___MMType___for_module_t)CALL( variable3 /*rv*/,COLOR_static_type___MMType___for_module))( variable3 /*rv*/, variable1 /*mod*/) /*MMType::for_module*/;
395 variable4 = ((static_type___MMType___adapt_to_t)CALL(variable4,COLOR_static_type___MMType___adapt_to))(variable4, variable0 /*r*/) /*MMType::adapt_to*/;
396 variable3 = variable4 /*rv=*/;
397 }
398 variable4 = NEW_static_type___MMSignature___init( variable2 /*p*/, variable3 /*rv*/, variable0 /*r*/); /*new MMSignature*/
399 variable1 = variable4;
400 goto return_label12;
401 return_label12: while(false);
402 tracehead = trace.prev;
403 return variable1;
404 }
405 void static_type___MMSignature___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
406 struct trace_t trace = {NULL, LOCATE_static_type, 163, LOCATE_static_type___MMSignature___init};
407 val_t variable0;
408 val_t variable1;
409 val_t variable2;
410 val_t variable3;
411 trace.prev = tracehead; tracehead = &trace;
412 variable0 = param0;
413 variable1 = param1;
414 variable2 = param2;
415 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSignature].i]) return;
416 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*params*/ == NIT_NULL /*null*/) || (( variable0 /*params*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*params*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*params*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*params*/,COLOR_kernel___Object_____eqeq))( variable0 /*params*/, NIT_NULL /*null*/) /*Object::==*/)))))));
417 if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature___init, LOCATE_static_type, 165); nit_exit(1);}
418 ATTR_static_type___MMSignature____params( self) /*MMSignature::_params*/ = variable0 /*params*/;
419 ATTR_static_type___MMSignature____return_type( self) /*MMSignature::_return_type*/ = variable1 /*return_type*/;
420 ATTR_static_type___MMSignature____recv( self) /*MMSignature::_recv*/ = variable2 /*r*/;
421 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMSignature].i] = 1;
422 tracehead = trace.prev;
423 return;
424 }
425 val_t static_type___MMAncestor___stype(val_t self) {
426 struct trace_t trace = {NULL, LOCATE_static_type, 174, LOCATE_static_type___MMAncestor___stype};
427 trace.prev = tracehead; tracehead = &trace;
428 tracehead = trace.prev;
429 return ATTR_static_type___MMAncestor____stype( self) /*MMAncestor::_stype*/;
430 }
431 void static_type___MMAncestor___stype__eq(val_t self, val_t param0) {
432 struct trace_t trace = {NULL, LOCATE_static_type, 174, LOCATE_static_type___MMAncestor___stype__eq};
433 trace.prev = tracehead; tracehead = &trace;
434 ATTR_static_type___MMAncestor____stype( self) /*MMAncestor::_stype*/ = param0;
435 tracehead = trace.prev;
436 return;
437 }
438 val_t static_type___MMAncestor___inheriter(val_t self) {
439 struct trace_t trace = {NULL, LOCATE_static_type, 177, LOCATE_static_type___MMAncestor___inheriter};
440 trace.prev = tracehead; tracehead = &trace;
441 tracehead = trace.prev;
442 return ATTR_static_type___MMAncestor____inheriter( self) /*MMAncestor::_inheriter*/;
443 }
444 void static_type___MMAncestor___inheriter__eq(val_t self, val_t param0) {
445 struct trace_t trace = {NULL, LOCATE_static_type, 177, LOCATE_static_type___MMAncestor___inheriter__eq};
446 trace.prev = tracehead; tracehead = &trace;
447 ATTR_static_type___MMAncestor____inheriter( self) /*MMAncestor::_inheriter*/ = param0;
448 tracehead = trace.prev;
449 return;
450 }
451 val_t static_type___MMAncestor___is_reffinement(val_t self) {
452 struct trace_t trace = {NULL, LOCATE_static_type, 180, LOCATE_static_type___MMAncestor___is_reffinement};
453 val_t variable0;
454 val_t variable1;
455 trace.prev = tracehead; tracehead = &trace;
456 variable0 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
457 variable0 = ((static_type___MMType___module_t)CALL(variable0,COLOR_static_type___MMType___module))(variable0) /*MMType::module*/;
458 variable1 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
459 variable1 = ((static_type___MMType___module_t)CALL(variable1,COLOR_static_type___MMType___module))(variable1) /*MMType::module*/;
460 variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 == variable1) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0,variable1)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, variable1) /*Object::==*/)))))));
461 goto return_label15;
462 return_label15: while(false);
463 tracehead = trace.prev;
464 return variable0;
465 }
466 val_t static_type___MMAncestor___is_specialisation(val_t self) {
467 struct trace_t trace = {NULL, LOCATE_static_type, 184, LOCATE_static_type___MMAncestor___is_specialisation};
468 val_t variable0;
469 val_t variable1;
470 trace.prev = tracehead; tracehead = &trace;
471 variable0 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
472 variable0 = ((static_type___MMType___local_class_t)CALL(variable0,COLOR_static_type___MMType___local_class))(variable0) /*MMType::local_class*/;
473 variable0 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___global))(variable0) /*MMLocalClass::global*/;
474 variable1 = ((static_type___MMAncestor___inheriter_t)CALL( self,COLOR_static_type___MMAncestor___inheriter))( self) /*MMAncestor::inheriter*/;
475 variable1 = ((static_type___MMType___local_class_t)CALL(variable1,COLOR_static_type___MMType___local_class))(variable1) /*MMType::local_class*/;
476 variable1 = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable1,COLOR_abstractmetamodel___MMLocalClass___global))(variable1) /*MMLocalClass::global*/;
477 variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 == variable1) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0,variable1)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, variable1) /*Object::==*/)))))));
478 goto return_label16;
479 return_label16: while(false);
480 tracehead = trace.prev;
481 return variable0;
482 }
483 val_t static_type___MMAncestor___local_class(val_t self) {
484 struct trace_t trace = {NULL, LOCATE_static_type, 188, LOCATE_static_type___MMAncestor___local_class};
485 trace.prev = tracehead; tracehead = &trace;
486 fprintf(stderr, "Deferred method %s called");
487 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMAncestor___is_specialisation, LOCATE_static_type, 188);
488 nit_exit(1);
489 tracehead = trace.prev;
490 return NIT_NULL;
491 }
492 val_t static_type___MMAncestor___to_s(val_t self) {
493 struct trace_t trace = {NULL, LOCATE_static_type, 191, LOCATE_static_type___MMAncestor___to_s};
494 val_t variable0;
495 trace.prev = tracehead; tracehead = &trace;
496 variable0 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
497 variable0 = TAG_Bool((variable0 == NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, NIT_NULL /*null*/) /*Object::==*/)))));
498 if (UNTAG_Bool(variable0)) { /*if*/
499 variable0 = ((static_type___MMAncestor___local_class_t)CALL( self,COLOR_static_type___MMAncestor___local_class))( self) /*MMAncestor::local_class*/;
500 variable0 = ((abstractmetamodel___MMLocalClass___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*MMLocalClass::to_s*/;
501 goto return_label17;
502 } else { /*if*/
503 variable0 = ((static_type___MMAncestor___stype_t)CALL( self,COLOR_static_type___MMAncestor___stype))( self) /*MMAncestor::stype*/;
504 variable0 = ((string___Object___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*Object::to_s*/;
505 goto return_label17;
506 }
507 return_label17: while(false);
508 tracehead = trace.prev;
509 return variable0;
510 }
511 val_t static_type___MMType___module(val_t self) {
512 struct trace_t trace = {NULL, LOCATE_static_type, 204, LOCATE_static_type___MMType___module};
513 trace.prev = tracehead; tracehead = &trace;
514 fprintf(stderr, "Deferred method %s called");
515 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMAncestor___to_s, LOCATE_static_type, 204);
516 nit_exit(1);
517 tracehead = trace.prev;
518 return NIT_NULL;
519 }
520 val_t static_type___MMType___local_class(val_t self) {
521 struct trace_t trace = {NULL, LOCATE_static_type, 207, LOCATE_static_type___MMType___local_class};
522 trace.prev = tracehead; tracehead = &trace;
523 fprintf(stderr, "Deferred method %s called");
524 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMAncestor___to_s, LOCATE_static_type, 207);
525 nit_exit(1);
526 tracehead = trace.prev;
527 return NIT_NULL;
528 }
529 val_t static_type___MMType_____l(val_t self, val_t param0) {
530 struct trace_t trace = {NULL, LOCATE_static_type, 210, LOCATE_static_type___MMType_____l};
531 trace.prev = tracehead; tracehead = &trace;
532 fprintf(stderr, "Deferred method %s called");
533 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMAncestor___to_s, LOCATE_static_type, 210);
534 nit_exit(1);
535 tracehead = trace.prev;
536 return NIT_NULL;
537 }
538 val_t static_type___MMType___is_supertype(val_t self, val_t param0) {
539 struct trace_t trace = {NULL, LOCATE_static_type, 213, LOCATE_static_type___MMType___is_supertype};
540 trace.prev = tracehead; tracehead = &trace;
541 fprintf(stderr, "Deferred method %s called");
542 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMAncestor___to_s, LOCATE_static_type, 213);
543 nit_exit(1);
544 tracehead = trace.prev;
545 return NIT_NULL;
546 }
547 val_t static_type___MMType___for_module(val_t self, val_t param0) {
548 struct trace_t trace = {NULL, LOCATE_static_type, 218, LOCATE_static_type___MMType___for_module};
549 trace.prev = tracehead; tracehead = &trace;
550 fprintf(stderr, "Deferred method %s called");
551 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMAncestor___to_s, LOCATE_static_type, 218);
552 nit_exit(1);
553 tracehead = trace.prev;
554 return NIT_NULL;
555 }
556 val_t static_type___MMType___adapt_to(val_t self, val_t param0) {
557 struct trace_t trace = {NULL, LOCATE_static_type, 221, LOCATE_static_type___MMType___adapt_to};
558 trace.prev = tracehead; tracehead = &trace;
559 fprintf(stderr, "Deferred method %s called");
560 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMAncestor___to_s, LOCATE_static_type, 221);
561 nit_exit(1);
562 tracehead = trace.prev;
563 return NIT_NULL;
564 }
565 val_t static_type___MMType___upcast_for(val_t self, val_t param0) {
566 struct trace_t trace = {NULL, LOCATE_static_type, 225, LOCATE_static_type___MMType___upcast_for};
567 trace.prev = tracehead; tracehead = &trace;
568 fprintf(stderr, "Deferred method %s called");
569 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMAncestor___to_s, LOCATE_static_type, 225);
570 nit_exit(1);
571 tracehead = trace.prev;
572 return NIT_NULL;
573 }
574 val_t static_type___MMType___not_for_self(val_t self) {
575 struct trace_t trace = {NULL, LOCATE_static_type, 229, LOCATE_static_type___MMType___not_for_self};
576 val_t variable0;
577 trace.prev = tracehead; tracehead = &trace;
578 variable0 = self;
579 goto return_label18;
580 return_label18: while(false);
581 tracehead = trace.prev;
582 return variable0;
583 }
584 val_t static_type___MMTypeClass___local_class(val_t self) {
585 struct trace_t trace = {NULL, LOCATE_static_type, 236, LOCATE_static_type___MMTypeClass___local_class};
586 trace.prev = tracehead; tracehead = &trace;
587 tracehead = trace.prev;
588 return ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
589 }
590 val_t static_type___MMTypeClass___module(val_t self) {
591 struct trace_t trace = {NULL, LOCATE_static_type, 237, LOCATE_static_type___MMTypeClass___module};
592 val_t variable0;
593 trace.prev = tracehead; tracehead = &trace;
594 variable0 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
595 variable0 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___module))(variable0) /*MMLocalClass::module*/;
596 goto return_label19;
597 return_label19: while(false);
598 tracehead = trace.prev;
599 return variable0;
600 }
601 val_t static_type___MMTypeClass_____l(val_t self, val_t param0) {
602 struct trace_t trace = {NULL, LOCATE_static_type, 238, LOCATE_static_type___MMTypeClass_____l};
603 val_t variable0;
604 val_t variable1;
605 val_t variable2;
606 trace.prev = tracehead; tracehead = &trace;
607 variable0 = param0;
608 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*t*/ == NIT_NULL /*null*/) || (( variable0 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*t*/,COLOR_kernel___Object_____eqeq))( variable0 /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
609 variable2 = variable1;
610 if (UNTAG_Bool(variable2)) { /* and */
611 variable2 = ((static_type___MMType___is_supertype_t)CALL( variable0 /*t*/,COLOR_static_type___MMType___is_supertype))( variable0 /*t*/, self) /*MMType::is_supertype*/;
612 }
613 variable1 = variable2;
614 goto return_label20;
615 return_label20: while(false);
616 tracehead = trace.prev;
617 return variable1;
618 }
619 val_t static_type___MMTypeClass___to_s(val_t self) {
620 struct trace_t trace = {NULL, LOCATE_static_type, 240, LOCATE_static_type___MMTypeClass___to_s};
621 val_t variable0;
622 trace.prev = tracehead; tracehead = &trace;
623 variable0 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
624 variable0 = ((abstractmetamodel___MMLocalClass___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*MMLocalClass::to_s*/;
625 goto return_label21;
626 return_label21: while(false);
627 tracehead = trace.prev;
628 return variable0;
629 }
630 val_t static_type___MMTypeClass___upcast_for(val_t self, val_t param0) {
631 struct trace_t trace = {NULL, LOCATE_static_type, 245, LOCATE_static_type___MMTypeClass___upcast_for};
632 val_t variable0;
633 val_t variable1;
634 val_t variable2;
635 trace.prev = tracehead; tracehead = &trace;
636 variable0 = param0;
637 variable1 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
638 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))))));
639 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeClass___upcast_for, LOCATE_static_type, 247); nit_exit(1);}
640 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*c*/ == NIT_NULL /*null*/) || (( variable0 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*c*/,COLOR_kernel___Object_____eqeq))( variable0 /*c*/, NIT_NULL /*null*/) /*Object::==*/)))))));
641 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeClass___upcast_for, LOCATE_static_type, 248); nit_exit(1);}
642 variable1 = self;
643 variable2 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
644 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == variable0 /*c*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*c*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*c*/) /*Object::==*/)))))));
645 if (UNTAG_Bool(variable2)) { /*if*/
646 variable2 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
647 variable2 = ((static_type___MMLocalClass___ancestor_t)CALL(variable2,COLOR_static_type___MMLocalClass___ancestor))(variable2, variable0 /*c*/) /*MMLocalClass::ancestor*/;
648 variable1 = variable2 /*t=*/;
649 }
650 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ == NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
651 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeClass___upcast_for, LOCATE_static_type, 254); nit_exit(1);}
652 variable1 = variable1 /*t*/;
653 goto return_label22;
654 return_label22: while(false);
655 tracehead = trace.prev;
656 return variable1;
657 }
658 void static_type___MMTypeClass___init(val_t self, val_t param0, int* init_table) {
659 struct trace_t trace = {NULL, LOCATE_static_type, 258, LOCATE_static_type___MMTypeClass___init};
660 val_t variable0;
661 trace.prev = tracehead; tracehead = &trace;
662 variable0 = param0;
663 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeClass].i]) return;
664 ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/ = variable0 /*c*/;
665 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeClass].i] = 1;
666 tracehead = trace.prev;
667 return;
668 }
669 val_t static_type___MMTypeSimpleClass___is_supertype(val_t self, val_t param0) {
670 struct trace_t trace = {NULL, LOCATE_static_type, 266, LOCATE_static_type___MMTypeSimpleClass___is_supertype};
671 val_t variable0;
672 val_t variable1;
673 val_t variable2;
674 trace.prev = tracehead; tracehead = &trace;
675 variable0 = param0;
676 variable1 = ((static_type___MMType___local_class_t)CALL( variable0 /*t*/,COLOR_static_type___MMType___local_class))( variable0 /*t*/) /*MMType::local_class*/;
677 variable1 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable1,COLOR_abstractmetamodel___MMLocalClass___cshe))(variable1) /*MMLocalClass::cshe*/;
678 variable2 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
679 variable1 = ((partial_order___PartialOrderElement_____leq_t)CALL(variable1,COLOR_partial_order___PartialOrderElement_____leq))(variable1, variable2) /*PartialOrderElement::<=*/;
680 goto return_label24;
681 return_label24: while(false);
682 tracehead = trace.prev;
683 return variable1;
684 }
685 val_t static_type___MMTypeSimpleClass___for_module(val_t self, val_t param0) {
686 struct trace_t trace = {NULL, LOCATE_static_type, 271, LOCATE_static_type___MMTypeSimpleClass___for_module};
687 val_t variable0;
688 val_t variable1;
689 val_t variable2;
690 trace.prev = tracehead; tracehead = &trace;
691 variable0 = param0;
692 variable1 = self;
693 variable2 = ((static_type___MMTypeClass___module_t)CALL( self,COLOR_static_type___MMType___module))( self) /*MMTypeClass::module*/;
694 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == variable0 /*mod*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*mod*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*mod*/) /*Object::==*/)))))));
695 if (UNTAG_Bool(variable2)) { /*if*/
696 variable2 = ATTR_static_type___MMTypeClass____local_class( self) /*MMTypeClass::_local_class*/;
697 variable2 = ((abstractmetamodel___MMLocalClass___for_module_t)CALL(variable2,COLOR_abstractmetamodel___MMLocalClass___for_module))(variable2, variable0 /*mod*/) /*MMLocalClass::for_module*/;
698 variable2 = ((static_type___MMLocalClass___get_type_t)CALL(variable2,COLOR_static_type___MMLocalClass___get_type))(variable2) /*MMLocalClass::get_type*/;
699 variable1 = variable2 /*t=*/;
700 }
701 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*t*/ == NIT_NULL /*null*/) || (( variable1 /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*t*/,COLOR_kernel___Object_____eqeq))( variable1 /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
702 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeSimpleClass___for_module, LOCATE_static_type, 277); nit_exit(1);}
703 variable1 = variable1 /*t*/;
704 goto return_label25;
705 return_label25: while(false);
706 tracehead = trace.prev;
707 return variable1;
708 }
709 val_t static_type___MMTypeSimpleClass___adapt_to(val_t self, val_t param0) {
710 struct trace_t trace = {NULL, LOCATE_static_type, 281, LOCATE_static_type___MMTypeSimpleClass___adapt_to};
711 val_t variable0;
712 val_t variable1;
713 trace.prev = tracehead; tracehead = &trace;
714 variable0 = param0;
715 variable1 = self;
716 goto return_label26;
717 return_label26: while(false);
718 tracehead = trace.prev;
719 return variable1;
720 }
721 void static_type___MMTypeSimpleClass___init(val_t self, val_t param0, int* init_table) {
722 struct trace_t trace = {NULL, LOCATE_static_type, 283, LOCATE_static_type___MMTypeSimpleClass___init};
723 val_t variable0;
724 trace.prev = tracehead; tracehead = &trace;
725 variable0 = param0;
726 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeSimpleClass].i]) return;
727 ((static_type___MMTypeClass___init_t)CALL( self,COLOR_static_type___MMTypeClass___init))( self, variable0 /*c*/, init_table /*YYY*/) /*MMTypeClass::init*/;
728 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeSimpleClass].i] = 1;
729 tracehead = trace.prev;
730 return;
731 }
732 val_t static_type___MMTypeNone___module(val_t self) {
733 struct trace_t trace = {NULL, LOCATE_static_type, 292, LOCATE_static_type___MMTypeNone___module};
734 trace.prev = tracehead; tracehead = &trace;
735 tracehead = trace.prev;
736 return ATTR_static_type___MMTypeNone____module( self) /*MMTypeNone::_module*/;
737 }
738 val_t static_type___MMTypeNone_____l(val_t self, val_t param0) {
739 struct trace_t trace = {NULL, LOCATE_static_type, 293, LOCATE_static_type___MMTypeNone_____l};
740 val_t variable0;
741 val_t variable1;
742 trace.prev = tracehead; tracehead = &trace;
743 variable0 = param0;
744 variable1 = TAG_Bool(true);
745 goto return_label28;
746 return_label28: while(false);
747 tracehead = trace.prev;
748 return variable1;
749 }
750 val_t static_type___MMTypeNone___is_supertype(val_t self, val_t param0) {
751 struct trace_t trace = {NULL, LOCATE_static_type, 294, LOCATE_static_type___MMTypeNone___is_supertype};
752 val_t variable0;
753 val_t variable1;
754 trace.prev = tracehead; tracehead = &trace;
755 variable0 = param0;
756 variable1 = TAG_Bool(false);
757 goto return_label29;
758 return_label29: while(false);
759 tracehead = trace.prev;
760 return variable1;
761 }
762 val_t static_type___MMTypeNone___local_class(val_t self) {
763 struct trace_t trace = {NULL, LOCATE_static_type, 295, LOCATE_static_type___MMTypeNone___local_class};
764 val_t variable0;
765 trace.prev = tracehead; tracehead = &trace;
766 fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeNone___local_class, LOCATE_static_type, 295); nit_exit(1);
767 tracehead = trace.prev;
768 return variable0;
769 }
770 val_t static_type___MMTypeNone___upcast_for(val_t self, val_t param0) {
771 struct trace_t trace = {NULL, LOCATE_static_type, 296, LOCATE_static_type___MMTypeNone___upcast_for};
772 val_t variable0;
773 val_t variable1;
774 trace.prev = tracehead; tracehead = &trace;
775 variable0 = param0;
776 variable1 = self;
777 goto return_label31;
778 return_label31: while(false);
779 tracehead = trace.prev;
780 return variable1;
781 }
782 void static_type___MMTypeNone___init(val_t self, val_t param0, int* init_table) {
783 struct trace_t trace = {NULL, LOCATE_static_type, 298, LOCATE_static_type___MMTypeNone___init};
784 val_t variable0;
785 trace.prev = tracehead; tracehead = &trace;
786 variable0 = param0;
787 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeNone].i]) return;
788 ATTR_static_type___MMTypeNone____module( self) /*MMTypeNone::_module*/ = variable0 /*m*/;
789 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMTypeNone].i] = 1;
790 tracehead = trace.prev;
791 return;
792 }
793 val_t static_type___MMModule___type_none(val_t self) {
794 struct trace_t trace = {NULL, LOCATE_static_type, 302, LOCATE_static_type___MMModule___type_none};
795 trace.prev = tracehead; tracehead = &trace;
796 tracehead = trace.prev;
797 return ATTR_static_type___MMModule____type_none( self) /*MMModule::_type_none*/;
798 }