c_src: update to have intern args
[nit.git] / c_src / metamodel___virtualtype._sep.c
1 /* This C file is generated by NIT to compile module metamodel___virtualtype. */
2 #include "metamodel___virtualtype._sep.h"
3 static const char LOCATE_metamodel___virtualtype___MMGlobalProperty___is_virtual_type[] = "virtualtype::MMGlobalProperty::is_virtual_type";
4 val_t metamodel___virtualtype___MMGlobalProperty___is_virtual_type(val_t p0){
5 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
6 val_t REGB0;
7 val_t tmp;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_metamodel___virtualtype;
10 fra.me.line = 24;
11 fra.me.meth = LOCATE_metamodel___virtualtype___MMGlobalProperty___is_virtual_type;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 2;
14 fra.me.nitni_local_ref_head = NULL;
15 fra.me.REG[0] = NIT_NULL;
16 fra.me.REG[1] = NIT_NULL;
17 fra.me.REG[0] = p0;
18 /* metamodel/virtualtype.nit:25 */
19 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
20 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___virtualtype___MMTypeProperty, ID_metamodel___virtualtype___MMTypeProperty)) /*cast MMTypeProperty*/;
21 goto label1;
22 label1: while(0);
23 stack_frame_head = fra.me.prev;
24 return REGB0;
25 }
26 static const char LOCATE_metamodel___virtualtype___MMTypeProperty___stype_for[] = "virtualtype::MMTypeProperty::stype_for";
27 val_t metamodel___virtualtype___MMTypeProperty___stype_for(val_t p0, val_t p1){
28 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29 val_t REGB0;
30 val_t tmp;
31 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32 fra.me.file = LOCATE_metamodel___virtualtype;
33 fra.me.line = 31;
34 fra.me.meth = LOCATE_metamodel___virtualtype___MMTypeProperty___stype_for;
35 fra.me.has_broke = 0;
36 fra.me.REG_size = 4;
37 fra.me.nitni_local_ref_head = NULL;
38 fra.me.REG[0] = NIT_NULL;
39 fra.me.REG[1] = NIT_NULL;
40 fra.me.REG[2] = NIT_NULL;
41 fra.me.REG[3] = NIT_NULL;
42 fra.me.REG[0] = p0;
43 fra.me.REG[1] = p1;
44 /* metamodel/virtualtype.nit:34 */
45 fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
46 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
47 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
48 /* metamodel/virtualtype.nit:35 */
49 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_metamodel___virtualtype___MMTypeProperty, ID_metamodel___virtualtype___MMTypeProperty)) /*cast MMTypeProperty*/;
50 if (UNTAG_Bool(REGB0)) {
51 } else {
52 nit_abort("Assert failed", NULL, LOCATE_metamodel___virtualtype, 35);
53 }
54 /* metamodel/virtualtype.nit:36 */
55 fra.me.REG[1] = CALL_metamodel___virtualtype___MMTypeProperty___real_stype_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
56 goto label1;
57 label1: while(0);
58 stack_frame_head = fra.me.prev;
59 return fra.me.REG[1];
60 }
61 static const char LOCATE_metamodel___virtualtype___MMTypeProperty___real_stype_for[] = "virtualtype::MMTypeProperty::real_stype_for";
62 val_t metamodel___virtualtype___MMTypeProperty___real_stype_for(val_t p0, val_t p1){
63 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
64 val_t REGB0;
65 val_t REGB1;
66 val_t tmp;
67 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
68 fra.me.file = LOCATE_metamodel___virtualtype;
69 fra.me.line = 42;
70 fra.me.meth = LOCATE_metamodel___virtualtype___MMTypeProperty___real_stype_for;
71 fra.me.has_broke = 0;
72 fra.me.REG_size = 4;
73 fra.me.nitni_local_ref_head = NULL;
74 fra.me.REG[0] = NIT_NULL;
75 fra.me.REG[1] = NIT_NULL;
76 fra.me.REG[2] = NIT_NULL;
77 fra.me.REG[3] = NIT_NULL;
78 fra.me.REG[0] = p0;
79 fra.me.REG[1] = p1;
80 /* metamodel/virtualtype.nit:45 */
81 fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
82 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
83 if (UNTAG_Bool(REGB0)) {
84 } else {
85 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
86 if (UNTAG_Bool(REGB1)) {
87 REGB1 = TAG_Bool(0);
88 REGB0 = REGB1;
89 } else {
90 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
91 REGB0 = REGB1;
92 }
93 }
94 if (UNTAG_Bool(REGB0)) {
95 fra.me.REG[2] = NIT_NULL;
96 goto label1;
97 }
98 /* metamodel/virtualtype.nit:47 */
99 REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0])!=NIT_NULL);
100 if (UNTAG_Bool(REGB0)) {
101 } else {
102 nit_abort("Uninitialized attribute %s", "_stypes_cache", LOCATE_metamodel___virtualtype, 47);
103 }
104 fra.me.REG[3] = ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0]);
105 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
106 if (UNTAG_Bool(REGB0)) {
107 REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0])!=NIT_NULL);
108 if (UNTAG_Bool(REGB0)) {
109 } else {
110 nit_abort("Uninitialized attribute %s", "_stypes_cache", LOCATE_metamodel___virtualtype, 47);
111 }
112 fra.me.REG[3] = ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0]);
113 fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
114 fra.me.REG[2] = fra.me.REG[3];
115 goto label1;
116 }
117 /* metamodel/virtualtype.nit:49 */
118 fra.me.REG[3] = NEW_MMVirtualType_metamodel___virtualtype___MMVirtualType___init(fra.me.REG[0], fra.me.REG[1]);
119 /* metamodel/virtualtype.nit:50 */
120 REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0])!=NIT_NULL);
121 if (UNTAG_Bool(REGB0)) {
122 } else {
123 nit_abort("Uninitialized attribute %s", "_stypes_cache", LOCATE_metamodel___virtualtype, 50);
124 }
125 fra.me.REG[0] = ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0]);
126 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
127 /* metamodel/virtualtype.nit:52 */
128 fra.me.REG[2] = fra.me.REG[3];
129 goto label1;
130 label1: while(0);
131 stack_frame_head = fra.me.prev;
132 return fra.me.REG[2];
133 }
134 static const char LOCATE_metamodel___virtualtype___MMVirtualType___property[] = "virtualtype::MMVirtualType::property";
135 val_t metamodel___virtualtype___MMVirtualType___property(val_t p0){
136 struct {struct stack_frame_t me;} fra;
137 val_t REGB0;
138 val_t tmp;
139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
140 fra.me.file = LOCATE_metamodel___virtualtype;
141 fra.me.line = 58;
142 fra.me.meth = LOCATE_metamodel___virtualtype___MMVirtualType___property;
143 fra.me.has_broke = 0;
144 fra.me.REG_size = 1;
145 fra.me.nitni_local_ref_head = NULL;
146 fra.me.REG[0] = NIT_NULL;
147 fra.me.REG[0] = p0;
148 /* metamodel/virtualtype.nit:58 */
149 REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMVirtualType____property(fra.me.REG[0])!=NIT_NULL);
150 if (UNTAG_Bool(REGB0)) {
151 } else {
152 nit_abort("Uninitialized attribute %s", "_property", LOCATE_metamodel___virtualtype, 58);
153 }
154 fra.me.REG[0] = ATTR_metamodel___virtualtype___MMVirtualType____property(fra.me.REG[0]);
155 stack_frame_head = fra.me.prev;
156 return fra.me.REG[0];
157 }
158 static const char LOCATE_metamodel___virtualtype___MMVirtualType___recv[] = "virtualtype::MMVirtualType::recv";
159 val_t metamodel___virtualtype___MMVirtualType___recv(val_t p0){
160 struct {struct stack_frame_t me;} fra;
161 val_t REGB0;
162 val_t tmp;
163 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
164 fra.me.file = LOCATE_metamodel___virtualtype;
165 fra.me.line = 61;
166 fra.me.meth = LOCATE_metamodel___virtualtype___MMVirtualType___recv;
167 fra.me.has_broke = 0;
168 fra.me.REG_size = 1;
169 fra.me.nitni_local_ref_head = NULL;
170 fra.me.REG[0] = NIT_NULL;
171 fra.me.REG[0] = p0;
172 /* metamodel/virtualtype.nit:61 */
173 REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMVirtualType____recv(fra.me.REG[0])!=NIT_NULL);
174 if (UNTAG_Bool(REGB0)) {
175 } else {
176 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_metamodel___virtualtype, 61);
177 }
178 fra.me.REG[0] = ATTR_metamodel___virtualtype___MMVirtualType____recv(fra.me.REG[0]);
179 stack_frame_head = fra.me.prev;
180 return fra.me.REG[0];
181 }
182 static const char LOCATE_metamodel___virtualtype___MMVirtualType___init[] = "virtualtype::MMVirtualType::init";
183 void metamodel___virtualtype___MMVirtualType___init(val_t p0, val_t p1, val_t p2, int* init_table){
184 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___virtualtype___MMVirtualType].i;
185 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
186 val_t tmp;
187 if (init_table[itpos0]) return;
188 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
189 fra.me.file = LOCATE_metamodel___virtualtype;
190 fra.me.line = 64;
191 fra.me.meth = LOCATE_metamodel___virtualtype___MMVirtualType___init;
192 fra.me.has_broke = 0;
193 fra.me.REG_size = 6;
194 fra.me.nitni_local_ref_head = NULL;
195 fra.me.REG[0] = NIT_NULL;
196 fra.me.REG[1] = NIT_NULL;
197 fra.me.REG[2] = NIT_NULL;
198 fra.me.REG[3] = NIT_NULL;
199 fra.me.REG[4] = NIT_NULL;
200 fra.me.REG[5] = NIT_NULL;
201 fra.me.REG[0] = p0;
202 fra.me.REG[1] = p1;
203 fra.me.REG[2] = p2;
204 /* metamodel/virtualtype.nit:64 */
205 fra.me.REG[3] = fra.me.REG[0];
206 /* metamodel/virtualtype.nit:66 */
207 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[1])(fra.me.REG[1]);
208 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
209 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[5])(fra.me.REG[5]);
210 CALL_metamodel___type_formal___MMTypeFormal___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[5], init_table);
211 /* metamodel/virtualtype.nit:67 */
212 ATTR_metamodel___virtualtype___MMVirtualType____property(fra.me.REG[3]) = fra.me.REG[1];
213 /* metamodel/virtualtype.nit:68 */
214 ATTR_metamodel___virtualtype___MMVirtualType____recv(fra.me.REG[3]) = fra.me.REG[2];
215 stack_frame_head = fra.me.prev;
216 init_table[itpos0] = 1;
217 return;
218 }
219 static const char LOCATE_metamodel___virtualtype___MMVirtualType___mmmodule[] = "virtualtype::MMVirtualType::(static_type::MMType::mmmodule)";
220 val_t metamodel___virtualtype___MMVirtualType___mmmodule(val_t p0){
221 struct {struct stack_frame_t me;} fra;
222 val_t REGB0;
223 val_t tmp;
224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
225 fra.me.file = LOCATE_metamodel___virtualtype;
226 fra.me.line = 71;
227 fra.me.meth = LOCATE_metamodel___virtualtype___MMVirtualType___mmmodule;
228 fra.me.has_broke = 0;
229 fra.me.REG_size = 1;
230 fra.me.nitni_local_ref_head = NULL;
231 fra.me.REG[0] = NIT_NULL;
232 fra.me.REG[0] = p0;
233 /* metamodel/virtualtype.nit:71 */
234 REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMVirtualType____recv(fra.me.REG[0])!=NIT_NULL);
235 if (UNTAG_Bool(REGB0)) {
236 } else {
237 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_metamodel___virtualtype, 71);
238 }
239 fra.me.REG[0] = ATTR_metamodel___virtualtype___MMVirtualType____recv(fra.me.REG[0]);
240 fra.me.REG[0] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
241 goto label1;
242 label1: while(0);
243 stack_frame_head = fra.me.prev;
244 return fra.me.REG[0];
245 }
246 static const char LOCATE_metamodel___virtualtype___MMVirtualType___for_module[] = "virtualtype::MMVirtualType::(static_type::MMType::for_module)";
247 val_t metamodel___virtualtype___MMVirtualType___for_module(val_t p0, val_t p1){
248 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
249 val_t REGB0;
250 val_t REGB1;
251 val_t tmp;
252 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
253 fra.me.file = LOCATE_metamodel___virtualtype;
254 fra.me.line = 73;
255 fra.me.meth = LOCATE_metamodel___virtualtype___MMVirtualType___for_module;
256 fra.me.has_broke = 0;
257 fra.me.REG_size = 4;
258 fra.me.nitni_local_ref_head = NULL;
259 fra.me.REG[0] = NIT_NULL;
260 fra.me.REG[1] = NIT_NULL;
261 fra.me.REG[2] = NIT_NULL;
262 fra.me.REG[3] = NIT_NULL;
263 fra.me.REG[0] = p0;
264 fra.me.REG[1] = p1;
265 /* metamodel/virtualtype.nit:75 */
266 fra.me.REG[2] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
267 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
268 if (UNTAG_Bool(REGB0)) {
269 } else {
270 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
271 REGB0 = REGB1;
272 }
273 if (UNTAG_Bool(REGB0)) {
274 fra.me.REG[2] = fra.me.REG[0];
275 goto label1;
276 }
277 /* metamodel/virtualtype.nit:76 */
278 fra.me.REG[3] = CALL_metamodel___virtualtype___MMVirtualType___recv(fra.me.REG[0])(fra.me.REG[0]);
279 fra.me.REG[1] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
280 fra.me.REG[1] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
281 fra.me.REG[2] = fra.me.REG[1];
282 goto label1;
283 label1: while(0);
284 stack_frame_head = fra.me.prev;
285 return fra.me.REG[2];
286 }
287 static const char LOCATE_metamodel___virtualtype___MMVirtualType___not_for_self[] = "virtualtype::MMVirtualType::(static_type::MMType::not_for_self)";
288 val_t metamodel___virtualtype___MMVirtualType___not_for_self(val_t p0){
289 struct {struct stack_frame_t me;} fra;
290 val_t tmp;
291 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
292 fra.me.file = LOCATE_metamodel___virtualtype;
293 fra.me.line = 79;
294 fra.me.meth = LOCATE_metamodel___virtualtype___MMVirtualType___not_for_self;
295 fra.me.has_broke = 0;
296 fra.me.REG_size = 1;
297 fra.me.nitni_local_ref_head = NULL;
298 fra.me.REG[0] = NIT_NULL;
299 fra.me.REG[0] = p0;
300 /* metamodel/virtualtype.nit:81 */
301 fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
302 fra.me.REG[0] = CALL_metamodel___static_type___MMType___not_for_self(fra.me.REG[0])(fra.me.REG[0]);
303 goto label1;
304 label1: while(0);
305 stack_frame_head = fra.me.prev;
306 return fra.me.REG[0];
307 }
308 static const char LOCATE_metamodel___virtualtype___MMVirtualType___adapt_to[] = "virtualtype::MMVirtualType::(static_type::MMType::adapt_to)";
309 val_t metamodel___virtualtype___MMVirtualType___adapt_to(val_t p0, val_t p1){
310 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
311 val_t REGB0;
312 val_t tmp;
313 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
314 fra.me.file = LOCATE_metamodel___virtualtype;
315 fra.me.line = 84;
316 fra.me.meth = LOCATE_metamodel___virtualtype___MMVirtualType___adapt_to;
317 fra.me.has_broke = 0;
318 fra.me.REG_size = 3;
319 fra.me.nitni_local_ref_head = NULL;
320 fra.me.REG[0] = NIT_NULL;
321 fra.me.REG[1] = NIT_NULL;
322 fra.me.REG[2] = NIT_NULL;
323 fra.me.REG[0] = p0;
324 fra.me.REG[1] = p1;
325 /* metamodel/virtualtype.nit:84 */
326 fra.me.REG[2] = fra.me.REG[0];
327 /* metamodel/virtualtype.nit:86 */
328 fra.me.REG[2] = CALL_metamodel___virtualtype___MMVirtualType___property(fra.me.REG[2])(fra.me.REG[2]);
329 fra.me.REG[1] = CALL_metamodel___virtualtype___MMTypeProperty___stype_for(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
330 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
331 if (UNTAG_Bool(REGB0)) {
332 } else {
333 nit_abort("Cast failed", NULL, LOCATE_metamodel___virtualtype, 86);
334 }
335 goto label1;
336 label1: while(0);
337 stack_frame_head = fra.me.prev;
338 return fra.me.REG[1];
339 }
340 static const char LOCATE_metamodel___virtualtype___MMLocalClass___virtual_type[] = "virtualtype::MMLocalClass::virtual_type";
341 val_t metamodel___virtualtype___MMLocalClass___virtual_type(val_t p0, val_t p1){
342 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
343 val_t REGB0;
344 val_t tmp;
345 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
346 fra.me.file = LOCATE_metamodel___virtualtype;
347 fra.me.line = 91;
348 fra.me.meth = LOCATE_metamodel___virtualtype___MMLocalClass___virtual_type;
349 fra.me.has_broke = 0;
350 fra.me.REG_size = 2;
351 fra.me.nitni_local_ref_head = NULL;
352 fra.me.REG[0] = NIT_NULL;
353 fra.me.REG[1] = NIT_NULL;
354 fra.me.REG[0] = p0;
355 fra.me.REG[1] = p1;
356 /* metamodel/virtualtype.nit:93 */
357 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
358 /* metamodel/virtualtype.nit:94 */
359 REGB0 = CALL_metamodel___virtualtype___MMGlobalProperty___is_virtual_type(fra.me.REG[1])(fra.me.REG[1]);
360 if (UNTAG_Bool(REGB0)) {
361 /* metamodel/virtualtype.nit:95 */
362 goto label1;
363 }
364 /* metamodel/virtualtype.nit:97 */
365 nit_abort("Aborted", NULL, LOCATE_metamodel___virtualtype, 97);
366 label1: while(0);
367 stack_frame_head = fra.me.prev;
368 return fra.me.REG[1];
369 }
370 static const char LOCATE_metamodel___virtualtype___MMLocalClass___select_virtual_type[] = "virtualtype::MMLocalClass::select_virtual_type";
371 val_t metamodel___virtualtype___MMLocalClass___select_virtual_type(val_t p0, val_t p1){
372 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
373 val_t REGB0;
374 val_t tmp;
375 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
376 fra.me.file = LOCATE_metamodel___virtualtype;
377 fra.me.line = 100;
378 fra.me.meth = LOCATE_metamodel___virtualtype___MMLocalClass___select_virtual_type;
379 fra.me.has_broke = 0;
380 fra.me.REG_size = 2;
381 fra.me.nitni_local_ref_head = NULL;
382 fra.me.REG[0] = NIT_NULL;
383 fra.me.REG[1] = NIT_NULL;
384 fra.me.REG[0] = p0;
385 fra.me.REG[1] = p1;
386 /* metamodel/virtualtype.nit:103 */
387 fra.me.REG[1] = CALL_metamodel___virtualtype___MMLocalClass___virtual_type(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
388 /* metamodel/virtualtype.nit:104 */
389 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
390 /* metamodel/virtualtype.nit:105 */
391 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___virtualtype___MMTypeProperty, ID_metamodel___virtualtype___MMTypeProperty)) /*cast MMTypeProperty*/;
392 if (UNTAG_Bool(REGB0)) {
393 } else {
394 nit_abort("Assert failed", NULL, LOCATE_metamodel___virtualtype, 105);
395 }
396 /* metamodel/virtualtype.nit:106 */
397 goto label1;
398 label1: while(0);
399 stack_frame_head = fra.me.prev;
400 return fra.me.REG[1];
401 }