typing: add CallSite::erasure_cast to indicate if a cast may be required
[nit.git] / c_src / native_interface___ni_metamodel._sep.c
1 /* This C file is generated by NIT to compile module native_interface___ni_metamodel. */
2 #include "native_interface___ni_metamodel._sep.h"
3 val_t native_interface___ni_metamodel___MMType___friendly_extern_name(val_t p0){
4 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
8 static val_t once_value_1; /* Once value */
9 static val_t once_value_2; /* Once value */
10 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11 fra.me.file = LOCATE_native_interface___ni_metamodel;
12 fra.me.line = 26;
13 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___friendly_extern_name;
14 fra.me.has_broke = 0;
15 fra.me.REG_size = 4;
16 fra.me.nitni_local_ref_head = NULL;
17 fra.me.REG[0] = NIT_NULL;
18 fra.me.REG[1] = NIT_NULL;
19 fra.me.REG[2] = NIT_NULL;
20 fra.me.REG[3] = NIT_NULL;
21 fra.me.REG[0] = p0;
22 /* native_interface/ni_metamodel.nit:30 */
23 fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
24 fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[1])(fra.me.REG[1]);
25 /* native_interface/ni_metamodel.nit:31 */
26 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
27 if (UNTAG_Bool(REGB0)) {
28 /* native_interface/ni_metamodel.nit:32 */
29 REGB0 = TAG_Int(3);
30 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
31 if (!once_value_1) {
32 fra.me.REG[3] = BOX_NativeString("nullable_");
33 REGB0 = TAG_Int(9);
34 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
35 once_value_1 = fra.me.REG[3];
36 register_static_object(&once_value_1);
37 } else fra.me.REG[3] = once_value_1;
38 fra.me.REG[3] = fra.me.REG[3];
39 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
40 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
41 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]);
42 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
43 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
44 if (!once_value_2) {
45 fra.me.REG[3] = BOX_NativeString("");
46 REGB0 = TAG_Int(0);
47 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
48 once_value_2 = fra.me.REG[3];
49 register_static_object(&once_value_2);
50 } else fra.me.REG[3] = once_value_2;
51 fra.me.REG[3] = fra.me.REG[3];
52 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
53 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
54 goto label3;
55 } else {
56 /* native_interface/ni_metamodel.nit:33 */
57 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
58 if (UNTAG_Bool(REGB0)) {
59 } else {
60 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
61 if (UNTAG_Bool(REGB1)) {
62 REGB1 = TAG_Bool(false);
63 REGB0 = REGB1;
64 } else {
65 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
66 REGB0 = REGB1;
67 }
68 }
69 if (UNTAG_Bool(REGB0)) {
70 /* native_interface/ni_metamodel.nit:34 */
71 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
72 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]);
73 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
74 fra.me.REG[2] = fra.me.REG[3];
75 goto label3;
76 } else {
77 /* native_interface/ni_metamodel.nit:35 */
78 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
79 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
80 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[3])(fra.me.REG[3]);
81 if (UNTAG_Bool(REGB0)) {
82 /* native_interface/ni_metamodel.nit:36 */
83 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
84 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
85 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
86 fra.me.REG[2] = fra.me.REG[0];
87 goto label3;
88 } else {
89 /* native_interface/ni_metamodel.nit:38 */
90 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
91 if (UNTAG_Bool(REGB0)) {
92 nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 38);
93 }
94 fra.me.REG[1] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[1])(fra.me.REG[1]);
95 fra.me.REG[2] = fra.me.REG[1];
96 goto label3;
97 }
98 }
99 }
100 label3: while(0);
101 stack_frame_head = fra.me.prev;
102 return fra.me.REG[2];
103 }
104 val_t native_interface___ni_metamodel___MMType___mangled_name(val_t p0){
105 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
106 val_t REGB0;
107 val_t tmp;
108 static val_t once_value_1; /* Once value */
109 static val_t once_value_2; /* Once value */
110 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
111 fra.me.file = LOCATE_native_interface___ni_metamodel;
112 fra.me.line = 42;
113 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___mangled_name;
114 fra.me.has_broke = 0;
115 fra.me.REG_size = 3;
116 fra.me.nitni_local_ref_head = NULL;
117 fra.me.REG[0] = NIT_NULL;
118 fra.me.REG[1] = NIT_NULL;
119 fra.me.REG[2] = NIT_NULL;
120 fra.me.REG[0] = p0;
121 /* native_interface/ni_metamodel.nit:44 */
122 fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
123 fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[1])(fra.me.REG[1]);
124 /* native_interface/ni_metamodel.nit:45 */
125 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
126 if (UNTAG_Bool(REGB0)) {
127 /* native_interface/ni_metamodel.nit:46 */
128 REGB0 = TAG_Int(3);
129 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
130 if (!once_value_1) {
131 fra.me.REG[2] = BOX_NativeString("nullable_");
132 REGB0 = TAG_Int(9);
133 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
134 once_value_1 = fra.me.REG[2];
135 register_static_object(&once_value_1);
136 } else fra.me.REG[2] = once_value_1;
137 fra.me.REG[2] = fra.me.REG[2];
138 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
139 fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
140 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
141 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
142 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
143 if (!once_value_2) {
144 fra.me.REG[2] = BOX_NativeString("");
145 REGB0 = TAG_Int(0);
146 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
147 once_value_2 = fra.me.REG[2];
148 register_static_object(&once_value_2);
149 } else fra.me.REG[2] = once_value_2;
150 fra.me.REG[2] = fra.me.REG[2];
151 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
152 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
153 goto label3;
154 } else {
155 /* native_interface/ni_metamodel.nit:48 */
156 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
157 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
158 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
159 fra.me.REG[1] = fra.me.REG[0];
160 goto label3;
161 }
162 label3: while(0);
163 stack_frame_head = fra.me.prev;
164 return fra.me.REG[1];
165 }
166 val_t native_interface___ni_metamodel___MMType___from_native(val_t p0, val_t p1){
167 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
168 val_t REGB0;
169 val_t REGB1;
170 val_t tmp;
171 static val_t once_value_2; /* Once value */
172 static val_t once_value_3; /* Once value */
173 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
174 fra.me.file = LOCATE_native_interface___ni_metamodel;
175 fra.me.line = 52;
176 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___from_native;
177 fra.me.has_broke = 0;
178 fra.me.REG_size = 5;
179 fra.me.nitni_local_ref_head = NULL;
180 fra.me.REG[0] = NIT_NULL;
181 fra.me.REG[1] = NIT_NULL;
182 fra.me.REG[2] = NIT_NULL;
183 fra.me.REG[3] = NIT_NULL;
184 fra.me.REG[4] = NIT_NULL;
185 fra.me.REG[0] = p0;
186 fra.me.REG[1] = p1;
187 /* native_interface/ni_metamodel.nit:55 */
188 fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
189 fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
190 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
191 if (UNTAG_Bool(REGB0)) {
192 } else {
193 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
194 if (UNTAG_Bool(REGB1)) {
195 REGB1 = TAG_Bool(false);
196 REGB0 = REGB1;
197 } else {
198 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
199 REGB0 = REGB1;
200 }
201 }
202 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
203 if (UNTAG_Bool(REGB0)) {
204 REGB0 = TAG_Bool(true);
205 } else {
206 fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
207 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
208 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[2])(fra.me.REG[2]);
209 REGB0 = REGB1;
210 }
211 if (UNTAG_Bool(REGB0)) {
212 /* native_interface/ni_metamodel.nit:56 */
213 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
214 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
215 } else {
216 /* native_interface/ni_metamodel.nit:55 */
217 REGB1 = TAG_Bool(false);
218 REGB0 = REGB1;
219 }
220 if (UNTAG_Bool(REGB0)) {
221 /* native_interface/ni_metamodel.nit:57 */
222 fra.me.REG[2] = CALL_primitive_info___MMType___boxtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
223 goto label1;
224 } else {
225 /* native_interface/ni_metamodel.nit:59 */
226 REGB0 = TAG_Int(3);
227 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
228 if (!once_value_2) {
229 fra.me.REG[4] = BOX_NativeString("");
230 REGB0 = TAG_Int(0);
231 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
232 once_value_2 = fra.me.REG[4];
233 register_static_object(&once_value_2);
234 } else fra.me.REG[4] = once_value_2;
235 fra.me.REG[4] = fra.me.REG[4];
236 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
237 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
238 if (!once_value_3) {
239 fra.me.REG[1] = BOX_NativeString("->ref.val");
240 REGB0 = TAG_Int(9);
241 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
242 once_value_3 = fra.me.REG[1];
243 register_static_object(&once_value_3);
244 } else fra.me.REG[1] = once_value_3;
245 fra.me.REG[1] = fra.me.REG[1];
246 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
247 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
248 /* native_interface/ni_metamodel.nit:61 */
249 fra.me.REG[3] = CALL_primitive_info___MMType___boxtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
250 fra.me.REG[2] = fra.me.REG[3];
251 goto label1;
252 }
253 label1: while(0);
254 stack_frame_head = fra.me.prev;
255 return fra.me.REG[2];
256 }
257 val_t native_interface___ni_metamodel___MMType___assign_to_friendly(val_t p0, val_t p1, val_t p2){
258 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
259 val_t REGB0;
260 val_t REGB1;
261 val_t tmp;
262 static val_t once_value_1; /* Once value */
263 static val_t once_value_2; /* Once value */
264 static val_t once_value_3; /* Once value */
265 static val_t once_value_5; /* Once value */
266 static val_t once_value_6; /* Once value */
267 static val_t once_value_7; /* Once value */
268 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
269 fra.me.file = LOCATE_native_interface___ni_metamodel;
270 fra.me.line = 65;
271 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___assign_to_friendly;
272 fra.me.has_broke = 0;
273 fra.me.REG_size = 6;
274 fra.me.nitni_local_ref_head = NULL;
275 fra.me.REG[0] = NIT_NULL;
276 fra.me.REG[1] = NIT_NULL;
277 fra.me.REG[2] = NIT_NULL;
278 fra.me.REG[3] = NIT_NULL;
279 fra.me.REG[4] = NIT_NULL;
280 fra.me.REG[5] = NIT_NULL;
281 fra.me.REG[0] = p0;
282 fra.me.REG[1] = p1;
283 fra.me.REG[2] = p2;
284 /* native_interface/ni_metamodel.nit:69 */
285 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
286 fra.me.REG[3] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[3])(fra.me.REG[3]);
287 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
288 if (UNTAG_Bool(REGB0)) {
289 } else {
290 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
291 if (UNTAG_Bool(REGB1)) {
292 REGB1 = TAG_Bool(false);
293 REGB0 = REGB1;
294 } else {
295 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
296 REGB0 = REGB1;
297 }
298 }
299 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
300 if (UNTAG_Bool(REGB0)) {
301 REGB0 = TAG_Bool(true);
302 } else {
303 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
304 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
305 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[3])(fra.me.REG[3]);
306 REGB0 = REGB1;
307 }
308 if (UNTAG_Bool(REGB0)) {
309 /* native_interface/ni_metamodel.nit:70 */
310 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
311 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
312 } else {
313 /* native_interface/ni_metamodel.nit:69 */
314 REGB1 = TAG_Bool(false);
315 REGB0 = REGB1;
316 }
317 if (UNTAG_Bool(REGB0)) {
318 /* native_interface/ni_metamodel.nit:71 */
319 REGB0 = TAG_Int(5);
320 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
321 if (!once_value_1) {
322 fra.me.REG[4] = BOX_NativeString("");
323 REGB0 = TAG_Int(0);
324 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
325 once_value_1 = fra.me.REG[4];
326 register_static_object(&once_value_1);
327 } else fra.me.REG[4] = once_value_1;
328 fra.me.REG[4] = fra.me.REG[4];
329 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
330 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
331 if (!once_value_2) {
332 fra.me.REG[4] = BOX_NativeString(" = ");
333 REGB0 = TAG_Int(3);
334 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
335 once_value_2 = fra.me.REG[4];
336 register_static_object(&once_value_2);
337 } else fra.me.REG[4] = once_value_2;
338 fra.me.REG[4] = fra.me.REG[4];
339 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
340 fra.me.REG[4] = CALL_primitive_info___MMType___unboxtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
341 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
342 if (!once_value_3) {
343 fra.me.REG[4] = BOX_NativeString("");
344 REGB0 = TAG_Int(0);
345 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
346 once_value_3 = fra.me.REG[4];
347 register_static_object(&once_value_3);
348 } else fra.me.REG[4] = once_value_3;
349 fra.me.REG[4] = fra.me.REG[4];
350 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
351 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
352 goto label4;
353 } else {
354 /* native_interface/ni_metamodel.nit:73 */
355 REGB0 = TAG_Int(5);
356 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
357 if (!once_value_5) {
358 fra.me.REG[5] = BOX_NativeString("");
359 REGB0 = TAG_Int(0);
360 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
361 once_value_5 = fra.me.REG[5];
362 register_static_object(&once_value_5);
363 } else fra.me.REG[5] = once_value_5;
364 fra.me.REG[5] = fra.me.REG[5];
365 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
366 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
367 if (!once_value_6) {
368 fra.me.REG[1] = BOX_NativeString("->ref.val = ");
369 REGB0 = TAG_Int(12);
370 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
371 once_value_6 = fra.me.REG[1];
372 register_static_object(&once_value_6);
373 } else fra.me.REG[1] = once_value_6;
374 fra.me.REG[1] = fra.me.REG[1];
375 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
376 fra.me.REG[2] = CALL_primitive_info___MMType___unboxtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
377 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
378 if (!once_value_7) {
379 fra.me.REG[2] = BOX_NativeString("");
380 REGB0 = TAG_Int(0);
381 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
382 once_value_7 = fra.me.REG[2];
383 register_static_object(&once_value_7);
384 } else fra.me.REG[2] = once_value_7;
385 fra.me.REG[2] = fra.me.REG[2];
386 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
387 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
388 fra.me.REG[3] = fra.me.REG[4];
389 goto label4;
390 }
391 label4: while(0);
392 stack_frame_head = fra.me.prev;
393 return fra.me.REG[3];
394 }
395 val_t native_interface___ni_metamodel___MMType___assign_from_friendly(val_t p0, val_t p1, val_t p2){
396 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
397 val_t REGB0;
398 val_t REGB1;
399 val_t tmp;
400 static val_t once_value_1; /* Once value */
401 static val_t once_value_2; /* Once value */
402 static val_t once_value_3; /* Once value */
403 static val_t once_value_5; /* Once value */
404 static val_t once_value_6; /* Once value */
405 static val_t once_value_7; /* Once value */
406 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
407 fra.me.file = LOCATE_native_interface___ni_metamodel;
408 fra.me.line = 77;
409 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___assign_from_friendly;
410 fra.me.has_broke = 0;
411 fra.me.REG_size = 5;
412 fra.me.nitni_local_ref_head = NULL;
413 fra.me.REG[0] = NIT_NULL;
414 fra.me.REG[1] = NIT_NULL;
415 fra.me.REG[2] = NIT_NULL;
416 fra.me.REG[3] = NIT_NULL;
417 fra.me.REG[4] = NIT_NULL;
418 fra.me.REG[0] = p0;
419 fra.me.REG[1] = p1;
420 fra.me.REG[2] = p2;
421 /* native_interface/ni_metamodel.nit:81 */
422 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
423 fra.me.REG[3] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[3])(fra.me.REG[3]);
424 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
425 if (UNTAG_Bool(REGB0)) {
426 } else {
427 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
428 if (UNTAG_Bool(REGB1)) {
429 REGB1 = TAG_Bool(false);
430 REGB0 = REGB1;
431 } else {
432 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
433 REGB0 = REGB1;
434 }
435 }
436 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
437 if (UNTAG_Bool(REGB0)) {
438 REGB0 = TAG_Bool(true);
439 } else {
440 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
441 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
442 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[3])(fra.me.REG[3]);
443 REGB0 = REGB1;
444 }
445 if (UNTAG_Bool(REGB0)) {
446 /* native_interface/ni_metamodel.nit:82 */
447 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
448 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
449 } else {
450 /* native_interface/ni_metamodel.nit:81 */
451 REGB1 = TAG_Bool(false);
452 REGB0 = REGB1;
453 }
454 if (UNTAG_Bool(REGB0)) {
455 /* native_interface/ni_metamodel.nit:83 */
456 REGB0 = TAG_Int(5);
457 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
458 if (!once_value_1) {
459 fra.me.REG[4] = BOX_NativeString("");
460 REGB0 = TAG_Int(0);
461 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
462 once_value_1 = fra.me.REG[4];
463 register_static_object(&once_value_1);
464 } else fra.me.REG[4] = once_value_1;
465 fra.me.REG[4] = fra.me.REG[4];
466 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
467 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
468 if (!once_value_2) {
469 fra.me.REG[4] = BOX_NativeString(" = ");
470 REGB0 = TAG_Int(3);
471 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
472 once_value_2 = fra.me.REG[4];
473 register_static_object(&once_value_2);
474 } else fra.me.REG[4] = once_value_2;
475 fra.me.REG[4] = fra.me.REG[4];
476 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
477 fra.me.REG[0] = CALL_primitive_info___MMType___boxtype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
478 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
479 if (!once_value_3) {
480 fra.me.REG[0] = BOX_NativeString("");
481 REGB0 = TAG_Int(0);
482 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
483 once_value_3 = fra.me.REG[0];
484 register_static_object(&once_value_3);
485 } else fra.me.REG[0] = once_value_3;
486 fra.me.REG[0] = fra.me.REG[0];
487 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
488 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
489 goto label4;
490 } else {
491 /* native_interface/ni_metamodel.nit:85 */
492 REGB0 = TAG_Int(5);
493 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
494 if (!once_value_5) {
495 fra.me.REG[4] = BOX_NativeString("");
496 REGB0 = TAG_Int(0);
497 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
498 once_value_5 = fra.me.REG[4];
499 register_static_object(&once_value_5);
500 } else fra.me.REG[4] = once_value_5;
501 fra.me.REG[4] = fra.me.REG[4];
502 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
503 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
504 if (!once_value_6) {
505 fra.me.REG[1] = BOX_NativeString(" = ");
506 REGB0 = TAG_Int(3);
507 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
508 once_value_6 = fra.me.REG[1];
509 register_static_object(&once_value_6);
510 } else fra.me.REG[1] = once_value_6;
511 fra.me.REG[1] = fra.me.REG[1];
512 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
513 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
514 if (!once_value_7) {
515 fra.me.REG[2] = BOX_NativeString("->ref.val");
516 REGB0 = TAG_Int(9);
517 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
518 once_value_7 = fra.me.REG[2];
519 register_static_object(&once_value_7);
520 } else fra.me.REG[2] = once_value_7;
521 fra.me.REG[2] = fra.me.REG[2];
522 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
523 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
524 fra.me.REG[3] = fra.me.REG[0];
525 goto label4;
526 }
527 label4: while(0);
528 stack_frame_head = fra.me.prev;
529 return fra.me.REG[3];
530 }
531 val_t native_interface___ni_metamodel___MMType___uses_nitni_ref(val_t p0){
532 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
533 val_t REGB0;
534 val_t REGB1;
535 val_t tmp;
536 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
537 fra.me.file = LOCATE_native_interface___ni_metamodel;
538 fra.me.line = 89;
539 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___uses_nitni_ref;
540 fra.me.has_broke = 0;
541 fra.me.REG_size = 2;
542 fra.me.nitni_local_ref_head = NULL;
543 fra.me.REG[0] = NIT_NULL;
544 fra.me.REG[1] = NIT_NULL;
545 fra.me.REG[0] = p0;
546 /* native_interface/ni_metamodel.nit:89 */
547 fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
548 fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[1])(fra.me.REG[1]);
549 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
550 if (UNTAG_Bool(REGB0)) {
551 } else {
552 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
553 if (UNTAG_Bool(REGB1)) {
554 REGB1 = TAG_Bool(false);
555 REGB0 = REGB1;
556 } else {
557 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
558 REGB0 = REGB1;
559 }
560 }
561 if (UNTAG_Bool(REGB0)) {
562 REGB0 = TAG_Bool(true);
563 } else {
564 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
565 REGB0 = REGB1;
566 }
567 goto label1;
568 label1: while(0);
569 stack_frame_head = fra.me.prev;
570 return REGB0;
571 }
572 val_t native_interface___ni_metamodel___MMType___friendly_null_getter(val_t p0){
573 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
574 val_t REGB0;
575 val_t tmp;
576 static val_t once_value_1; /* Once value */
577 static val_t once_value_2; /* Once value */
578 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
579 fra.me.file = LOCATE_native_interface___ni_metamodel;
580 fra.me.line = 91;
581 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___friendly_null_getter;
582 fra.me.has_broke = 0;
583 fra.me.REG_size = 3;
584 fra.me.nitni_local_ref_head = NULL;
585 fra.me.REG[0] = NIT_NULL;
586 fra.me.REG[1] = NIT_NULL;
587 fra.me.REG[2] = NIT_NULL;
588 fra.me.REG[0] = p0;
589 /* native_interface/ni_metamodel.nit:93 */
590 REGB0 = TAG_Int(3);
591 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
592 if (!once_value_1) {
593 fra.me.REG[2] = BOX_NativeString("null_");
594 REGB0 = TAG_Int(5);
595 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
596 once_value_1 = fra.me.REG[2];
597 register_static_object(&once_value_1);
598 } else fra.me.REG[2] = once_value_1;
599 fra.me.REG[2] = fra.me.REG[2];
600 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
601 fra.me.REG[0] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[0])(fra.me.REG[0]);
602 fra.me.REG[0] = CALL_native_interface___ni_metamodel___MMType___mangled_name(fra.me.REG[0])(fra.me.REG[0]);
603 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
604 if (!once_value_2) {
605 fra.me.REG[0] = BOX_NativeString("");
606 REGB0 = TAG_Int(0);
607 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
608 once_value_2 = fra.me.REG[0];
609 register_static_object(&once_value_2);
610 } else fra.me.REG[0] = once_value_2;
611 fra.me.REG[0] = fra.me.REG[0];
612 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
613 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
614 goto label3;
615 label3: while(0);
616 stack_frame_head = fra.me.prev;
617 return fra.me.REG[1];
618 }
619 val_t native_interface___ni_metamodel___MMType___local_friendly_null_getter_from(val_t p0, val_t p1){
620 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
621 val_t REGB0;
622 val_t tmp;
623 static val_t once_value_1; /* Once value */
624 static val_t once_value_2; /* Once value */
625 static val_t once_value_3; /* Once value */
626 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
627 fra.me.file = LOCATE_native_interface___ni_metamodel;
628 fra.me.line = 96;
629 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMType___local_friendly_null_getter_from;
630 fra.me.has_broke = 0;
631 fra.me.REG_size = 4;
632 fra.me.nitni_local_ref_head = NULL;
633 fra.me.REG[0] = NIT_NULL;
634 fra.me.REG[1] = NIT_NULL;
635 fra.me.REG[2] = NIT_NULL;
636 fra.me.REG[3] = NIT_NULL;
637 fra.me.REG[0] = p0;
638 fra.me.REG[1] = p1;
639 /* native_interface/ni_metamodel.nit:98 */
640 REGB0 = TAG_Int(5);
641 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
642 if (!once_value_1) {
643 fra.me.REG[3] = BOX_NativeString("");
644 REGB0 = TAG_Int(0);
645 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
646 once_value_1 = fra.me.REG[3];
647 register_static_object(&once_value_1);
648 } else fra.me.REG[3] = once_value_1;
649 fra.me.REG[3] = fra.me.REG[3];
650 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
651 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
652 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
653 if (!once_value_2) {
654 fra.me.REG[1] = BOX_NativeString("_");
655 REGB0 = TAG_Int(1);
656 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
657 once_value_2 = fra.me.REG[1];
658 register_static_object(&once_value_2);
659 } else fra.me.REG[1] = once_value_2;
660 fra.me.REG[1] = fra.me.REG[1];
661 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
662 fra.me.REG[0] = CALL_native_interface___ni_metamodel___MMType___friendly_null_getter(fra.me.REG[0])(fra.me.REG[0]);
663 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
664 if (!once_value_3) {
665 fra.me.REG[0] = BOX_NativeString("");
666 REGB0 = TAG_Int(0);
667 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
668 once_value_3 = fra.me.REG[0];
669 register_static_object(&once_value_3);
670 } else fra.me.REG[0] = once_value_3;
671 fra.me.REG[0] = fra.me.REG[0];
672 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
673 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
674 goto label4;
675 label4: while(0);
676 stack_frame_head = fra.me.prev;
677 return fra.me.REG[2];
678 }
679 val_t native_interface___ni_metamodel___MMMethod___local_friendly_name_from(val_t p0, val_t p1, val_t p2){
680 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
681 val_t REGB0;
682 val_t tmp;
683 static val_t once_value_1; /* Once value */
684 static val_t once_value_2; /* Once value */
685 static val_t once_value_3; /* Once value */
686 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
687 fra.me.file = LOCATE_native_interface___ni_metamodel;
688 fra.me.line = 103;
689 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___local_friendly_name_from;
690 fra.me.has_broke = 0;
691 fra.me.REG_size = 5;
692 fra.me.nitni_local_ref_head = NULL;
693 fra.me.REG[0] = NIT_NULL;
694 fra.me.REG[1] = NIT_NULL;
695 fra.me.REG[2] = NIT_NULL;
696 fra.me.REG[3] = NIT_NULL;
697 fra.me.REG[4] = NIT_NULL;
698 fra.me.REG[0] = p0;
699 fra.me.REG[1] = p1;
700 fra.me.REG[2] = p2;
701 /* native_interface/ni_metamodel.nit:107 */
702 REGB0 = TAG_Int(5);
703 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
704 if (!once_value_1) {
705 fra.me.REG[4] = BOX_NativeString("");
706 REGB0 = TAG_Int(0);
707 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
708 once_value_1 = fra.me.REG[4];
709 register_static_object(&once_value_1);
710 } else fra.me.REG[4] = once_value_1;
711 fra.me.REG[4] = fra.me.REG[4];
712 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
713 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
714 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
715 if (!once_value_2) {
716 fra.me.REG[1] = BOX_NativeString("_");
717 REGB0 = TAG_Int(1);
718 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
719 once_value_2 = fra.me.REG[1];
720 register_static_object(&once_value_2);
721 } else fra.me.REG[1] = once_value_2;
722 fra.me.REG[1] = fra.me.REG[1];
723 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
724 fra.me.REG[2] = CALL_primitive_info___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
725 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
726 if (!once_value_3) {
727 fra.me.REG[2] = BOX_NativeString("");
728 REGB0 = TAG_Int(0);
729 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
730 once_value_3 = fra.me.REG[2];
731 register_static_object(&once_value_3);
732 } else fra.me.REG[2] = once_value_3;
733 fra.me.REG[2] = fra.me.REG[2];
734 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
735 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
736 goto label4;
737 label4: while(0);
738 stack_frame_head = fra.me.prev;
739 return fra.me.REG[3];
740 }
741 val_t native_interface___ni_metamodel___MMMethod___friendly_super_cname(val_t p0){
742 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
743 val_t REGB0;
744 val_t tmp;
745 static val_t once_value_1; /* Once value */
746 static val_t once_value_2; /* Once value */
747 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
748 fra.me.file = LOCATE_native_interface___ni_metamodel;
749 fra.me.line = 110;
750 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___friendly_super_cname;
751 fra.me.has_broke = 0;
752 fra.me.REG_size = 3;
753 fra.me.nitni_local_ref_head = NULL;
754 fra.me.REG[0] = NIT_NULL;
755 fra.me.REG[1] = NIT_NULL;
756 fra.me.REG[2] = NIT_NULL;
757 fra.me.REG[0] = p0;
758 /* native_interface/ni_metamodel.nit:112 */
759 REGB0 = TAG_Int(3);
760 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
761 if (!once_value_1) {
762 fra.me.REG[2] = BOX_NativeString("");
763 REGB0 = TAG_Int(0);
764 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
765 once_value_1 = fra.me.REG[2];
766 register_static_object(&once_value_1);
767 } else fra.me.REG[2] = once_value_1;
768 fra.me.REG[2] = fra.me.REG[2];
769 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
770 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
771 fra.me.REG[2] = CALL_primitive_info___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
772 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
773 if (!once_value_2) {
774 fra.me.REG[2] = BOX_NativeString("___super");
775 REGB0 = TAG_Int(8);
776 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
777 once_value_2 = fra.me.REG[2];
778 register_static_object(&once_value_2);
779 } else fra.me.REG[2] = once_value_2;
780 fra.me.REG[2] = fra.me.REG[2];
781 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
782 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
783 goto label3;
784 label3: while(0);
785 stack_frame_head = fra.me.prev;
786 return fra.me.REG[1];
787 }
788 val_t native_interface___ni_metamodel___MMMethod___local_friendly_super_name_from(val_t p0, val_t p1){
789 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
790 val_t REGB0;
791 val_t tmp;
792 static val_t once_value_1; /* Once value */
793 static val_t once_value_2; /* Once value */
794 static val_t once_value_3; /* Once value */
795 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
796 fra.me.file = LOCATE_native_interface___ni_metamodel;
797 fra.me.line = 115;
798 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___local_friendly_super_name_from;
799 fra.me.has_broke = 0;
800 fra.me.REG_size = 4;
801 fra.me.nitni_local_ref_head = NULL;
802 fra.me.REG[0] = NIT_NULL;
803 fra.me.REG[1] = NIT_NULL;
804 fra.me.REG[2] = NIT_NULL;
805 fra.me.REG[3] = NIT_NULL;
806 fra.me.REG[0] = p0;
807 fra.me.REG[1] = p1;
808 /* native_interface/ni_metamodel.nit:117 */
809 REGB0 = TAG_Int(5);
810 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
811 if (!once_value_1) {
812 fra.me.REG[3] = BOX_NativeString("");
813 REGB0 = TAG_Int(0);
814 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
815 once_value_1 = fra.me.REG[3];
816 register_static_object(&once_value_1);
817 } else fra.me.REG[3] = once_value_1;
818 fra.me.REG[3] = fra.me.REG[3];
819 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
820 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
821 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
822 if (!once_value_2) {
823 fra.me.REG[1] = BOX_NativeString("_");
824 REGB0 = TAG_Int(1);
825 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
826 once_value_2 = fra.me.REG[1];
827 register_static_object(&once_value_2);
828 } else fra.me.REG[1] = once_value_2;
829 fra.me.REG[1] = fra.me.REG[1];
830 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
831 fra.me.REG[0] = CALL_native_interface___ni_metamodel___MMMethod___friendly_super_cname(fra.me.REG[0])(fra.me.REG[0]);
832 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
833 if (!once_value_3) {
834 fra.me.REG[0] = BOX_NativeString("");
835 REGB0 = TAG_Int(0);
836 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
837 once_value_3 = fra.me.REG[0];
838 register_static_object(&once_value_3);
839 } else fra.me.REG[0] = once_value_3;
840 fra.me.REG[0] = fra.me.REG[0];
841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
842 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
843 goto label4;
844 label4: while(0);
845 stack_frame_head = fra.me.prev;
846 return fra.me.REG[2];
847 }
848 val_t native_interface___ni_metamodel___MMMethod___friendly_cparams(val_t p0, val_t p1){
849 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
850 val_t REGB0;
851 val_t REGB1;
852 val_t REGB2;
853 val_t tmp;
854 static val_t once_value_1; /* Once value */
855 static val_t once_value_2; /* Once value */
856 static val_t once_value_3; /* Once value */
857 static val_t once_value_4; /* Once value */
858 static val_t once_value_5; /* Once value */
859 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
860 fra.me.file = LOCATE_native_interface___ni_metamodel;
861 fra.me.line = 120;
862 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___friendly_cparams;
863 fra.me.has_broke = 0;
864 fra.me.REG_size = 6;
865 fra.me.nitni_local_ref_head = NULL;
866 fra.me.REG[0] = NIT_NULL;
867 fra.me.REG[1] = NIT_NULL;
868 fra.me.REG[2] = NIT_NULL;
869 fra.me.REG[3] = NIT_NULL;
870 fra.me.REG[4] = NIT_NULL;
871 fra.me.REG[5] = NIT_NULL;
872 fra.me.REG[0] = p0;
873 fra.me.REG[1] = p1;
874 /* native_interface/ni_metamodel.nit:122 */
875 fra.me.REG[2] = NEW_List_standard___collection___list___List___init();
876 /* native_interface/ni_metamodel.nit:124 */
877 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
878 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
879 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
880 if (UNTAG_Bool(REGB0)) {
881 /* native_interface/ni_metamodel.nit:125 */
882 REGB0 = TAG_Int(3);
883 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
884 if (!once_value_1) {
885 fra.me.REG[4] = BOX_NativeString("");
886 REGB0 = TAG_Int(0);
887 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
888 once_value_1 = fra.me.REG[4];
889 register_static_object(&once_value_1);
890 } else fra.me.REG[4] = once_value_1;
891 fra.me.REG[4] = fra.me.REG[4];
892 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
893 fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
894 fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra.me.REG[1])(fra.me.REG[1]);
895 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
896 if (!once_value_2) {
897 fra.me.REG[1] = BOX_NativeString(" recv");
898 REGB0 = TAG_Int(5);
899 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
900 once_value_2 = fra.me.REG[1];
901 register_static_object(&once_value_2);
902 } else fra.me.REG[1] = once_value_2;
903 fra.me.REG[1] = fra.me.REG[1];
904 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
905 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
906 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
907 }
908 /* native_interface/ni_metamodel.nit:128 */
909 fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
910 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
911 if (UNTAG_Bool(REGB0)) {
912 nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 128);
913 }
914 fra.me.REG[0] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[0])(fra.me.REG[0]);
915 /* ../lib/standard/collection/array.nit:269 */
916 REGB0 = TAG_Int(0);
917 /* ../lib/standard/collection/array.nit:270 */
918 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
919 if (UNTAG_Bool(REGB1)) {
920 } else {
921 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
922 }
923 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
924 /* ../lib/standard/collection/array.nit:271 */
925 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
926 /* ../lib/standard/collection/array.nit:272 */
927 while(1) {
928 /* ../lib/standard/collection/array.nit:24 */
929 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
930 if (UNTAG_Bool(REGB1)) {
931 } else {
932 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
933 }
934 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
935 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
936 if (UNTAG_Bool(REGB2)) {
937 } else {
938 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
939 }
940 /* ../lib/standard/kernel.nit:232 */
941 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
942 /* ../lib/standard/collection/array.nit:272 */
943 if (UNTAG_Bool(REGB1)) {
944 /* ../lib/standard/collection/array.nit:273 */
945 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
946 if (UNTAG_Bool(REGB1)) {
947 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
948 }
949 /* ../lib/standard/collection/array.nit:718 */
950 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
951 /* native_interface/ni_metamodel.nit:129 */
952 REGB1 = TAG_Int(5);
953 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
954 if (!once_value_3) {
955 fra.me.REG[5] = BOX_NativeString("");
956 REGB1 = TAG_Int(0);
957 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
958 once_value_3 = fra.me.REG[5];
959 register_static_object(&once_value_3);
960 } else fra.me.REG[5] = once_value_3;
961 fra.me.REG[5] = fra.me.REG[5];
962 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
963 fra.me.REG[5] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[1])(fra.me.REG[1]);
964 fra.me.REG[5] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra.me.REG[5])(fra.me.REG[5]);
965 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
966 if (!once_value_4) {
967 fra.me.REG[5] = BOX_NativeString(" ");
968 REGB1 = TAG_Int(1);
969 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
970 once_value_4 = fra.me.REG[5];
971 register_static_object(&once_value_4);
972 } else fra.me.REG[5] = once_value_4;
973 fra.me.REG[5] = fra.me.REG[5];
974 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
975 fra.me.REG[1] = CALL_metamodel___static_type___MMParam___name(fra.me.REG[1])(fra.me.REG[1]);
976 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
977 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
978 if (!once_value_5) {
979 fra.me.REG[1] = BOX_NativeString("");
980 REGB1 = TAG_Int(0);
981 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
982 once_value_5 = fra.me.REG[1];
983 register_static_object(&once_value_5);
984 } else fra.me.REG[1] = once_value_5;
985 fra.me.REG[1] = fra.me.REG[1];
986 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
987 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
988 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
989 /* ../lib/standard/collection/array.nit:274 */
990 REGB1 = TAG_Int(1);
991 /* ../lib/standard/kernel.nit:235 */
992 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
993 /* ../lib/standard/collection/array.nit:274 */
994 REGB0 = REGB1;
995 } else {
996 /* ../lib/standard/collection/array.nit:272 */
997 goto label6;
998 }
999 }
1000 label6: while(0);
1001 /* native_interface/ni_metamodel.nit:132 */
1002 goto label7;
1003 label7: while(0);
1004 stack_frame_head = fra.me.prev;
1005 return fra.me.REG[2];
1006 }
1007 val_t native_interface___ni_metamodel___MMMethod___csignature_with_suffix(val_t p0, val_t p1, val_t p2){
1008 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1009 val_t REGB0;
1010 val_t tmp;
1011 static val_t once_value_1; /* Once value */
1012 static val_t once_value_2; /* Once value */
1013 static val_t once_value_3; /* Once value */
1014 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1015 fra.me.file = LOCATE_native_interface___ni_metamodel;
1016 fra.me.line = 135;
1017 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___csignature_with_suffix;
1018 fra.me.has_broke = 0;
1019 fra.me.REG_size = 5;
1020 fra.me.nitni_local_ref_head = NULL;
1021 fra.me.REG[0] = NIT_NULL;
1022 fra.me.REG[1] = NIT_NULL;
1023 fra.me.REG[2] = NIT_NULL;
1024 fra.me.REG[3] = NIT_NULL;
1025 fra.me.REG[4] = NIT_NULL;
1026 fra.me.REG[0] = p0;
1027 fra.me.REG[1] = p1;
1028 fra.me.REG[2] = p2;
1029 /* native_interface/ni_metamodel.nit:137 */
1030 REGB0 = TAG_Int(5);
1031 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1032 if (!once_value_1) {
1033 fra.me.REG[4] = BOX_NativeString("");
1034 REGB0 = TAG_Int(0);
1035 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1036 once_value_1 = fra.me.REG[4];
1037 register_static_object(&once_value_1);
1038 } else fra.me.REG[4] = once_value_1;
1039 fra.me.REG[4] = fra.me.REG[4];
1040 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1041 fra.me.REG[4] = CALL_primitive_info___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
1042 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1043 if (!once_value_2) {
1044 fra.me.REG[4] = BOX_NativeString("");
1045 REGB0 = TAG_Int(0);
1046 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1047 once_value_2 = fra.me.REG[4];
1048 register_static_object(&once_value_2);
1049 } else fra.me.REG[4] = once_value_2;
1050 fra.me.REG[4] = fra.me.REG[4];
1051 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1052 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1053 if (!once_value_3) {
1054 fra.me.REG[1] = BOX_NativeString("");
1055 REGB0 = TAG_Int(0);
1056 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
1057 once_value_3 = fra.me.REG[1];
1058 register_static_object(&once_value_3);
1059 } else fra.me.REG[1] = once_value_3;
1060 fra.me.REG[1] = fra.me.REG[1];
1061 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1062 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1063 /* native_interface/ni_metamodel.nit:139 */
1064 fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
1065 goto label4;
1066 label4: while(0);
1067 stack_frame_head = fra.me.prev;
1068 return fra.me.REG[2];
1069 }
1070 val_t native_interface___ni_metamodel___MMMethod___csignature_with_name(val_t p0, val_t p1, val_t p2){
1071 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1072 val_t REGB0;
1073 val_t REGB1;
1074 val_t tmp;
1075 static val_t once_value_1; /* Once value */
1076 static val_t once_value_2; /* Once value */
1077 static val_t once_value_3; /* Once value */
1078 static val_t once_value_4; /* Once value */
1079 static val_t once_value_5; /* Once value */
1080 static val_t once_value_6; /* Once value */
1081 static val_t once_value_7; /* Once value */
1082 static val_t once_value_8; /* Once value */
1083 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1084 fra.me.file = LOCATE_native_interface___ni_metamodel;
1085 fra.me.line = 142;
1086 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___csignature_with_name;
1087 fra.me.has_broke = 0;
1088 fra.me.REG_size = 6;
1089 fra.me.nitni_local_ref_head = NULL;
1090 fra.me.REG[0] = NIT_NULL;
1091 fra.me.REG[1] = NIT_NULL;
1092 fra.me.REG[2] = NIT_NULL;
1093 fra.me.REG[3] = NIT_NULL;
1094 fra.me.REG[4] = NIT_NULL;
1095 fra.me.REG[5] = NIT_NULL;
1096 fra.me.REG[0] = p0;
1097 fra.me.REG[1] = p1;
1098 fra.me.REG[2] = p2;
1099 /* native_interface/ni_metamodel.nit:144 */
1100 fra.me.REG[3] = NEW_Buffer_standard___string___Buffer___init();
1101 /* native_interface/ni_metamodel.nit:147 */
1102 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
1103 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1104 if (UNTAG_Bool(REGB0)) {
1105 nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 147);
1106 }
1107 fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
1108 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1109 if (UNTAG_Bool(REGB0)) {
1110 } else {
1111 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1112 if (UNTAG_Bool(REGB1)) {
1113 REGB1 = TAG_Bool(false);
1114 REGB0 = REGB1;
1115 } else {
1116 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1117 REGB0 = REGB1;
1118 }
1119 }
1120 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1121 if (UNTAG_Bool(REGB0)) {
1122 /* native_interface/ni_metamodel.nit:148 */
1123 REGB0 = TAG_Int(3);
1124 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1125 if (!once_value_1) {
1126 fra.me.REG[5] = BOX_NativeString("");
1127 REGB0 = TAG_Int(0);
1128 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
1129 once_value_1 = fra.me.REG[5];
1130 register_static_object(&once_value_1);
1131 } else fra.me.REG[5] = once_value_1;
1132 fra.me.REG[5] = fra.me.REG[5];
1133 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1134 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
1135 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1136 if (UNTAG_Bool(REGB0)) {
1137 nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 148);
1138 }
1139 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[5])(fra.me.REG[5]);
1140 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1141 if (UNTAG_Bool(REGB0)) {
1142 nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 148);
1143 }
1144 fra.me.REG[5] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra.me.REG[5])(fra.me.REG[5]);
1145 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1146 if (!once_value_2) {
1147 fra.me.REG[5] = BOX_NativeString(" ");
1148 REGB0 = TAG_Int(1);
1149 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
1150 once_value_2 = fra.me.REG[5];
1151 register_static_object(&once_value_2);
1152 } else fra.me.REG[5] = once_value_2;
1153 fra.me.REG[5] = fra.me.REG[5];
1154 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1155 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1156 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1157 } else {
1158 /* native_interface/ni_metamodel.nit:149 */
1159 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
1160 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
1161 if (UNTAG_Bool(REGB0)) {
1162 /* native_interface/ni_metamodel.nit:150 */
1163 REGB0 = TAG_Int(3);
1164 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1165 if (!once_value_3) {
1166 fra.me.REG[5] = BOX_NativeString("");
1167 REGB0 = TAG_Int(0);
1168 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
1169 once_value_3 = fra.me.REG[5];
1170 register_static_object(&once_value_3);
1171 } else fra.me.REG[5] = once_value_3;
1172 fra.me.REG[5] = fra.me.REG[5];
1173 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1174 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[2])(fra.me.REG[2]);
1175 fra.me.REG[5] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra.me.REG[5])(fra.me.REG[5]);
1176 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1177 if (!once_value_4) {
1178 fra.me.REG[5] = BOX_NativeString(" ");
1179 REGB0 = TAG_Int(1);
1180 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
1181 once_value_4 = fra.me.REG[5];
1182 register_static_object(&once_value_4);
1183 } else fra.me.REG[5] = once_value_4;
1184 fra.me.REG[5] = fra.me.REG[5];
1185 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1186 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1187 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1188 } else {
1189 /* native_interface/ni_metamodel.nit:152 */
1190 if (!once_value_5) {
1191 fra.me.REG[4] = BOX_NativeString("void ");
1192 REGB0 = TAG_Int(5);
1193 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1194 once_value_5 = fra.me.REG[4];
1195 register_static_object(&once_value_5);
1196 } else fra.me.REG[4] = once_value_5;
1197 fra.me.REG[4] = fra.me.REG[4];
1198 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1199 }
1200 }
1201 /* native_interface/ni_metamodel.nit:156 */
1202 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1203 if (UNTAG_Bool(REGB0)) {
1204 } else {
1205 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1206 if (UNTAG_Bool(REGB1)) {
1207 REGB1 = TAG_Bool(false);
1208 REGB0 = REGB1;
1209 } else {
1210 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1211 REGB0 = REGB1;
1212 }
1213 }
1214 if (UNTAG_Bool(REGB0)) {
1215 /* native_interface/ni_metamodel.nit:157 */
1216 fra.me.REG[4] = CALL_primitive_info___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
1217 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1218 } else {
1219 /* native_interface/ni_metamodel.nit:159 */
1220 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1221 }
1222 /* native_interface/ni_metamodel.nit:163 */
1223 fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___friendly_cparams(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
1224 /* native_interface/ni_metamodel.nit:165 */
1225 REGB0 = TAG_Int(3);
1226 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1227 if (!once_value_6) {
1228 fra.me.REG[1] = BOX_NativeString("( ");
1229 REGB0 = TAG_Int(2);
1230 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
1231 once_value_6 = fra.me.REG[1];
1232 register_static_object(&once_value_6);
1233 } else fra.me.REG[1] = once_value_6;
1234 fra.me.REG[1] = fra.me.REG[1];
1235 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1236 if (!once_value_7) {
1237 fra.me.REG[1] = BOX_NativeString(", ");
1238 REGB0 = TAG_Int(2);
1239 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
1240 once_value_7 = fra.me.REG[1];
1241 register_static_object(&once_value_7);
1242 } else fra.me.REG[1] = once_value_7;
1243 fra.me.REG[1] = fra.me.REG[1];
1244 fra.me.REG[1] = CALL_standard___string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1245 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1246 if (!once_value_8) {
1247 fra.me.REG[1] = BOX_NativeString(" )");
1248 REGB0 = TAG_Int(2);
1249 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
1250 once_value_8 = fra.me.REG[1];
1251 register_static_object(&once_value_8);
1252 } else fra.me.REG[1] = once_value_8;
1253 fra.me.REG[1] = fra.me.REG[1];
1254 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1255 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
1256 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
1257 /* native_interface/ni_metamodel.nit:167 */
1258 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1259 goto label9;
1260 label9: while(0);
1261 stack_frame_head = fra.me.prev;
1262 return fra.me.REG[3];
1263 }
1264 val_t native_interface___ni_metamodel___MMMethod___friendly_csignature(val_t p0, val_t p1){
1265 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1266 val_t tmp;
1267 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1268 fra.me.file = LOCATE_native_interface___ni_metamodel;
1269 fra.me.line = 170;
1270 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___friendly_csignature;
1271 fra.me.has_broke = 0;
1272 fra.me.REG_size = 2;
1273 fra.me.nitni_local_ref_head = NULL;
1274 fra.me.REG[0] = NIT_NULL;
1275 fra.me.REG[1] = NIT_NULL;
1276 fra.me.REG[0] = p0;
1277 fra.me.REG[1] = p1;
1278 /* native_interface/ni_metamodel.nit:172 */
1279 fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[1]);
1280 goto label1;
1281 label1: while(0);
1282 stack_frame_head = fra.me.prev;
1283 return fra.me.REG[1];
1284 }
1285 val_t native_interface___ni_metamodel___MMMethod___frontier_csignature_from(val_t p0, val_t p1, val_t p2){
1286 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1287 val_t tmp;
1288 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1289 fra.me.file = LOCATE_native_interface___ni_metamodel;
1290 fra.me.line = 175;
1291 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___frontier_csignature_from;
1292 fra.me.has_broke = 0;
1293 fra.me.REG_size = 3;
1294 fra.me.nitni_local_ref_head = NULL;
1295 fra.me.REG[0] = NIT_NULL;
1296 fra.me.REG[1] = NIT_NULL;
1297 fra.me.REG[2] = NIT_NULL;
1298 fra.me.REG[0] = p0;
1299 fra.me.REG[1] = p1;
1300 fra.me.REG[2] = p2;
1301 /* native_interface/ni_metamodel.nit:177 */
1302 fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMMethod___local_friendly_name_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1303 fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1304 goto label1;
1305 label1: while(0);
1306 stack_frame_head = fra.me.prev;
1307 return fra.me.REG[2];
1308 }
1309 val_t native_interface___ni_metamodel___MMMethod___friendly_super_csignature(val_t p0){
1310 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1311 val_t REGB0;
1312 val_t tmp;
1313 static val_t once_value_1; /* Once value */
1314 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1315 fra.me.file = LOCATE_native_interface___ni_metamodel;
1316 fra.me.line = 180;
1317 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___friendly_super_csignature;
1318 fra.me.has_broke = 0;
1319 fra.me.REG_size = 3;
1320 fra.me.nitni_local_ref_head = NULL;
1321 fra.me.REG[0] = NIT_NULL;
1322 fra.me.REG[1] = NIT_NULL;
1323 fra.me.REG[2] = NIT_NULL;
1324 fra.me.REG[0] = p0;
1325 /* native_interface/ni_metamodel.nit:182 */
1326 if (!once_value_1) {
1327 fra.me.REG[1] = BOX_NativeString("___super");
1328 REGB0 = TAG_Int(8);
1329 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
1330 once_value_1 = fra.me.REG[1];
1331 register_static_object(&once_value_1);
1332 } else fra.me.REG[1] = once_value_1;
1333 fra.me.REG[1] = fra.me.REG[1];
1334 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1335 fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___csignature_with_suffix(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1336 goto label2;
1337 label2: while(0);
1338 stack_frame_head = fra.me.prev;
1339 return fra.me.REG[2];
1340 }
1341 val_t native_interface___ni_metamodel___MMMethod___frontier_super_csignature_from(val_t p0, val_t p1){
1342 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1343 val_t tmp;
1344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1345 fra.me.file = LOCATE_native_interface___ni_metamodel;
1346 fra.me.line = 185;
1347 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___frontier_super_csignature_from;
1348 fra.me.has_broke = 0;
1349 fra.me.REG_size = 3;
1350 fra.me.nitni_local_ref_head = NULL;
1351 fra.me.REG[0] = NIT_NULL;
1352 fra.me.REG[1] = NIT_NULL;
1353 fra.me.REG[2] = NIT_NULL;
1354 fra.me.REG[0] = p0;
1355 fra.me.REG[1] = p1;
1356 /* native_interface/ni_metamodel.nit:187 */
1357 fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMMethod___local_friendly_super_name_from(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1358 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1359 fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___csignature_with_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1360 goto label1;
1361 label1: while(0);
1362 stack_frame_head = fra.me.prev;
1363 return fra.me.REG[2];
1364 }
1365 val_t native_interface___ni_metamodel___MMMethod___impl_csignature(val_t p0){
1366 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1367 val_t REGB0;
1368 val_t tmp;
1369 static val_t once_value_1; /* Once value */
1370 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1371 fra.me.file = LOCATE_native_interface___ni_metamodel;
1372 fra.me.line = 190;
1373 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___impl_csignature;
1374 fra.me.has_broke = 0;
1375 fra.me.REG_size = 3;
1376 fra.me.nitni_local_ref_head = NULL;
1377 fra.me.REG[0] = NIT_NULL;
1378 fra.me.REG[1] = NIT_NULL;
1379 fra.me.REG[2] = NIT_NULL;
1380 fra.me.REG[0] = p0;
1381 /* native_interface/ni_metamodel.nit:192 */
1382 if (!once_value_1) {
1383 fra.me.REG[1] = BOX_NativeString("___impl");
1384 REGB0 = TAG_Int(7);
1385 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
1386 once_value_1 = fra.me.REG[1];
1387 register_static_object(&once_value_1);
1388 } else fra.me.REG[1] = once_value_1;
1389 fra.me.REG[1] = fra.me.REG[1];
1390 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1391 fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMMethod___csignature_with_suffix(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1392 goto label2;
1393 label2: while(0);
1394 stack_frame_head = fra.me.prev;
1395 return fra.me.REG[2];
1396 }
1397 val_t native_interface___ni_metamodel___MMMethod___cparams(val_t p0){
1398 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1399 val_t REGB0;
1400 val_t REGB1;
1401 val_t REGB2;
1402 val_t tmp;
1403 static val_t once_value_1; /* Once value */
1404 static val_t once_value_2; /* Once value */
1405 static val_t once_value_3; /* Once value */
1406 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1407 fra.me.file = LOCATE_native_interface___ni_metamodel;
1408 fra.me.line = 195;
1409 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___cparams;
1410 fra.me.has_broke = 0;
1411 fra.me.REG_size = 6;
1412 fra.me.nitni_local_ref_head = NULL;
1413 fra.me.REG[0] = NIT_NULL;
1414 fra.me.REG[1] = NIT_NULL;
1415 fra.me.REG[2] = NIT_NULL;
1416 fra.me.REG[3] = NIT_NULL;
1417 fra.me.REG[4] = NIT_NULL;
1418 fra.me.REG[5] = NIT_NULL;
1419 fra.me.REG[0] = p0;
1420 /* native_interface/ni_metamodel.nit:198 */
1421 fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
1422 /* native_interface/ni_metamodel.nit:200 */
1423 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
1424 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
1425 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1426 if (UNTAG_Bool(REGB0)) {
1427 /* native_interface/ni_metamodel.nit:201 */
1428 if (!once_value_1) {
1429 fra.me.REG[2] = BOX_NativeString("val_t recv");
1430 REGB0 = TAG_Int(10);
1431 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1432 once_value_1 = fra.me.REG[2];
1433 register_static_object(&once_value_1);
1434 } else fra.me.REG[2] = once_value_1;
1435 fra.me.REG[2] = fra.me.REG[2];
1436 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1437 }
1438 /* native_interface/ni_metamodel.nit:204 */
1439 fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
1440 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1441 if (UNTAG_Bool(REGB0)) {
1442 nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 204);
1443 }
1444 fra.me.REG[0] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[0])(fra.me.REG[0]);
1445 /* ../lib/standard/collection/array.nit:269 */
1446 REGB0 = TAG_Int(0);
1447 /* ../lib/standard/collection/array.nit:270 */
1448 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1449 if (UNTAG_Bool(REGB1)) {
1450 } else {
1451 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1452 }
1453 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1454 /* ../lib/standard/collection/array.nit:271 */
1455 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
1456 /* ../lib/standard/collection/array.nit:272 */
1457 while(1) {
1458 /* ../lib/standard/collection/array.nit:24 */
1459 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1460 if (UNTAG_Bool(REGB1)) {
1461 } else {
1462 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1463 }
1464 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1465 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1466 if (UNTAG_Bool(REGB2)) {
1467 } else {
1468 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1469 }
1470 /* ../lib/standard/kernel.nit:232 */
1471 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1472 /* ../lib/standard/collection/array.nit:272 */
1473 if (UNTAG_Bool(REGB1)) {
1474 /* ../lib/standard/collection/array.nit:273 */
1475 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1476 if (UNTAG_Bool(REGB1)) {
1477 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1478 }
1479 /* ../lib/standard/collection/array.nit:718 */
1480 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
1481 /* native_interface/ni_metamodel.nit:205 */
1482 REGB1 = TAG_Int(3);
1483 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
1484 if (!once_value_2) {
1485 fra.me.REG[5] = BOX_NativeString("val_t ");
1486 REGB1 = TAG_Int(6);
1487 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
1488 once_value_2 = fra.me.REG[5];
1489 register_static_object(&once_value_2);
1490 } else fra.me.REG[5] = once_value_2;
1491 fra.me.REG[5] = fra.me.REG[5];
1492 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1493 fra.me.REG[3] = CALL_metamodel___static_type___MMParam___name(fra.me.REG[3])(fra.me.REG[3]);
1494 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1495 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1496 if (!once_value_3) {
1497 fra.me.REG[3] = BOX_NativeString("");
1498 REGB1 = TAG_Int(0);
1499 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
1500 once_value_3 = fra.me.REG[3];
1501 register_static_object(&once_value_3);
1502 } else fra.me.REG[3] = once_value_3;
1503 fra.me.REG[3] = fra.me.REG[3];
1504 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1505 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1506 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1507 /* ../lib/standard/collection/array.nit:274 */
1508 REGB1 = TAG_Int(1);
1509 /* ../lib/standard/kernel.nit:235 */
1510 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1511 /* ../lib/standard/collection/array.nit:274 */
1512 REGB0 = REGB1;
1513 } else {
1514 /* ../lib/standard/collection/array.nit:272 */
1515 goto label4;
1516 }
1517 }
1518 label4: while(0);
1519 /* native_interface/ni_metamodel.nit:208 */
1520 goto label5;
1521 label5: while(0);
1522 stack_frame_head = fra.me.prev;
1523 return fra.me.REG[1];
1524 }
1525 val_t native_interface___ni_metamodel___MMMethod___out_csignature(val_t p0){
1526 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1527 val_t REGB0;
1528 val_t REGB1;
1529 val_t tmp;
1530 static val_t once_value_1; /* Once value */
1531 static val_t once_value_2; /* Once value */
1532 static val_t once_value_3; /* Once value */
1533 static val_t once_value_4; /* Once value */
1534 static val_t once_value_5; /* Once value */
1535 static val_t once_value_6; /* Once value */
1536 static val_t once_value_7; /* Once value */
1537 static val_t once_value_8; /* Once value */
1538 static val_t once_value_9; /* Once value */
1539 static val_t once_value_10; /* Once value */
1540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1541 fra.me.file = LOCATE_native_interface___ni_metamodel;
1542 fra.me.line = 211;
1543 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMMethod___out_csignature;
1544 fra.me.has_broke = 0;
1545 fra.me.REG_size = 4;
1546 fra.me.nitni_local_ref_head = NULL;
1547 fra.me.REG[0] = NIT_NULL;
1548 fra.me.REG[1] = NIT_NULL;
1549 fra.me.REG[2] = NIT_NULL;
1550 fra.me.REG[3] = NIT_NULL;
1551 fra.me.REG[0] = p0;
1552 /* native_interface/ni_metamodel.nit:213 */
1553 fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
1554 /* native_interface/ni_metamodel.nit:216 */
1555 fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
1556 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1557 if (UNTAG_Bool(REGB0)) {
1558 nit_abort("Reciever is null", NULL, LOCATE_native_interface___ni_metamodel, 216);
1559 }
1560 fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]);
1561 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1562 if (UNTAG_Bool(REGB0)) {
1563 } else {
1564 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1565 if (UNTAG_Bool(REGB1)) {
1566 REGB1 = TAG_Bool(false);
1567 REGB0 = REGB1;
1568 } else {
1569 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1570 REGB0 = REGB1;
1571 }
1572 }
1573 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1574 if (UNTAG_Bool(REGB0)) {
1575 REGB0 = TAG_Bool(true);
1576 } else {
1577 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
1578 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
1579 REGB0 = REGB1;
1580 }
1581 if (UNTAG_Bool(REGB0)) {
1582 /* native_interface/ni_metamodel.nit:217 */
1583 if (!once_value_1) {
1584 fra.me.REG[2] = BOX_NativeString("val_t ");
1585 REGB0 = TAG_Int(6);
1586 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1587 once_value_1 = fra.me.REG[2];
1588 register_static_object(&once_value_1);
1589 } else fra.me.REG[2] = once_value_1;
1590 fra.me.REG[2] = fra.me.REG[2];
1591 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1592 } else {
1593 /* native_interface/ni_metamodel.nit:219 */
1594 if (!once_value_2) {
1595 fra.me.REG[2] = BOX_NativeString("void ");
1596 REGB0 = TAG_Int(5);
1597 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1598 once_value_2 = fra.me.REG[2];
1599 register_static_object(&once_value_2);
1600 } else fra.me.REG[2] = once_value_2;
1601 fra.me.REG[2] = fra.me.REG[2];
1602 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1603 }
1604 /* native_interface/ni_metamodel.nit:223 */
1605 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
1606 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
1607 if (UNTAG_Bool(REGB0)) {
1608 /* native_interface/ni_metamodel.nit:224 */
1609 REGB0 = TAG_Int(5);
1610 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1611 if (!once_value_3) {
1612 fra.me.REG[3] = BOX_NativeString("NEW_");
1613 REGB0 = TAG_Int(4);
1614 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1615 once_value_3 = fra.me.REG[3];
1616 register_static_object(&once_value_3);
1617 } else fra.me.REG[3] = once_value_3;
1618 fra.me.REG[3] = fra.me.REG[3];
1619 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1620 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1621 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1622 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1623 if (!once_value_4) {
1624 fra.me.REG[3] = BOX_NativeString("_");
1625 REGB0 = TAG_Int(1);
1626 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1627 once_value_4 = fra.me.REG[3];
1628 register_static_object(&once_value_4);
1629 } else fra.me.REG[3] = once_value_4;
1630 fra.me.REG[3] = fra.me.REG[3];
1631 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1632 fra.me.REG[3] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
1633 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1634 if (!once_value_5) {
1635 fra.me.REG[3] = BOX_NativeString("");
1636 REGB0 = TAG_Int(0);
1637 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1638 once_value_5 = fra.me.REG[3];
1639 register_static_object(&once_value_5);
1640 } else fra.me.REG[3] = once_value_5;
1641 fra.me.REG[3] = fra.me.REG[3];
1642 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1643 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1644 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1645 } else {
1646 /* native_interface/ni_metamodel.nit:226 */
1647 REGB0 = TAG_Int(3);
1648 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1649 if (!once_value_6) {
1650 fra.me.REG[3] = BOX_NativeString("");
1651 REGB0 = TAG_Int(0);
1652 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1653 once_value_6 = fra.me.REG[3];
1654 register_static_object(&once_value_6);
1655 } else fra.me.REG[3] = once_value_6;
1656 fra.me.REG[3] = fra.me.REG[3];
1657 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1658 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1659 fra.me.REG[3] = CALL_primitive_info___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1660 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1661 if (!once_value_7) {
1662 fra.me.REG[3] = BOX_NativeString("___out");
1663 REGB0 = TAG_Int(6);
1664 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1665 once_value_7 = fra.me.REG[3];
1666 register_static_object(&once_value_7);
1667 } else fra.me.REG[3] = once_value_7;
1668 fra.me.REG[3] = fra.me.REG[3];
1669 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1670 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1671 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1672 }
1673 /* native_interface/ni_metamodel.nit:230 */
1674 REGB0 = TAG_Int(3);
1675 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1676 if (!once_value_8) {
1677 fra.me.REG[3] = BOX_NativeString("( ");
1678 REGB0 = TAG_Int(2);
1679 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1680 once_value_8 = fra.me.REG[3];
1681 register_static_object(&once_value_8);
1682 } else fra.me.REG[3] = once_value_8;
1683 fra.me.REG[3] = fra.me.REG[3];
1684 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1685 fra.me.REG[0] = CALL_native_interface___ni_metamodel___MMMethod___cparams(fra.me.REG[0])(fra.me.REG[0]);
1686 if (!once_value_9) {
1687 fra.me.REG[3] = BOX_NativeString(", ");
1688 REGB0 = TAG_Int(2);
1689 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1690 once_value_9 = fra.me.REG[3];
1691 register_static_object(&once_value_9);
1692 } else fra.me.REG[3] = once_value_9;
1693 fra.me.REG[3] = fra.me.REG[3];
1694 fra.me.REG[3] = CALL_standard___string___Collection___join(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1695 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1696 if (!once_value_10) {
1697 fra.me.REG[3] = BOX_NativeString(" )");
1698 REGB0 = TAG_Int(2);
1699 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1700 once_value_10 = fra.me.REG[3];
1701 register_static_object(&once_value_10);
1702 } else fra.me.REG[3] = once_value_10;
1703 fra.me.REG[3] = fra.me.REG[3];
1704 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1705 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1706 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1707 /* native_interface/ni_metamodel.nit:232 */
1708 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1709 goto label11;
1710 label11: while(0);
1711 stack_frame_head = fra.me.prev;
1712 return fra.me.REG[1];
1713 }
1714 val_t native_interface___ni_metamodel___MMImportedCast___in_name(val_t p0){
1715 struct {struct stack_frame_t me;} fra;
1716 val_t REGB0;
1717 val_t tmp;
1718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1719 fra.me.file = LOCATE_native_interface___ni_metamodel;
1720 fra.me.line = 238;
1721 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___in_name;
1722 fra.me.has_broke = 0;
1723 fra.me.REG_size = 1;
1724 fra.me.nitni_local_ref_head = NULL;
1725 fra.me.REG[0] = NIT_NULL;
1726 fra.me.REG[0] = p0;
1727 /* native_interface/ni_metamodel.nit:238 */
1728 REGB0 = TAG_Bool(ATTR_native_interface___ni_metamodel___MMImportedCast_____atin_name(fra.me.REG[0])!=NIT_NULL);
1729 if (UNTAG_Bool(REGB0)) {
1730 } else {
1731 nit_abort("Uninitialized attribute %s", "@in_name", LOCATE_native_interface___ni_metamodel, 238);
1732 }
1733 fra.me.REG[0] = ATTR_native_interface___ni_metamodel___MMImportedCast_____atin_name(fra.me.REG[0]);
1734 stack_frame_head = fra.me.prev;
1735 return fra.me.REG[0];
1736 }
1737 void native_interface___ni_metamodel___MMImportedCast___in_name__eq(val_t p0, val_t p1){
1738 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1739 val_t tmp;
1740 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1741 fra.me.file = LOCATE_native_interface___ni_metamodel;
1742 fra.me.line = 238;
1743 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___in_name__eq;
1744 fra.me.has_broke = 0;
1745 fra.me.REG_size = 2;
1746 fra.me.nitni_local_ref_head = NULL;
1747 fra.me.REG[0] = NIT_NULL;
1748 fra.me.REG[1] = NIT_NULL;
1749 fra.me.REG[0] = p0;
1750 fra.me.REG[1] = p1;
1751 /* native_interface/ni_metamodel.nit:238 */
1752 ATTR_native_interface___ni_metamodel___MMImportedCast_____atin_name(fra.me.REG[0]) = fra.me.REG[1];
1753 stack_frame_head = fra.me.prev;
1754 return;
1755 }
1756 val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name(val_t p0){
1757 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1758 val_t REGB0;
1759 val_t tmp;
1760 static val_t once_value_1; /* Once value */
1761 static val_t once_value_2; /* Once value */
1762 static val_t once_value_4; /* Once value */
1763 static val_t once_value_5; /* Once value */
1764 static val_t once_value_6; /* Once value */
1765 static val_t once_value_7; /* Once value */
1766 static val_t once_value_8; /* Once value */
1767 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1768 fra.me.file = LOCATE_native_interface___ni_metamodel;
1769 fra.me.line = 240;
1770 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name;
1771 fra.me.has_broke = 0;
1772 fra.me.REG_size = 4;
1773 fra.me.nitni_local_ref_head = NULL;
1774 fra.me.REG[0] = NIT_NULL;
1775 fra.me.REG[1] = NIT_NULL;
1776 fra.me.REG[2] = NIT_NULL;
1777 fra.me.REG[3] = NIT_NULL;
1778 fra.me.REG[0] = p0;
1779 /* native_interface/ni_metamodel.nit:241 */
1780 REGB0 = CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra.me.REG[0])(fra.me.REG[0]);
1781 if (UNTAG_Bool(REGB0)) {
1782 /* native_interface/ni_metamodel.nit:242 */
1783 REGB0 = CALL_metamodel___static_type___MMImportedCast___is_not_null_to_nullable(fra.me.REG[0])(fra.me.REG[0]);
1784 if (UNTAG_Bool(REGB0)) {
1785 /* native_interface/ni_metamodel.nit:244 */
1786 REGB0 = TAG_Int(3);
1787 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1788 if (!once_value_1) {
1789 fra.me.REG[2] = BOX_NativeString("");
1790 REGB0 = TAG_Int(0);
1791 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1792 once_value_1 = fra.me.REG[2];
1793 register_static_object(&once_value_1);
1794 } else fra.me.REG[2] = once_value_1;
1795 fra.me.REG[2] = fra.me.REG[2];
1796 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1797 fra.me.REG[2] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
1798 fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMType___mangled_name(fra.me.REG[2])(fra.me.REG[2]);
1799 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1800 if (!once_value_2) {
1801 fra.me.REG[2] = BOX_NativeString("_as_nullable");
1802 REGB0 = TAG_Int(12);
1803 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1804 once_value_2 = fra.me.REG[2];
1805 register_static_object(&once_value_2);
1806 } else fra.me.REG[2] = once_value_2;
1807 fra.me.REG[2] = fra.me.REG[2];
1808 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1809 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1810 goto label3;
1811 } else {
1812 /* native_interface/ni_metamodel.nit:245 */
1813 REGB0 = CALL_metamodel___static_type___MMImportedCast___is_nullable_to_not_null(fra.me.REG[0])(fra.me.REG[0]);
1814 if (UNTAG_Bool(REGB0)) {
1815 /* native_interface/ni_metamodel.nit:247 */
1816 REGB0 = TAG_Int(3);
1817 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1818 if (!once_value_4) {
1819 fra.me.REG[3] = BOX_NativeString("");
1820 REGB0 = TAG_Int(0);
1821 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1822 once_value_4 = fra.me.REG[3];
1823 register_static_object(&once_value_4);
1824 } else fra.me.REG[3] = once_value_4;
1825 fra.me.REG[3] = fra.me.REG[3];
1826 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1827 fra.me.REG[3] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
1828 fra.me.REG[3] = CALL_native_interface___ni_metamodel___MMType___mangled_name(fra.me.REG[3])(fra.me.REG[3]);
1829 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1830 if (!once_value_5) {
1831 fra.me.REG[3] = BOX_NativeString("_as_not_null");
1832 REGB0 = TAG_Int(12);
1833 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1834 once_value_5 = fra.me.REG[3];
1835 register_static_object(&once_value_5);
1836 } else fra.me.REG[3] = once_value_5;
1837 fra.me.REG[3] = fra.me.REG[3];
1838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1839 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1840 fra.me.REG[1] = fra.me.REG[2];
1841 goto label3;
1842 } else {
1843 /* native_interface/ni_metamodel.nit:249 */
1844 nit_abort("Aborted", NULL, LOCATE_native_interface___ni_metamodel, 249);
1845 }
1846 }
1847 } else {
1848 /* native_interface/ni_metamodel.nit:253 */
1849 REGB0 = TAG_Int(5);
1850 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1851 if (!once_value_6) {
1852 fra.me.REG[3] = BOX_NativeString("");
1853 REGB0 = TAG_Int(0);
1854 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1855 once_value_6 = fra.me.REG[3];
1856 register_static_object(&once_value_6);
1857 } else fra.me.REG[3] = once_value_6;
1858 fra.me.REG[3] = fra.me.REG[3];
1859 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1860 fra.me.REG[3] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
1861 fra.me.REG[3] = CALL_native_interface___ni_metamodel___MMType___mangled_name(fra.me.REG[3])(fra.me.REG[3]);
1862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1863 if (!once_value_7) {
1864 fra.me.REG[3] = BOX_NativeString("_as_");
1865 REGB0 = TAG_Int(4);
1866 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1867 once_value_7 = fra.me.REG[3];
1868 register_static_object(&once_value_7);
1869 } else fra.me.REG[3] = once_value_7;
1870 fra.me.REG[3] = fra.me.REG[3];
1871 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1872 fra.me.REG[0] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
1873 fra.me.REG[0] = CALL_native_interface___ni_metamodel___MMType___mangled_name(fra.me.REG[0])(fra.me.REG[0]);
1874 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1875 if (!once_value_8) {
1876 fra.me.REG[0] = BOX_NativeString("");
1877 REGB0 = TAG_Int(0);
1878 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1879 once_value_8 = fra.me.REG[0];
1880 register_static_object(&once_value_8);
1881 } else fra.me.REG[0] = once_value_8;
1882 fra.me.REG[0] = fra.me.REG[0];
1883 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1884 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1885 fra.me.REG[1] = fra.me.REG[2];
1886 goto label3;
1887 }
1888 label3: while(0);
1889 stack_frame_head = fra.me.prev;
1890 return fra.me.REG[1];
1891 }
1892 val_t native_interface___ni_metamodel___MMImportedCast___as_local_cname(val_t p0, val_t p1){
1893 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1894 val_t REGB0;
1895 val_t tmp;
1896 static val_t once_value_1; /* Once value */
1897 static val_t once_value_2; /* Once value */
1898 static val_t once_value_3; /* Once value */
1899 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1900 fra.me.file = LOCATE_native_interface___ni_metamodel;
1901 fra.me.line = 257;
1902 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___as_local_cname;
1903 fra.me.has_broke = 0;
1904 fra.me.REG_size = 4;
1905 fra.me.nitni_local_ref_head = NULL;
1906 fra.me.REG[0] = NIT_NULL;
1907 fra.me.REG[1] = NIT_NULL;
1908 fra.me.REG[2] = NIT_NULL;
1909 fra.me.REG[3] = NIT_NULL;
1910 fra.me.REG[0] = p0;
1911 fra.me.REG[1] = p1;
1912 /* native_interface/ni_metamodel.nit:258 */
1913 REGB0 = TAG_Int(5);
1914 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1915 if (!once_value_1) {
1916 fra.me.REG[3] = BOX_NativeString("");
1917 REGB0 = TAG_Int(0);
1918 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1919 once_value_1 = fra.me.REG[3];
1920 register_static_object(&once_value_1);
1921 } else fra.me.REG[3] = once_value_1;
1922 fra.me.REG[3] = fra.me.REG[3];
1923 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1924 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1925 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1926 if (!once_value_2) {
1927 fra.me.REG[1] = BOX_NativeString("_");
1928 REGB0 = TAG_Int(1);
1929 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
1930 once_value_2 = fra.me.REG[1];
1931 register_static_object(&once_value_2);
1932 } else fra.me.REG[1] = once_value_2;
1933 fra.me.REG[1] = fra.me.REG[1];
1934 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1935 fra.me.REG[0] = CALL_native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name(fra.me.REG[0])(fra.me.REG[0]);
1936 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1937 if (!once_value_3) {
1938 fra.me.REG[0] = BOX_NativeString("");
1939 REGB0 = TAG_Int(0);
1940 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1941 once_value_3 = fra.me.REG[0];
1942 register_static_object(&once_value_3);
1943 } else fra.me.REG[0] = once_value_3;
1944 fra.me.REG[0] = fra.me.REG[0];
1945 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1946 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1947 goto label4;
1948 label4: while(0);
1949 stack_frame_head = fra.me.prev;
1950 return fra.me.REG[2];
1951 }
1952 val_t native_interface___ni_metamodel___MMImportedCast___as_local_csignature(val_t p0, val_t p1){
1953 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1954 val_t REGB0;
1955 val_t tmp;
1956 static val_t once_value_1; /* Once value */
1957 static val_t once_value_2; /* Once value */
1958 static val_t once_value_3; /* Once value */
1959 static val_t once_value_4; /* Once value */
1960 static val_t once_value_5; /* Once value */
1961 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1962 fra.me.file = LOCATE_native_interface___ni_metamodel;
1963 fra.me.line = 261;
1964 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___as_local_csignature;
1965 fra.me.has_broke = 0;
1966 fra.me.REG_size = 4;
1967 fra.me.nitni_local_ref_head = NULL;
1968 fra.me.REG[0] = NIT_NULL;
1969 fra.me.REG[1] = NIT_NULL;
1970 fra.me.REG[2] = NIT_NULL;
1971 fra.me.REG[3] = NIT_NULL;
1972 fra.me.REG[0] = p0;
1973 fra.me.REG[1] = p1;
1974 /* native_interface/ni_metamodel.nit:263 */
1975 REGB0 = TAG_Int(9);
1976 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1977 if (!once_value_1) {
1978 fra.me.REG[3] = BOX_NativeString("");
1979 REGB0 = TAG_Int(0);
1980 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1981 once_value_1 = fra.me.REG[3];
1982 register_static_object(&once_value_1);
1983 } else fra.me.REG[3] = once_value_1;
1984 fra.me.REG[3] = fra.me.REG[3];
1985 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1986 fra.me.REG[3] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
1987 fra.me.REG[3] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra.me.REG[3])(fra.me.REG[3]);
1988 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1989 if (!once_value_2) {
1990 fra.me.REG[3] = BOX_NativeString(" ");
1991 REGB0 = TAG_Int(1);
1992 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
1993 once_value_2 = fra.me.REG[3];
1994 register_static_object(&once_value_2);
1995 } else fra.me.REG[3] = once_value_2;
1996 fra.me.REG[3] = fra.me.REG[3];
1997 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1998 fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMImportedCast___as_local_cname(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1999 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2000 if (!once_value_3) {
2001 fra.me.REG[1] = BOX_NativeString("( ");
2002 REGB0 = TAG_Int(2);
2003 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2004 once_value_3 = fra.me.REG[1];
2005 register_static_object(&once_value_3);
2006 } else fra.me.REG[1] = once_value_3;
2007 fra.me.REG[1] = fra.me.REG[1];
2008 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2009 fra.me.REG[1] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
2010 fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra.me.REG[1])(fra.me.REG[1]);
2011 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2012 if (!once_value_4) {
2013 fra.me.REG[1] = BOX_NativeString(" ");
2014 REGB0 = TAG_Int(1);
2015 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2016 once_value_4 = fra.me.REG[1];
2017 register_static_object(&once_value_4);
2018 } else fra.me.REG[1] = once_value_4;
2019 fra.me.REG[1] = fra.me.REG[1];
2020 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2021 fra.me.REG[0] = CALL_native_interface___ni_metamodel___MMImportedCast___in_name(fra.me.REG[0])(fra.me.REG[0]);
2022 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2023 if (!once_value_5) {
2024 fra.me.REG[0] = BOX_NativeString(" )");
2025 REGB0 = TAG_Int(2);
2026 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2027 once_value_5 = fra.me.REG[0];
2028 register_static_object(&once_value_5);
2029 } else fra.me.REG[0] = once_value_5;
2030 fra.me.REG[0] = fra.me.REG[0];
2031 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2032 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2033 goto label6;
2034 label6: while(0);
2035 stack_frame_head = fra.me.prev;
2036 return fra.me.REG[2];
2037 }
2038 val_t native_interface___ni_metamodel___MMImportedCast___as_friendly_csignature(val_t p0){
2039 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2040 val_t REGB0;
2041 val_t tmp;
2042 static val_t once_value_1; /* Once value */
2043 static val_t once_value_2; /* Once value */
2044 static val_t once_value_3; /* Once value */
2045 static val_t once_value_4; /* Once value */
2046 static val_t once_value_5; /* Once value */
2047 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2048 fra.me.file = LOCATE_native_interface___ni_metamodel;
2049 fra.me.line = 266;
2050 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___as_friendly_csignature;
2051 fra.me.has_broke = 0;
2052 fra.me.REG_size = 3;
2053 fra.me.nitni_local_ref_head = NULL;
2054 fra.me.REG[0] = NIT_NULL;
2055 fra.me.REG[1] = NIT_NULL;
2056 fra.me.REG[2] = NIT_NULL;
2057 fra.me.REG[0] = p0;
2058 /* native_interface/ni_metamodel.nit:268 */
2059 REGB0 = TAG_Int(9);
2060 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2061 if (!once_value_1) {
2062 fra.me.REG[2] = BOX_NativeString("");
2063 REGB0 = TAG_Int(0);
2064 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2065 once_value_1 = fra.me.REG[2];
2066 register_static_object(&once_value_1);
2067 } else fra.me.REG[2] = once_value_1;
2068 fra.me.REG[2] = fra.me.REG[2];
2069 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2070 fra.me.REG[2] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
2071 fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra.me.REG[2])(fra.me.REG[2]);
2072 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2073 if (!once_value_2) {
2074 fra.me.REG[2] = BOX_NativeString(" ");
2075 REGB0 = TAG_Int(1);
2076 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2077 once_value_2 = fra.me.REG[2];
2078 register_static_object(&once_value_2);
2079 } else fra.me.REG[2] = once_value_2;
2080 fra.me.REG[2] = fra.me.REG[2];
2081 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2082 fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMImportedCast___as_friendly_extern_name(fra.me.REG[0])(fra.me.REG[0]);
2083 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2084 if (!once_value_3) {
2085 fra.me.REG[2] = BOX_NativeString("( ");
2086 REGB0 = TAG_Int(2);
2087 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2088 once_value_3 = fra.me.REG[2];
2089 register_static_object(&once_value_3);
2090 } else fra.me.REG[2] = once_value_3;
2091 fra.me.REG[2] = fra.me.REG[2];
2092 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2093 fra.me.REG[2] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
2094 fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra.me.REG[2])(fra.me.REG[2]);
2095 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2096 if (!once_value_4) {
2097 fra.me.REG[2] = BOX_NativeString(" ");
2098 REGB0 = TAG_Int(1);
2099 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2100 once_value_4 = fra.me.REG[2];
2101 register_static_object(&once_value_4);
2102 } else fra.me.REG[2] = once_value_4;
2103 fra.me.REG[2] = fra.me.REG[2];
2104 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2105 fra.me.REG[0] = CALL_native_interface___ni_metamodel___MMImportedCast___in_name(fra.me.REG[0])(fra.me.REG[0]);
2106 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2107 if (!once_value_5) {
2108 fra.me.REG[0] = BOX_NativeString(" )");
2109 REGB0 = TAG_Int(2);
2110 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2111 once_value_5 = fra.me.REG[0];
2112 register_static_object(&once_value_5);
2113 } else fra.me.REG[0] = once_value_5;
2114 fra.me.REG[0] = fra.me.REG[0];
2115 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2116 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2117 goto label6;
2118 label6: while(0);
2119 stack_frame_head = fra.me.prev;
2120 return fra.me.REG[1];
2121 }
2122 val_t native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_name(val_t p0){
2123 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2124 val_t REGB0;
2125 val_t tmp;
2126 static val_t once_value_1; /* Once value */
2127 static val_t once_value_2; /* Once value */
2128 static val_t once_value_4; /* Once value */
2129 static val_t once_value_5; /* Once value */
2130 static val_t once_value_6; /* Once value */
2131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2132 fra.me.file = LOCATE_native_interface___ni_metamodel;
2133 fra.me.line = 271;
2134 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_name;
2135 fra.me.has_broke = 0;
2136 fra.me.REG_size = 4;
2137 fra.me.nitni_local_ref_head = NULL;
2138 fra.me.REG[0] = NIT_NULL;
2139 fra.me.REG[1] = NIT_NULL;
2140 fra.me.REG[2] = NIT_NULL;
2141 fra.me.REG[3] = NIT_NULL;
2142 fra.me.REG[0] = p0;
2143 /* native_interface/ni_metamodel.nit:272 */
2144 REGB0 = CALL_metamodel___static_type___MMImportedCast___is_about_nullable_only(fra.me.REG[0])(fra.me.REG[0]);
2145 if (UNTAG_Bool(REGB0)) {
2146 /* native_interface/ni_metamodel.nit:273 */
2147 REGB0 = CALL_metamodel___static_type___MMImportedCast___is_not_null_to_nullable(fra.me.REG[0])(fra.me.REG[0]);
2148 if (UNTAG_Bool(REGB0)) {
2149 /* native_interface/ni_metamodel.nit:274 */
2150 nit_abort("Aborted", NULL, LOCATE_native_interface___ni_metamodel, 274);
2151 } else {
2152 /* native_interface/ni_metamodel.nit:275 */
2153 REGB0 = CALL_metamodel___static_type___MMImportedCast___is_nullable_to_not_null(fra.me.REG[0])(fra.me.REG[0]);
2154 if (UNTAG_Bool(REGB0)) {
2155 /* native_interface/ni_metamodel.nit:278 */
2156 REGB0 = TAG_Int(3);
2157 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2158 if (!once_value_1) {
2159 fra.me.REG[2] = BOX_NativeString("");
2160 REGB0 = TAG_Int(0);
2161 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2162 once_value_1 = fra.me.REG[2];
2163 register_static_object(&once_value_1);
2164 } else fra.me.REG[2] = once_value_1;
2165 fra.me.REG[2] = fra.me.REG[2];
2166 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2167 fra.me.REG[2] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
2168 fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMType___mangled_name(fra.me.REG[2])(fra.me.REG[2]);
2169 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2170 if (!once_value_2) {
2171 fra.me.REG[2] = BOX_NativeString("_is_null");
2172 REGB0 = TAG_Int(8);
2173 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2174 once_value_2 = fra.me.REG[2];
2175 register_static_object(&once_value_2);
2176 } else fra.me.REG[2] = once_value_2;
2177 fra.me.REG[2] = fra.me.REG[2];
2178 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2179 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2180 goto label3;
2181 } else {
2182 /* native_interface/ni_metamodel.nit:280 */
2183 nit_abort("Aborted", NULL, LOCATE_native_interface___ni_metamodel, 280);
2184 }
2185 }
2186 } else {
2187 /* native_interface/ni_metamodel.nit:284 */
2188 REGB0 = TAG_Int(5);
2189 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2190 if (!once_value_4) {
2191 fra.me.REG[3] = BOX_NativeString("");
2192 REGB0 = TAG_Int(0);
2193 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2194 once_value_4 = fra.me.REG[3];
2195 register_static_object(&once_value_4);
2196 } else fra.me.REG[3] = once_value_4;
2197 fra.me.REG[3] = fra.me.REG[3];
2198 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2199 fra.me.REG[3] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
2200 fra.me.REG[3] = CALL_native_interface___ni_metamodel___MMType___mangled_name(fra.me.REG[3])(fra.me.REG[3]);
2201 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2202 if (!once_value_5) {
2203 fra.me.REG[3] = BOX_NativeString("_is_a_");
2204 REGB0 = TAG_Int(6);
2205 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2206 once_value_5 = fra.me.REG[3];
2207 register_static_object(&once_value_5);
2208 } else fra.me.REG[3] = once_value_5;
2209 fra.me.REG[3] = fra.me.REG[3];
2210 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2211 fra.me.REG[0] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
2212 fra.me.REG[0] = CALL_native_interface___ni_metamodel___MMType___mangled_name(fra.me.REG[0])(fra.me.REG[0]);
2213 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2214 if (!once_value_6) {
2215 fra.me.REG[0] = BOX_NativeString("");
2216 REGB0 = TAG_Int(0);
2217 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2218 once_value_6 = fra.me.REG[0];
2219 register_static_object(&once_value_6);
2220 } else fra.me.REG[0] = once_value_6;
2221 fra.me.REG[0] = fra.me.REG[0];
2222 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2223 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2224 fra.me.REG[1] = fra.me.REG[2];
2225 goto label3;
2226 }
2227 label3: while(0);
2228 stack_frame_head = fra.me.prev;
2229 return fra.me.REG[1];
2230 }
2231 val_t native_interface___ni_metamodel___MMImportedCast___is_a_local_cname(val_t p0, val_t p1){
2232 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2233 val_t REGB0;
2234 val_t tmp;
2235 static val_t once_value_1; /* Once value */
2236 static val_t once_value_2; /* Once value */
2237 static val_t once_value_3; /* Once value */
2238 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2239 fra.me.file = LOCATE_native_interface___ni_metamodel;
2240 fra.me.line = 288;
2241 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___is_a_local_cname;
2242 fra.me.has_broke = 0;
2243 fra.me.REG_size = 4;
2244 fra.me.nitni_local_ref_head = NULL;
2245 fra.me.REG[0] = NIT_NULL;
2246 fra.me.REG[1] = NIT_NULL;
2247 fra.me.REG[2] = NIT_NULL;
2248 fra.me.REG[3] = NIT_NULL;
2249 fra.me.REG[0] = p0;
2250 fra.me.REG[1] = p1;
2251 /* native_interface/ni_metamodel.nit:289 */
2252 REGB0 = TAG_Int(5);
2253 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2254 if (!once_value_1) {
2255 fra.me.REG[3] = BOX_NativeString("");
2256 REGB0 = TAG_Int(0);
2257 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2258 once_value_1 = fra.me.REG[3];
2259 register_static_object(&once_value_1);
2260 } else fra.me.REG[3] = once_value_1;
2261 fra.me.REG[3] = fra.me.REG[3];
2262 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2263 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2265 if (!once_value_2) {
2266 fra.me.REG[1] = BOX_NativeString("_");
2267 REGB0 = TAG_Int(1);
2268 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2269 once_value_2 = fra.me.REG[1];
2270 register_static_object(&once_value_2);
2271 } else fra.me.REG[1] = once_value_2;
2272 fra.me.REG[1] = fra.me.REG[1];
2273 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2274 fra.me.REG[0] = CALL_native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_name(fra.me.REG[0])(fra.me.REG[0]);
2275 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2276 if (!once_value_3) {
2277 fra.me.REG[0] = BOX_NativeString("");
2278 REGB0 = TAG_Int(0);
2279 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2280 once_value_3 = fra.me.REG[0];
2281 register_static_object(&once_value_3);
2282 } else fra.me.REG[0] = once_value_3;
2283 fra.me.REG[0] = fra.me.REG[0];
2284 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2285 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2286 goto label4;
2287 label4: while(0);
2288 stack_frame_head = fra.me.prev;
2289 return fra.me.REG[2];
2290 }
2291 val_t native_interface___ni_metamodel___MMImportedCast___is_a_local_csignature(val_t p0, val_t p1){
2292 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2293 val_t REGB0;
2294 val_t tmp;
2295 static val_t once_value_1; /* Once value */
2296 static val_t once_value_2; /* Once value */
2297 static val_t once_value_3; /* Once value */
2298 static val_t once_value_4; /* Once value */
2299 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2300 fra.me.file = LOCATE_native_interface___ni_metamodel;
2301 fra.me.line = 292;
2302 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___is_a_local_csignature;
2303 fra.me.has_broke = 0;
2304 fra.me.REG_size = 4;
2305 fra.me.nitni_local_ref_head = NULL;
2306 fra.me.REG[0] = NIT_NULL;
2307 fra.me.REG[1] = NIT_NULL;
2308 fra.me.REG[2] = NIT_NULL;
2309 fra.me.REG[3] = NIT_NULL;
2310 fra.me.REG[0] = p0;
2311 fra.me.REG[1] = p1;
2312 /* native_interface/ni_metamodel.nit:296 */
2313 REGB0 = TAG_Int(7);
2314 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2315 if (!once_value_1) {
2316 fra.me.REG[3] = BOX_NativeString("int ");
2317 REGB0 = TAG_Int(4);
2318 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
2319 once_value_1 = fra.me.REG[3];
2320 register_static_object(&once_value_1);
2321 } else fra.me.REG[3] = once_value_1;
2322 fra.me.REG[3] = fra.me.REG[3];
2323 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2324 fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMImportedCast___is_a_local_cname(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2325 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2326 if (!once_value_2) {
2327 fra.me.REG[1] = BOX_NativeString("( ");
2328 REGB0 = TAG_Int(2);
2329 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2330 once_value_2 = fra.me.REG[1];
2331 register_static_object(&once_value_2);
2332 } else fra.me.REG[1] = once_value_2;
2333 fra.me.REG[1] = fra.me.REG[1];
2334 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2335 fra.me.REG[1] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
2336 fra.me.REG[1] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra.me.REG[1])(fra.me.REG[1]);
2337 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2338 if (!once_value_3) {
2339 fra.me.REG[1] = BOX_NativeString(" ");
2340 REGB0 = TAG_Int(1);
2341 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2342 once_value_3 = fra.me.REG[1];
2343 register_static_object(&once_value_3);
2344 } else fra.me.REG[1] = once_value_3;
2345 fra.me.REG[1] = fra.me.REG[1];
2346 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2347 fra.me.REG[0] = CALL_native_interface___ni_metamodel___MMImportedCast___in_name(fra.me.REG[0])(fra.me.REG[0]);
2348 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2349 if (!once_value_4) {
2350 fra.me.REG[0] = BOX_NativeString(" )");
2351 REGB0 = TAG_Int(2);
2352 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2353 once_value_4 = fra.me.REG[0];
2354 register_static_object(&once_value_4);
2355 } else fra.me.REG[0] = once_value_4;
2356 fra.me.REG[0] = fra.me.REG[0];
2357 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2358 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2359 goto label5;
2360 label5: while(0);
2361 stack_frame_head = fra.me.prev;
2362 return fra.me.REG[2];
2363 }
2364 val_t native_interface___ni_metamodel___MMImportedCast___is_a_friendly_csignature(val_t p0){
2365 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2366 val_t REGB0;
2367 val_t tmp;
2368 static val_t once_value_1; /* Once value */
2369 static val_t once_value_2; /* Once value */
2370 static val_t once_value_3; /* Once value */
2371 static val_t once_value_4; /* Once value */
2372 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2373 fra.me.file = LOCATE_native_interface___ni_metamodel;
2374 fra.me.line = 299;
2375 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___is_a_friendly_csignature;
2376 fra.me.has_broke = 0;
2377 fra.me.REG_size = 3;
2378 fra.me.nitni_local_ref_head = NULL;
2379 fra.me.REG[0] = NIT_NULL;
2380 fra.me.REG[1] = NIT_NULL;
2381 fra.me.REG[2] = NIT_NULL;
2382 fra.me.REG[0] = p0;
2383 /* native_interface/ni_metamodel.nit:301 */
2384 REGB0 = TAG_Int(7);
2385 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2386 if (!once_value_1) {
2387 fra.me.REG[2] = BOX_NativeString("int ");
2388 REGB0 = TAG_Int(4);
2389 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2390 once_value_1 = fra.me.REG[2];
2391 register_static_object(&once_value_1);
2392 } else fra.me.REG[2] = once_value_1;
2393 fra.me.REG[2] = fra.me.REG[2];
2394 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2395 fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMImportedCast___is_a_friendly_extern_name(fra.me.REG[0])(fra.me.REG[0]);
2396 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2397 if (!once_value_2) {
2398 fra.me.REG[2] = BOX_NativeString("( ");
2399 REGB0 = TAG_Int(2);
2400 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2401 once_value_2 = fra.me.REG[2];
2402 register_static_object(&once_value_2);
2403 } else fra.me.REG[2] = once_value_2;
2404 fra.me.REG[2] = fra.me.REG[2];
2405 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2406 fra.me.REG[2] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
2407 fra.me.REG[2] = CALL_native_interface___ni_metamodel___MMType___friendly_extern_name(fra.me.REG[2])(fra.me.REG[2]);
2408 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2409 if (!once_value_3) {
2410 fra.me.REG[2] = BOX_NativeString(" ");
2411 REGB0 = TAG_Int(1);
2412 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2413 once_value_3 = fra.me.REG[2];
2414 register_static_object(&once_value_3);
2415 } else fra.me.REG[2] = once_value_3;
2416 fra.me.REG[2] = fra.me.REG[2];
2417 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2418 fra.me.REG[0] = CALL_native_interface___ni_metamodel___MMImportedCast___in_name(fra.me.REG[0])(fra.me.REG[0]);
2419 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2420 if (!once_value_4) {
2421 fra.me.REG[0] = BOX_NativeString(" )");
2422 REGB0 = TAG_Int(2);
2423 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2424 once_value_4 = fra.me.REG[0];
2425 register_static_object(&once_value_4);
2426 } else fra.me.REG[0] = once_value_4;
2427 fra.me.REG[0] = fra.me.REG[0];
2428 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2429 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2430 goto label5;
2431 label5: while(0);
2432 stack_frame_head = fra.me.prev;
2433 return fra.me.REG[1];
2434 }
2435 val_t native_interface___ni_metamodel___MMImportedCast___hash(val_t p0){
2436 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2437 val_t REGB0;
2438 val_t REGB1;
2439 val_t tmp;
2440 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2441 fra.me.file = LOCATE_native_interface___ni_metamodel;
2442 fra.me.line = 304;
2443 fra.me.meth = LOCATE_native_interface___ni_metamodel___MMImportedCast___hash;
2444 fra.me.has_broke = 0;
2445 fra.me.REG_size = 2;
2446 fra.me.nitni_local_ref_head = NULL;
2447 fra.me.REG[0] = NIT_NULL;
2448 fra.me.REG[1] = NIT_NULL;
2449 fra.me.REG[0] = p0;
2450 /* native_interface/ni_metamodel.nit:306 */
2451 fra.me.REG[1] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
2452 REGB0 = CALL_standard___hash___Object___hash(fra.me.REG[1])(fra.me.REG[1]);
2453 fra.me.REG[0] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
2454 REGB1 = CALL_standard___hash___Object___hash(fra.me.REG[0])(fra.me.REG[0]);
2455 /* ../lib/standard/kernel.nit:235 */
2456 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
2457 /* native_interface/ni_metamodel.nit:306 */
2458 goto label1;
2459 label1: while(0);
2460 stack_frame_head = fra.me.prev;
2461 return REGB1;
2462 }