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