lib/standard/ropes: Concat nodes cannot be constructed without children anymore.
[nit.git] / c_src / nitni_callbacks.sep.1.c
1 #include "nitni_callbacks.sep.0.h"
2 /* method nitni_callbacks#ToolContext#verify_nitni_callback_phase for (self: ToolContext): Phase */
3 val* nitni_callbacks__ToolContext__verify_nitni_callback_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_nitni_callbacks__ToolContext___64dverify_nitni_callback_phase].val; /* @verify_nitni_callback_phase on <self:ToolContext> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @verify_nitni_callback_phase");
9 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 26);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method nitni_callbacks#ToolContext#verify_nitni_callback_phase for (self: Object): Phase */
17 val* VIRTUAL_nitni_callbacks__ToolContext__verify_nitni_callback_phase(val* self) {
18 val* var /* : Phase */;
19 val* var1 /* : Phase */;
20 var1 = nitni_callbacks__ToolContext__verify_nitni_callback_phase(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method nitni_callbacks#ToolContext#verify_nitni_callback_phase= for (self: ToolContext, Phase) */
26 void nitni_callbacks__ToolContext__verify_nitni_callback_phase_61d(val* self, val* p0) {
27 self->attrs[COLOR_nitni_callbacks__ToolContext___64dverify_nitni_callback_phase].val = p0; /* @verify_nitni_callback_phase on <self:ToolContext> */
28 RET_LABEL:;
29 }
30 /* method nitni_callbacks#ToolContext#verify_nitni_callback_phase= for (self: Object, Phase) */
31 void VIRTUAL_nitni_callbacks__ToolContext__verify_nitni_callback_phase_61d(val* self, val* p0) {
32 nitni_callbacks__ToolContext__verify_nitni_callback_phase_61d(self, p0);
33 RET_LABEL:;
34 }
35 /* method nitni_callbacks#VerifyNitniCallbacksPhase#process_npropdef for (self: VerifyNitniCallbacksPhase, APropdef) */
36 void nitni_callbacks__VerifyNitniCallbacksPhase__process_npropdef(val* self, val* p0) {
37 val* var_npropdef /* var npropdef: APropdef */;
38 short int var /* : Bool */;
39 int cltype;
40 int idtype;
41 short int var1 /* : Bool */;
42 val* var2 /* : ToolContext */;
43 var_npropdef = p0;
44 /* <var_npropdef:APropdef> isa AExternPropdef */
45 cltype = type_parser_nodes__AExternPropdef.color;
46 idtype = type_parser_nodes__AExternPropdef.id;
47 if(cltype >= var_npropdef->type->table_size) {
48 var = 0;
49 } else {
50 var = var_npropdef->type->type_table[cltype] == idtype;
51 }
52 var1 = !var;
53 if (var1){
54 goto RET_LABEL;
55 } else {
56 }
57 var2 = ((val* (*)(val*))(self->class->vft[COLOR_phase__Phase__toolcontext]))(self) /* toolcontext on <self:VerifyNitniCallbacksPhase>*/;
58 ((void (*)(val*, val*))(var_npropdef->class->vft[COLOR_nitni_callbacks__AExternPropdef__verify_nitni_callbacks]))(var_npropdef, var2) /* verify_nitni_callbacks on <var_npropdef:APropdef(AExternPropdef)>*/;
59 RET_LABEL:;
60 }
61 /* method nitni_callbacks#VerifyNitniCallbacksPhase#process_npropdef for (self: Object, APropdef) */
62 void VIRTUAL_nitni_callbacks__VerifyNitniCallbacksPhase__process_npropdef(val* self, val* p0) {
63 nitni_callbacks__VerifyNitniCallbacksPhase__process_npropdef(self, p0);
64 RET_LABEL:;
65 }
66 /* method nitni_callbacks#ForeignCallbackSet#callbacks for (self: ForeignCallbackSet): Set[MExplicitCall] */
67 val* nitni_callbacks__ForeignCallbackSet__callbacks(val* self) {
68 val* var /* : Set[MExplicitCall] */;
69 val* var1 /* : Set[MExplicitCall] */;
70 var1 = self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dcallbacks].val; /* @callbacks on <self:ForeignCallbackSet> */
71 if (var1 == NULL) {
72 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @callbacks");
73 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 44);
74 show_backtrace(1);
75 }
76 var = var1;
77 RET_LABEL:;
78 return var;
79 }
80 /* method nitni_callbacks#ForeignCallbackSet#callbacks for (self: Object): Set[MExplicitCall] */
81 val* VIRTUAL_nitni_callbacks__ForeignCallbackSet__callbacks(val* self) {
82 val* var /* : Set[MExplicitCall] */;
83 val* var1 /* : Set[MExplicitCall] */;
84 var1 = nitni_callbacks__ForeignCallbackSet__callbacks(self);
85 var = var1;
86 RET_LABEL:;
87 return var;
88 }
89 /* method nitni_callbacks#ForeignCallbackSet#callbacks= for (self: ForeignCallbackSet, Set[MExplicitCall]) */
90 void nitni_callbacks__ForeignCallbackSet__callbacks_61d(val* self, val* p0) {
91 self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dcallbacks].val = p0; /* @callbacks on <self:ForeignCallbackSet> */
92 RET_LABEL:;
93 }
94 /* method nitni_callbacks#ForeignCallbackSet#callbacks= for (self: Object, Set[MExplicitCall]) */
95 void VIRTUAL_nitni_callbacks__ForeignCallbackSet__callbacks_61d(val* self, val* p0) {
96 nitni_callbacks__ForeignCallbackSet__callbacks_61d(self, p0);
97 RET_LABEL:;
98 }
99 /* method nitni_callbacks#ForeignCallbackSet#supers for (self: ForeignCallbackSet): Set[MExplicitSuper] */
100 val* nitni_callbacks__ForeignCallbackSet__supers(val* self) {
101 val* var /* : Set[MExplicitSuper] */;
102 val* var1 /* : Set[MExplicitSuper] */;
103 var1 = self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dsupers].val; /* @supers on <self:ForeignCallbackSet> */
104 if (var1 == NULL) {
105 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @supers");
106 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 47);
107 show_backtrace(1);
108 }
109 var = var1;
110 RET_LABEL:;
111 return var;
112 }
113 /* method nitni_callbacks#ForeignCallbackSet#supers for (self: Object): Set[MExplicitSuper] */
114 val* VIRTUAL_nitni_callbacks__ForeignCallbackSet__supers(val* self) {
115 val* var /* : Set[MExplicitSuper] */;
116 val* var1 /* : Set[MExplicitSuper] */;
117 var1 = nitni_callbacks__ForeignCallbackSet__supers(self);
118 var = var1;
119 RET_LABEL:;
120 return var;
121 }
122 /* method nitni_callbacks#ForeignCallbackSet#supers= for (self: ForeignCallbackSet, Set[MExplicitSuper]) */
123 void nitni_callbacks__ForeignCallbackSet__supers_61d(val* self, val* p0) {
124 self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dsupers].val = p0; /* @supers on <self:ForeignCallbackSet> */
125 RET_LABEL:;
126 }
127 /* method nitni_callbacks#ForeignCallbackSet#supers= for (self: Object, Set[MExplicitSuper]) */
128 void VIRTUAL_nitni_callbacks__ForeignCallbackSet__supers_61d(val* self, val* p0) {
129 nitni_callbacks__ForeignCallbackSet__supers_61d(self, p0);
130 RET_LABEL:;
131 }
132 /* method nitni_callbacks#ForeignCallbackSet#types for (self: ForeignCallbackSet): Set[MType] */
133 val* nitni_callbacks__ForeignCallbackSet__types(val* self) {
134 val* var /* : Set[MType] */;
135 val* var1 /* : Set[MType] */;
136 var1 = self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dtypes].val; /* @types on <self:ForeignCallbackSet> */
137 if (var1 == NULL) {
138 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @types");
139 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 50);
140 show_backtrace(1);
141 }
142 var = var1;
143 RET_LABEL:;
144 return var;
145 }
146 /* method nitni_callbacks#ForeignCallbackSet#types for (self: Object): Set[MType] */
147 val* VIRTUAL_nitni_callbacks__ForeignCallbackSet__types(val* self) {
148 val* var /* : Set[MType] */;
149 val* var1 /* : Set[MType] */;
150 var1 = nitni_callbacks__ForeignCallbackSet__types(self);
151 var = var1;
152 RET_LABEL:;
153 return var;
154 }
155 /* method nitni_callbacks#ForeignCallbackSet#types= for (self: ForeignCallbackSet, Set[MType]) */
156 void nitni_callbacks__ForeignCallbackSet__types_61d(val* self, val* p0) {
157 self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dtypes].val = p0; /* @types on <self:ForeignCallbackSet> */
158 RET_LABEL:;
159 }
160 /* method nitni_callbacks#ForeignCallbackSet#types= for (self: Object, Set[MType]) */
161 void VIRTUAL_nitni_callbacks__ForeignCallbackSet__types_61d(val* self, val* p0) {
162 nitni_callbacks__ForeignCallbackSet__types_61d(self, p0);
163 RET_LABEL:;
164 }
165 /* method nitni_callbacks#ForeignCallbackSet#casts for (self: ForeignCallbackSet): Set[MExplicitCast] */
166 val* nitni_callbacks__ForeignCallbackSet__casts(val* self) {
167 val* var /* : Set[MExplicitCast] */;
168 val* var1 /* : Set[MExplicitCast] */;
169 var1 = self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dcasts].val; /* @casts on <self:ForeignCallbackSet> */
170 if (var1 == NULL) {
171 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @casts");
172 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 53);
173 show_backtrace(1);
174 }
175 var = var1;
176 RET_LABEL:;
177 return var;
178 }
179 /* method nitni_callbacks#ForeignCallbackSet#casts for (self: Object): Set[MExplicitCast] */
180 val* VIRTUAL_nitni_callbacks__ForeignCallbackSet__casts(val* self) {
181 val* var /* : Set[MExplicitCast] */;
182 val* var1 /* : Set[MExplicitCast] */;
183 var1 = nitni_callbacks__ForeignCallbackSet__casts(self);
184 var = var1;
185 RET_LABEL:;
186 return var;
187 }
188 /* method nitni_callbacks#ForeignCallbackSet#casts= for (self: ForeignCallbackSet, Set[MExplicitCast]) */
189 void nitni_callbacks__ForeignCallbackSet__casts_61d(val* self, val* p0) {
190 self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dcasts].val = p0; /* @casts on <self:ForeignCallbackSet> */
191 RET_LABEL:;
192 }
193 /* method nitni_callbacks#ForeignCallbackSet#casts= for (self: Object, Set[MExplicitCast]) */
194 void VIRTUAL_nitni_callbacks__ForeignCallbackSet__casts_61d(val* self, val* p0) {
195 nitni_callbacks__ForeignCallbackSet__casts_61d(self, p0);
196 RET_LABEL:;
197 }
198 /* method nitni_callbacks#ForeignCallbackSet#all_cached for (self: ForeignCallbackSet): nullable Set[NitniCallback] */
199 val* nitni_callbacks__ForeignCallbackSet__all_cached(val* self) {
200 val* var /* : nullable Set[NitniCallback] */;
201 val* var1 /* : nullable Set[NitniCallback] */;
202 var1 = self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dall_cached].val; /* @all_cached on <self:ForeignCallbackSet> */
203 var = var1;
204 RET_LABEL:;
205 return var;
206 }
207 /* method nitni_callbacks#ForeignCallbackSet#all_cached for (self: Object): nullable Set[NitniCallback] */
208 val* VIRTUAL_nitni_callbacks__ForeignCallbackSet__all_cached(val* self) {
209 val* var /* : nullable Set[NitniCallback] */;
210 val* var1 /* : nullable Set[NitniCallback] */;
211 var1 = nitni_callbacks__ForeignCallbackSet__all_cached(self);
212 var = var1;
213 RET_LABEL:;
214 return var;
215 }
216 /* method nitni_callbacks#ForeignCallbackSet#all_cached= for (self: ForeignCallbackSet, nullable Set[NitniCallback]) */
217 void nitni_callbacks__ForeignCallbackSet__all_cached_61d(val* self, val* p0) {
218 self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dall_cached].val = p0; /* @all_cached on <self:ForeignCallbackSet> */
219 RET_LABEL:;
220 }
221 /* method nitni_callbacks#ForeignCallbackSet#all_cached= for (self: Object, nullable Set[NitniCallback]) */
222 void VIRTUAL_nitni_callbacks__ForeignCallbackSet__all_cached_61d(val* self, val* p0) {
223 nitni_callbacks__ForeignCallbackSet__all_cached_61d(self, p0);
224 RET_LABEL:;
225 }
226 /* method nitni_callbacks#ForeignCallbackSet#all for (self: ForeignCallbackSet): Set[NitniCallback] */
227 val* nitni_callbacks__ForeignCallbackSet__all(val* self) {
228 val* var /* : Set[NitniCallback] */;
229 val* var1 /* : nullable Set[NitniCallback] */;
230 val* var_cached /* var cached: nullable Set[NitniCallback] */;
231 val* var2 /* : null */;
232 short int var3 /* : Bool */;
233 val* var4 /* : HashSet[NitniCallback] */;
234 val* var_set /* var set: HashSet[NitniCallback] */;
235 val* var5 /* : Set[MExplicitCall] */;
236 val* var6 /* : Set[MExplicitSuper] */;
237 val* var7 /* : Set[MType] */;
238 val* var8 /* : Set[MExplicitCast] */;
239 var1 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__all_cached]))(self) /* all_cached on <self:ForeignCallbackSet>*/;
240 var_cached = var1;
241 var2 = NULL;
242 if (var_cached == NULL) {
243 var3 = 0; /* is null */
244 } else {
245 var3 = 1; /* arg is null and recv is not */
246 }
247 if (var3){
248 var = var_cached;
249 goto RET_LABEL;
250 } else {
251 }
252 var4 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetnitni_callbacks__NitniCallback);
253 ((void (*)(val*))(var4->class->vft[COLOR_hash_collection__HashSet__init]))(var4) /* init on <var4:HashSet[NitniCallback]>*/;
254 var_set = var4;
255 var5 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__callbacks]))(self) /* callbacks on <self:ForeignCallbackSet>*/;
256 ((void (*)(val*, val*))(var_set->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var_set, var5) /* add_all on <var_set:HashSet[NitniCallback]>*/;
257 var6 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__supers]))(self) /* supers on <self:ForeignCallbackSet>*/;
258 ((void (*)(val*, val*))(var_set->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var_set, var6) /* add_all on <var_set:HashSet[NitniCallback]>*/;
259 var7 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__types]))(self) /* types on <self:ForeignCallbackSet>*/;
260 ((void (*)(val*, val*))(var_set->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var_set, var7) /* add_all on <var_set:HashSet[NitniCallback]>*/;
261 var8 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__casts]))(self) /* casts on <self:ForeignCallbackSet>*/;
262 ((void (*)(val*, val*))(var_set->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var_set, var8) /* add_all on <var_set:HashSet[NitniCallback]>*/;
263 ((void (*)(val*, val*))(self->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__all_cached_61d]))(self, var_set) /* all_cached= on <self:ForeignCallbackSet>*/;
264 var = var_set;
265 goto RET_LABEL;
266 RET_LABEL:;
267 return var;
268 }
269 /* method nitni_callbacks#ForeignCallbackSet#all for (self: Object): Set[NitniCallback] */
270 val* VIRTUAL_nitni_callbacks__ForeignCallbackSet__all(val* self) {
271 val* var /* : Set[NitniCallback] */;
272 val* var1 /* : Set[NitniCallback] */;
273 var1 = nitni_callbacks__ForeignCallbackSet__all(self);
274 var = var1;
275 RET_LABEL:;
276 return var;
277 }
278 /* method nitni_callbacks#ForeignCallbackSet#join for (self: ForeignCallbackSet, ForeignCallbackSet) */
279 void nitni_callbacks__ForeignCallbackSet__join(val* self, val* p0) {
280 val* var_other /* var other: ForeignCallbackSet */;
281 val* var /* : Set[MExplicitCall] */;
282 val* var1 /* : Set[MExplicitCall] */;
283 val* var2 /* : Set[MExplicitSuper] */;
284 val* var3 /* : Set[MExplicitSuper] */;
285 val* var4 /* : Set[MType] */;
286 val* var5 /* : Set[MType] */;
287 val* var6 /* : Set[MExplicitCast] */;
288 val* var7 /* : Set[MExplicitCast] */;
289 var_other = p0;
290 var = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__callbacks]))(self) /* callbacks on <self:ForeignCallbackSet>*/;
291 var1 = ((val* (*)(val*))(var_other->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__callbacks]))(var_other) /* callbacks on <var_other:ForeignCallbackSet>*/;
292 ((void (*)(val*, val*))(var->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var, var1) /* add_all on <var:Set[MExplicitCall]>*/;
293 var2 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__supers]))(self) /* supers on <self:ForeignCallbackSet>*/;
294 var3 = ((val* (*)(val*))(var_other->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__supers]))(var_other) /* supers on <var_other:ForeignCallbackSet>*/;
295 ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var2, var3) /* add_all on <var2:Set[MExplicitSuper]>*/;
296 var4 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__types]))(self) /* types on <self:ForeignCallbackSet>*/;
297 var5 = ((val* (*)(val*))(var_other->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__types]))(var_other) /* types on <var_other:ForeignCallbackSet>*/;
298 ((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var4, var5) /* add_all on <var4:Set[MType]>*/;
299 var6 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__casts]))(self) /* casts on <self:ForeignCallbackSet>*/;
300 var7 = ((val* (*)(val*))(var_other->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__casts]))(var_other) /* casts on <var_other:ForeignCallbackSet>*/;
301 ((void (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var6, var7) /* add_all on <var6:Set[MExplicitCast]>*/;
302 RET_LABEL:;
303 }
304 /* method nitni_callbacks#ForeignCallbackSet#join for (self: Object, ForeignCallbackSet) */
305 void VIRTUAL_nitni_callbacks__ForeignCallbackSet__join(val* self, val* p0) {
306 nitni_callbacks__ForeignCallbackSet__join(self, p0);
307 RET_LABEL:;
308 }
309 /* method nitni_callbacks#ForeignCallbackSet#init for (self: ForeignCallbackSet) */
310 void nitni_callbacks__ForeignCallbackSet__init(val* self) {
311 RET_LABEL:;
312 }
313 /* method nitni_callbacks#ForeignCallbackSet#init for (self: Object) */
314 void VIRTUAL_nitni_callbacks__ForeignCallbackSet__init(val* self) {
315 nitni_callbacks__ForeignCallbackSet__init(self);
316 RET_LABEL:;
317 }
318 /* method nitni_callbacks#AExternPropdef#foreign_callbacks_cache for (self: AExternPropdef): nullable ForeignCallbackSet */
319 val* nitni_callbacks__AExternPropdef__foreign_callbacks_cache(val* self) {
320 val* var /* : nullable ForeignCallbackSet */;
321 val* var1 /* : nullable ForeignCallbackSet */;
322 var1 = self->attrs[COLOR_nitni_callbacks__AExternPropdef___64dforeign_callbacks_cache].val; /* @foreign_callbacks_cache on <self:AExternPropdef> */
323 var = var1;
324 RET_LABEL:;
325 return var;
326 }
327 /* method nitni_callbacks#AExternPropdef#foreign_callbacks_cache for (self: Object): nullable ForeignCallbackSet */
328 val* VIRTUAL_nitni_callbacks__AExternPropdef__foreign_callbacks_cache(val* self) {
329 val* var /* : nullable ForeignCallbackSet */;
330 val* var1 /* : nullable ForeignCallbackSet */;
331 var1 = nitni_callbacks__AExternPropdef__foreign_callbacks_cache(self);
332 var = var1;
333 RET_LABEL:;
334 return var;
335 }
336 /* method nitni_callbacks#AExternPropdef#foreign_callbacks_cache= for (self: AExternPropdef, nullable ForeignCallbackSet) */
337 void nitni_callbacks__AExternPropdef__foreign_callbacks_cache_61d(val* self, val* p0) {
338 self->attrs[COLOR_nitni_callbacks__AExternPropdef___64dforeign_callbacks_cache].val = p0; /* @foreign_callbacks_cache on <self:AExternPropdef> */
339 RET_LABEL:;
340 }
341 /* method nitni_callbacks#AExternPropdef#foreign_callbacks_cache= for (self: Object, nullable ForeignCallbackSet) */
342 void VIRTUAL_nitni_callbacks__AExternPropdef__foreign_callbacks_cache_61d(val* self, val* p0) {
343 nitni_callbacks__AExternPropdef__foreign_callbacks_cache_61d(self, p0);
344 RET_LABEL:;
345 }
346 /* method nitni_callbacks#AExternPropdef#foreign_callbacks for (self: AExternPropdef): ForeignCallbackSet */
347 val* nitni_callbacks__AExternPropdef__foreign_callbacks(val* self) {
348 val* var /* : ForeignCallbackSet */;
349 val* var1 /* : nullable ForeignCallbackSet */;
350 val* var_fcs /* var fcs: nullable ForeignCallbackSet */;
351 val* var2 /* : null */;
352 short int var3 /* : Bool */;
353 static val* varonce;
354 val* var4 /* : String */;
355 char* var5 /* : NativeString */;
356 long var6 /* : Int */;
357 val* var7 /* : String */;
358 var1 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__AExternPropdef__foreign_callbacks_cache]))(self) /* foreign_callbacks_cache on <self:AExternPropdef>*/;
359 var_fcs = var1;
360 var2 = NULL;
361 if (var_fcs == NULL) {
362 var3 = 0; /* is null */
363 } else {
364 var3 = 1; /* arg is null and recv is not */
365 }
366 if (!var3) {
367 if (varonce) {
368 var4 = varonce;
369 } else {
370 var5 = "Error: attempting to access nitni callbacks before phase \'verify_nitni_callback_phase\'.";
371 var6 = 87;
372 var7 = string__NativeString__to_s_with_length(var5, var6);
373 var4 = var7;
374 varonce = var4;
375 }
376 ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var4) /* print on <self:AExternPropdef>*/;
377 fprintf(stderr, "Runtime error: %s", "Assert failed");
378 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 90);
379 show_backtrace(1);
380 }
381 var = var_fcs;
382 goto RET_LABEL;
383 RET_LABEL:;
384 return var;
385 }
386 /* method nitni_callbacks#AExternPropdef#foreign_callbacks for (self: Object): ForeignCallbackSet */
387 val* VIRTUAL_nitni_callbacks__AExternPropdef__foreign_callbacks(val* self) {
388 val* var /* : ForeignCallbackSet */;
389 val* var1 /* : ForeignCallbackSet */;
390 var1 = nitni_callbacks__AExternPropdef__foreign_callbacks(self);
391 var = var1;
392 RET_LABEL:;
393 return var;
394 }
395 /* method nitni_callbacks#AExternPropdef#verify_nitni_callbacks for (self: AExternPropdef, ToolContext) */
396 void nitni_callbacks__AExternPropdef__verify_nitni_callbacks(val* self, val* p0) {
397 val* var_toolcontext /* var toolcontext: ToolContext */;
398 val* var /* : nullable ForeignCallbackSet */;
399 val* var1 /* : null */;
400 short int var2 /* : Bool */;
401 val* var3 /* : ForeignCallbackSet */;
402 val* var_fcs /* var fcs: ForeignCallbackSet */;
403 val* var4 /* : nullable MPropDef */;
404 val* var5 /* : MClassDef */;
405 val* var6 /* : MModule */;
406 val* var_mmodule /* var mmodule: MModule */;
407 val* var7 /* : nullable MPropDef */;
408 val* var8 /* : MClassDef */;
409 val* var9 /* : MClassType */;
410 val* var_recv_type /* var recv_type: MClassType */;
411 val* var10 /* : Set[MType] */;
412 val* var11 /* : nullable MPropDef */;
413 val* var12 /* : nullable MSignature */;
414 val* var13 /* : nullable MType */;
415 val* var_rmt /* var rmt: nullable MType */;
416 val* var14 /* : null */;
417 short int var15 /* : Bool */;
418 short int var16 /* : Bool */;
419 short int var17 /* : Bool */;
420 int cltype;
421 int idtype;
422 short int var_ /* var : Bool */;
423 short int var18 /* : Bool */;
424 int cltype19;
425 int idtype20;
426 val* var21 /* : nullable MPropDef */;
427 val* var22 /* : MClassDef */;
428 val* var23 /* : MClassType */;
429 val* var_mclass_type /* var mclass_type: MClassType */;
430 val* var24 /* : MType */;
431 short int var25 /* : Bool */;
432 val* var26 /* : MType */;
433 val* var_mtype /* var mtype: MType */;
434 val* var27 /* : Set[MType] */;
435 val* var28 /* : nullable MPropDef */;
436 val* var29 /* : nullable MSignature */;
437 val* var30 /* : Array[MParameter] */;
438 val* var31 /* : Iterator[nullable Object] */;
439 short int var32 /* : Bool */;
440 val* var33 /* : nullable Object */;
441 val* var_p /* var p: MParameter */;
442 val* var34 /* : MType */;
443 short int var35 /* : Bool */;
444 val* var36 /* : MType */;
445 val* var_mtype37 /* var mtype: MType */;
446 short int var38 /* : Bool */;
447 short int var39 /* : Bool */;
448 int cltype40;
449 int idtype41;
450 short int var_42 /* var : Bool */;
451 short int var43 /* : Bool */;
452 int cltype44;
453 int idtype45;
454 val* var46 /* : nullable MPropDef */;
455 val* var47 /* : MClassDef */;
456 val* var48 /* : MClassType */;
457 val* var_mclass_type49 /* var mclass_type: MClassType */;
458 val* var50 /* : MType */;
459 val* var51 /* : Set[MType] */;
460 val* var52 /* : nullable AExternCalls */;
461 val* var53 /* : null */;
462 short int var54 /* : Bool */;
463 val* var55 /* : nullable AExternCalls */;
464 val* var56 /* : ANodes[AExternCall] */;
465 val* var57 /* : Iterator[nullable Object] */;
466 short int var58 /* : Bool */;
467 val* var59 /* : nullable Object */;
468 val* var_ec /* var ec: AExternCall */;
469 var_toolcontext = p0;
470 var = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__AExternPropdef__foreign_callbacks_cache]))(self) /* foreign_callbacks_cache on <self:AExternPropdef>*/;
471 var1 = NULL;
472 if (var == NULL) {
473 var2 = 0; /* is null */
474 } else {
475 var2 = 1; /* arg is null and recv is not */
476 }
477 if (var2){
478 goto RET_LABEL;
479 } else {
480 }
481 var3 = NEW_nitni_callbacks__ForeignCallbackSet(&type_nitni_callbacks__ForeignCallbackSet);
482 ((void (*)(val*))(var3->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__init]))(var3) /* init on <var3:ForeignCallbackSet>*/;
483 var_fcs = var3;
484 var4 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AExternPropdef>*/;
485 if (var4 == NULL) {
486 fprintf(stderr, "Runtime error: %s", "Receiver is null");
487 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 102);
488 show_backtrace(1);
489 } else {
490 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_model__MPropDef__mclassdef]))(var4) /* mclassdef on <var4:nullable MPropDef(nullable MMethodDef)>*/;
491 }
492 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_model__MClassDef__mmodule]))(var5) /* mmodule on <var5:MClassDef>*/;
493 var_mmodule = var6;
494 var7 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AExternPropdef>*/;
495 if (var7 == NULL) {
496 fprintf(stderr, "Runtime error: %s", "Receiver is null");
497 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 105);
498 show_backtrace(1);
499 } else {
500 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_model__MPropDef__mclassdef]))(var7) /* mclassdef on <var7:nullable MPropDef(nullable MMethodDef)>*/;
501 }
502 var9 = ((val* (*)(val*))(var8->class->vft[COLOR_model__MClassDef__bound_mtype]))(var8) /* bound_mtype on <var8:MClassDef>*/;
503 var_recv_type = var9;
504 var10 = ((val* (*)(val*))(var_fcs->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__types]))(var_fcs) /* types on <var_fcs:ForeignCallbackSet>*/;
505 ((void (*)(val*, val*))(var10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var10, var_recv_type) /* add on <var10:Set[MType]>*/;
506 var11 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AExternPropdef>*/;
507 if (var11 == NULL) {
508 fprintf(stderr, "Runtime error: %s", "Receiver is null");
509 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 109);
510 show_backtrace(1);
511 } else {
512 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MMethodDef__msignature]))(var11) /* msignature on <var11:nullable MPropDef(nullable MMethodDef)>*/;
513 }
514 if (var12 == NULL) {
515 fprintf(stderr, "Runtime error: %s", "Receiver is null");
516 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 109);
517 show_backtrace(1);
518 } else {
519 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MSignature__return_mtype]))(var12) /* return_mtype on <var12:nullable MSignature>*/;
520 }
521 var_rmt = var13;
522 var14 = NULL;
523 if (var_rmt == NULL) {
524 var15 = 0; /* is null */
525 } else {
526 var15 = 1; /* arg is null and recv is not */
527 }
528 if (var15){
529 /* <var_rmt:nullable MType(MType)> isa MParameterType */
530 cltype = type_model__MParameterType.color;
531 idtype = type_model__MParameterType.id;
532 if(cltype >= var_rmt->type->table_size) {
533 var17 = 0;
534 } else {
535 var17 = var_rmt->type->type_table[cltype] == idtype;
536 }
537 var_ = var17;
538 if (var17){
539 var16 = var_;
540 } else {
541 /* <var_rmt:nullable MType(MType)> isa MVirtualType */
542 cltype19 = type_model__MVirtualType.color;
543 idtype20 = type_model__MVirtualType.id;
544 if(cltype19 >= var_rmt->type->table_size) {
545 var18 = 0;
546 } else {
547 var18 = var_rmt->type->type_table[cltype19] == idtype20;
548 }
549 var16 = var18;
550 }
551 if (var16){
552 var21 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AExternPropdef>*/;
553 if (var21 == NULL) {
554 fprintf(stderr, "Runtime error: %s", "Receiver is null");
555 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 112);
556 show_backtrace(1);
557 } else {
558 var22 = ((val* (*)(val*))(var21->class->vft[COLOR_model__MPropDef__mclassdef]))(var21) /* mclassdef on <var21:nullable MPropDef(nullable MMethodDef)>*/;
559 }
560 var23 = ((val* (*)(val*))(var22->class->vft[COLOR_model__MClassDef__bound_mtype]))(var22) /* bound_mtype on <var22:MClassDef>*/;
561 var_mclass_type = var23;
562 if (var_rmt == NULL) {
563 fprintf(stderr, "Runtime error: %s", "Receiver is null");
564 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 113);
565 show_backtrace(1);
566 } else {
567 var24 = ((val* (*)(val*, val*, val*))(var_rmt->class->vft[COLOR_model__MType__anchor_to]))(var_rmt, var_mmodule, var_mclass_type) /* anchor_to on <var_rmt:nullable MType>*/;
568 }
569 var_rmt = var24;
570 } else {
571 }
572 var25 = 1;
573 var26 = ((val* (*)(val*, val*, val*, val*, short int))(var_rmt->class->vft[COLOR_model__MType__resolve_for]))(var_rmt, var_recv_type, var_recv_type, var_mmodule, var25) /* resolve_for on <var_rmt:nullable MType(MType)>*/;
574 var_mtype = var26;
575 var27 = ((val* (*)(val*))(var_fcs->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__types]))(var_fcs) /* types on <var_fcs:ForeignCallbackSet>*/;
576 ((void (*)(val*, val*))(var27->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var27, var_mtype) /* add on <var27:Set[MType]>*/;
577 } else {
578 }
579 var28 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AExternPropdef>*/;
580 if (var28 == NULL) {
581 fprintf(stderr, "Runtime error: %s", "Receiver is null");
582 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 120);
583 show_backtrace(1);
584 } else {
585 var29 = ((val* (*)(val*))(var28->class->vft[COLOR_model__MMethodDef__msignature]))(var28) /* msignature on <var28:nullable MPropDef(nullable MMethodDef)>*/;
586 }
587 if (var29 == NULL) {
588 fprintf(stderr, "Runtime error: %s", "Receiver is null");
589 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 120);
590 show_backtrace(1);
591 } else {
592 var30 = ((val* (*)(val*))(var29->class->vft[COLOR_model__MSignature__mparameters]))(var29) /* mparameters on <var29:nullable MSignature>*/;
593 }
594 var31 = ((val* (*)(val*))(var30->class->vft[COLOR_abstract_collection__Collection__iterator]))(var30) /* iterator on <var30:Array[MParameter]>*/;
595 for(;;) {
596 var32 = ((short int (*)(val*))(var31->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var31) /* is_ok on <var31:Iterator[nullable Object]>*/;
597 if(!var32) break;
598 var33 = ((val* (*)(val*))(var31->class->vft[COLOR_abstract_collection__Iterator__item]))(var31) /* item on <var31:Iterator[nullable Object]>*/;
599 var_p = var33;
600 var34 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MParameter__mtype]))(var_p) /* mtype on <var_p:MParameter>*/;
601 var35 = 1;
602 var36 = ((val* (*)(val*, val*, val*, val*, short int))(var34->class->vft[COLOR_model__MType__resolve_for]))(var34, var_recv_type, var_recv_type, var_mmodule, var35) /* resolve_for on <var34:MType>*/;
603 var_mtype37 = var36;
604 /* <var_mtype37:MType> isa MParameterType */
605 cltype40 = type_model__MParameterType.color;
606 idtype41 = type_model__MParameterType.id;
607 if(cltype40 >= var_mtype37->type->table_size) {
608 var39 = 0;
609 } else {
610 var39 = var_mtype37->type->type_table[cltype40] == idtype41;
611 }
612 var_42 = var39;
613 if (var39){
614 var38 = var_42;
615 } else {
616 /* <var_mtype37:MType> isa MVirtualType */
617 cltype44 = type_model__MVirtualType.color;
618 idtype45 = type_model__MVirtualType.id;
619 if(cltype44 >= var_mtype37->type->table_size) {
620 var43 = 0;
621 } else {
622 var43 = var_mtype37->type->type_table[cltype44] == idtype45;
623 }
624 var38 = var43;
625 }
626 if (var38){
627 var46 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AExternPropdef>*/;
628 if (var46 == NULL) {
629 fprintf(stderr, "Runtime error: %s", "Receiver is null");
630 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 123);
631 show_backtrace(1);
632 } else {
633 var47 = ((val* (*)(val*))(var46->class->vft[COLOR_model__MPropDef__mclassdef]))(var46) /* mclassdef on <var46:nullable MPropDef(nullable MMethodDef)>*/;
634 }
635 var48 = ((val* (*)(val*))(var47->class->vft[COLOR_model__MClassDef__bound_mtype]))(var47) /* bound_mtype on <var47:MClassDef>*/;
636 var_mclass_type49 = var48;
637 var50 = ((val* (*)(val*, val*, val*))(var_mtype37->class->vft[COLOR_model__MType__anchor_to]))(var_mtype37, var_mmodule, var_mclass_type49) /* anchor_to on <var_mtype37:MType>*/;
638 var_mtype37 = var50;
639 } else {
640 }
641 var51 = ((val* (*)(val*))(var_fcs->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__types]))(var_fcs) /* types on <var_fcs:ForeignCallbackSet>*/;
642 ((void (*)(val*, val*))(var51->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var51, var_mtype37) /* add on <var51:Set[MType]>*/;
643 CONTINUE_label: (void)0;
644 ((void (*)(val*))(var31->class->vft[COLOR_abstract_collection__Iterator__next]))(var31) /* next on <var31:Iterator[nullable Object]>*/;
645 }
646 BREAK_label: (void)0;
647 var52 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AExternPropdef__n_extern_calls]))(self) /* n_extern_calls on <self:AExternPropdef>*/;
648 var53 = NULL;
649 if (var52 == NULL) {
650 var54 = 0; /* is null */
651 } else {
652 var54 = 1; /* arg is null and recv is not */
653 }
654 if (var54){
655 var55 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AExternPropdef__n_extern_calls]))(self) /* n_extern_calls on <self:AExternPropdef>*/;
656 if (var55 == NULL) {
657 fprintf(stderr, "Runtime error: %s", "Receiver is null");
658 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 131);
659 show_backtrace(1);
660 } else {
661 var56 = ((val* (*)(val*))(var55->class->vft[COLOR_parser_nodes__AExternCalls__n_extern_calls]))(var55) /* n_extern_calls on <var55:nullable AExternCalls>*/;
662 }
663 var57 = ((val* (*)(val*))(var56->class->vft[COLOR_abstract_collection__Collection__iterator]))(var56) /* iterator on <var56:ANodes[AExternCall]>*/;
664 for(;;) {
665 var58 = ((short int (*)(val*))(var57->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var57) /* is_ok on <var57:Iterator[nullable Object]>*/;
666 if(!var58) break;
667 var59 = ((val* (*)(val*))(var57->class->vft[COLOR_abstract_collection__Iterator__item]))(var57) /* item on <var57:Iterator[nullable Object]>*/;
668 var_ec = var59;
669 ((void (*)(val*, val*, val*, val*))(var_ec->class->vft[COLOR_nitni_callbacks__AExternCall__verify_and_collect]))(var_ec, self, var_fcs, var_toolcontext) /* verify_and_collect on <var_ec:AExternCall>*/;
670 CONTINUE_label60: (void)0;
671 ((void (*)(val*))(var57->class->vft[COLOR_abstract_collection__Iterator__next]))(var57) /* next on <var57:Iterator[nullable Object]>*/;
672 }
673 BREAK_label60: (void)0;
674 } else {
675 }
676 ((void (*)(val*, val*))(self->class->vft[COLOR_nitni_callbacks__AExternPropdef__foreign_callbacks_cache_61d]))(self, var_fcs) /* foreign_callbacks_cache= on <self:AExternPropdef>*/;
677 RET_LABEL:;
678 }
679 /* method nitni_callbacks#AExternPropdef#verify_nitni_callbacks for (self: Object, ToolContext) */
680 void VIRTUAL_nitni_callbacks__AExternPropdef__verify_nitni_callbacks(val* self, val* p0) {
681 nitni_callbacks__AExternPropdef__verify_nitni_callbacks(self, p0);
682 RET_LABEL:;
683 }
684 /* method nitni_callbacks#AExternPropdef#accept_rapid_type_visitor for (self: AExternPropdef, RapidTypeVisitor) */
685 void nitni_callbacks__AExternPropdef__accept_rapid_type_visitor(val* self, val* p0) {
686 val* var_v /* var v: RapidTypeVisitor */;
687 val* var /* : ForeignCallbackSet */;
688 val* var1 /* : Set[MExplicitCall] */;
689 val* var2 /* : Iterator[nullable Object] */;
690 short int var3 /* : Bool */;
691 val* var4 /* : nullable Object */;
692 val* var_cb /* var cb: MExplicitCall */;
693 val* var5 /* : MClassType */;
694 val* var6 /* : MProperty */;
695 short int var7 /* : Bool */;
696 int cltype;
697 int idtype;
698 const char* var_class_name;
699 val* var8 /* : ForeignCallbackSet */;
700 val* var9 /* : Set[MExplicitCast] */;
701 val* var10 /* : Iterator[nullable Object] */;
702 short int var11 /* : Bool */;
703 val* var12 /* : nullable Object */;
704 val* var_cast /* var cast: MExplicitCast */;
705 val* var13 /* : MType */;
706 val* var15 /* : ForeignCallbackSet */;
707 val* var16 /* : Set[MExplicitSuper] */;
708 val* var17 /* : Iterator[nullable Object] */;
709 short int var18 /* : Bool */;
710 val* var19 /* : nullable Object */;
711 val* var_sup /* var sup: MExplicitSuper */;
712 val* var20 /* : RapidTypeAnalysis */;
713 val* var21 /* : MPropDef */;
714 val* var22 /* : MClassDef */;
715 val* var23 /* : MClass */;
716 val* var24 /* : MClassType */;
717 val* var25 /* : MPropDef */;
718 short int var26 /* : Bool */;
719 int cltype27;
720 int idtype28;
721 const char* var_class_name29;
722 val* var31 /* : ForeignCallbackSet */;
723 val* var32 /* : Set[MType] */;
724 val* var33 /* : Iterator[nullable Object] */;
725 short int var34 /* : Bool */;
726 val* var35 /* : nullable Object */;
727 val* var_t /* var t: MType */;
728 short int var36 /* : Bool */;
729 int cltype37;
730 int idtype38;
731 var_v = p0;
732 var = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__AExternPropdef__foreign_callbacks]))(self) /* foreign_callbacks on <self:AExternPropdef>*/;
733 var1 = ((val* (*)(val*))(var->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__callbacks]))(var) /* callbacks on <var:ForeignCallbackSet>*/;
734 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__iterator]))(var1) /* iterator on <var1:Set[MExplicitCall]>*/;
735 for(;;) {
736 var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on <var2:Iterator[nullable Object]>*/;
737 if(!var3) break;
738 var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on <var2:Iterator[nullable Object]>*/;
739 var_cb = var4;
740 var5 = ((val* (*)(val*))(var_cb->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(var_cb) /* recv_mtype on <var_cb:MExplicitCall>*/;
741 var6 = ((val* (*)(val*))(var_cb->class->vft[COLOR_nitni_callbacks__MExplicitCall__mproperty]))(var_cb) /* mproperty on <var_cb:MExplicitCall>*/;
742 /* <var6:MProperty> isa MMethod */
743 cltype = type_model__MMethod.color;
744 idtype = type_model__MMethod.id;
745 if(cltype >= var6->type->table_size) {
746 var7 = 0;
747 } else {
748 var7 = var6->type->type_table[cltype] == idtype;
749 }
750 if (!var7) {
751 var_class_name = var6 == NULL ? "null" : var6->type->name;
752 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MMethod", var_class_name);
753 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 142);
754 show_backtrace(1);
755 }
756 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_rapid_type_analysis__RapidTypeVisitor__add_send]))(var_v, var5, var6) /* add_send on <var_v:RapidTypeVisitor>*/;
757 CONTINUE_label: (void)0;
758 ((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on <var2:Iterator[nullable Object]>*/;
759 }
760 BREAK_label: (void)0;
761 var8 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__AExternPropdef__foreign_callbacks]))(self) /* foreign_callbacks on <self:AExternPropdef>*/;
762 var9 = ((val* (*)(val*))(var8->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__casts]))(var8) /* casts on <var8:ForeignCallbackSet>*/;
763 var10 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_collection__Collection__iterator]))(var9) /* iterator on <var9:Set[MExplicitCast]>*/;
764 for(;;) {
765 var11 = ((short int (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var10) /* is_ok on <var10:Iterator[nullable Object]>*/;
766 if(!var11) break;
767 var12 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__item]))(var10) /* item on <var10:Iterator[nullable Object]>*/;
768 var_cast = var12;
769 var13 = ((val* (*)(val*))(var_cast->class->vft[COLOR_nitni_callbacks__MExplicitCast__to]))(var_cast) /* to on <var_cast:MExplicitCast>*/;
770 ((void (*)(val*, val*))(var_v->class->vft[COLOR_rapid_type_analysis__RapidTypeVisitor__add_cast_type]))(var_v, var13) /* add_cast_type on <var_v:RapidTypeVisitor>*/;
771 CONTINUE_label14: (void)0;
772 ((void (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__next]))(var10) /* next on <var10:Iterator[nullable Object]>*/;
773 }
774 BREAK_label14: (void)0;
775 var15 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__AExternPropdef__foreign_callbacks]))(self) /* foreign_callbacks on <self:AExternPropdef>*/;
776 var16 = ((val* (*)(val*))(var15->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__supers]))(var15) /* supers on <var15:ForeignCallbackSet>*/;
777 var17 = ((val* (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__iterator]))(var16) /* iterator on <var16:Set[MExplicitSuper]>*/;
778 for(;;) {
779 var18 = ((short int (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var17) /* is_ok on <var17:Iterator[nullable Object]>*/;
780 if(!var18) break;
781 var19 = ((val* (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__item]))(var17) /* item on <var17:Iterator[nullable Object]>*/;
782 var_sup = var19;
783 var20 = ((val* (*)(val*))(var_v->class->vft[COLOR_rapid_type_analysis__RapidTypeVisitor__analysis]))(var_v) /* analysis on <var_v:RapidTypeVisitor>*/;
784 var21 = ((val* (*)(val*))(var_sup->class->vft[COLOR_nitni_callbacks__MExplicitSuper__from]))(var_sup) /* from on <var_sup:MExplicitSuper>*/;
785 var22 = ((val* (*)(val*))(var21->class->vft[COLOR_model__MPropDef__mclassdef]))(var21) /* mclassdef on <var21:MPropDef>*/;
786 var23 = ((val* (*)(val*))(var22->class->vft[COLOR_model__MClassDef__mclass]))(var22) /* mclass on <var22:MClassDef>*/;
787 var24 = ((val* (*)(val*))(var23->class->vft[COLOR_model__MClass__mclass_type]))(var23) /* mclass_type on <var23:MClass>*/;
788 var25 = ((val* (*)(val*))(var_sup->class->vft[COLOR_nitni_callbacks__MExplicitSuper__from]))(var_sup) /* from on <var_sup:MExplicitSuper>*/;
789 /* <var25:MPropDef> isa MMethodDef */
790 cltype27 = type_model__MMethodDef.color;
791 idtype28 = type_model__MMethodDef.id;
792 if(cltype27 >= var25->type->table_size) {
793 var26 = 0;
794 } else {
795 var26 = var25->type->type_table[cltype27] == idtype28;
796 }
797 if (!var26) {
798 var_class_name29 = var25 == NULL ? "null" : var25->type->name;
799 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MMethodDef", var_class_name29);
800 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 145);
801 show_backtrace(1);
802 }
803 ((void (*)(val*, val*, val*))(var20->class->vft[COLOR_rapid_type_analysis__RapidTypeAnalysis__add_super_send]))(var20, var24, var25) /* add_super_send on <var20:RapidTypeAnalysis>*/;
804 CONTINUE_label30: (void)0;
805 ((void (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__next]))(var17) /* next on <var17:Iterator[nullable Object]>*/;
806 }
807 BREAK_label30: (void)0;
808 var31 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__AExternPropdef__foreign_callbacks]))(self) /* foreign_callbacks on <self:AExternPropdef>*/;
809 var32 = ((val* (*)(val*))(var31->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__types]))(var31) /* types on <var31:ForeignCallbackSet>*/;
810 var33 = ((val* (*)(val*))(var32->class->vft[COLOR_abstract_collection__Collection__iterator]))(var32) /* iterator on <var32:Set[MType]>*/;
811 for(;;) {
812 var34 = ((short int (*)(val*))(var33->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var33) /* is_ok on <var33:Iterator[nullable Object]>*/;
813 if(!var34) break;
814 var35 = ((val* (*)(val*))(var33->class->vft[COLOR_abstract_collection__Iterator__item]))(var33) /* item on <var33:Iterator[nullable Object]>*/;
815 var_t = var35;
816 /* <var_t:MType> isa MClassType */
817 cltype37 = type_model__MClassType.color;
818 idtype38 = type_model__MClassType.id;
819 if(cltype37 >= var_t->type->table_size) {
820 var36 = 0;
821 } else {
822 var36 = var_t->type->type_table[cltype37] == idtype38;
823 }
824 if (var36){
825 ((void (*)(val*, val*))(var_v->class->vft[COLOR_rapid_type_analysis__RapidTypeVisitor__add_type]))(var_v, var_t) /* add_type on <var_v:RapidTypeVisitor>*/;
826 } else {
827 }
828 CONTINUE_label39: (void)0;
829 ((void (*)(val*))(var33->class->vft[COLOR_abstract_collection__Iterator__next]))(var33) /* next on <var33:Iterator[nullable Object]>*/;
830 }
831 BREAK_label39: (void)0;
832 RET_LABEL:;
833 }
834 /* method nitni_callbacks#AExternPropdef#accept_rapid_type_visitor for (self: Object, RapidTypeVisitor) */
835 void VIRTUAL_nitni_callbacks__AExternPropdef__accept_rapid_type_visitor(val* self, val* p0) {
836 nitni_callbacks__AExternPropdef__accept_rapid_type_visitor(self, p0);
837 RET_LABEL:;
838 }
839 /* method nitni_callbacks#MExplicitCall#recv_mtype for (self: MExplicitCall): MClassType */
840 val* nitni_callbacks__MExplicitCall__recv_mtype(val* self) {
841 val* var /* : MClassType */;
842 val* var1 /* : MClassType */;
843 var1 = self->attrs[COLOR_nitni_callbacks__MExplicitCall___64drecv_mtype].val; /* @recv_mtype on <self:MExplicitCall> */
844 if (var1 == NULL) {
845 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @recv_mtype");
846 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 163);
847 show_backtrace(1);
848 }
849 var = var1;
850 RET_LABEL:;
851 return var;
852 }
853 /* method nitni_callbacks#MExplicitCall#recv_mtype for (self: Object): MClassType */
854 val* VIRTUAL_nitni_callbacks__MExplicitCall__recv_mtype(val* self) {
855 val* var /* : MClassType */;
856 val* var1 /* : MClassType */;
857 var1 = nitni_callbacks__MExplicitCall__recv_mtype(self);
858 var = var1;
859 RET_LABEL:;
860 return var;
861 }
862 /* method nitni_callbacks#MExplicitCall#recv_mtype= for (self: MExplicitCall, MClassType) */
863 void nitni_callbacks__MExplicitCall__recv_mtype_61d(val* self, val* p0) {
864 self->attrs[COLOR_nitni_callbacks__MExplicitCall___64drecv_mtype].val = p0; /* @recv_mtype on <self:MExplicitCall> */
865 RET_LABEL:;
866 }
867 /* method nitni_callbacks#MExplicitCall#recv_mtype= for (self: Object, MClassType) */
868 void VIRTUAL_nitni_callbacks__MExplicitCall__recv_mtype_61d(val* self, val* p0) {
869 nitni_callbacks__MExplicitCall__recv_mtype_61d(self, p0);
870 RET_LABEL:;
871 }
872 /* method nitni_callbacks#MExplicitCall#mproperty for (self: MExplicitCall): MProperty */
873 val* nitni_callbacks__MExplicitCall__mproperty(val* self) {
874 val* var /* : MProperty */;
875 val* var1 /* : MProperty */;
876 var1 = self->attrs[COLOR_nitni_callbacks__MExplicitCall___64dmproperty].val; /* @mproperty on <self:MExplicitCall> */
877 if (var1 == NULL) {
878 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mproperty");
879 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 165);
880 show_backtrace(1);
881 }
882 var = var1;
883 RET_LABEL:;
884 return var;
885 }
886 /* method nitni_callbacks#MExplicitCall#mproperty for (self: Object): MProperty */
887 val* VIRTUAL_nitni_callbacks__MExplicitCall__mproperty(val* self) {
888 val* var /* : MProperty */;
889 val* var1 /* : MProperty */;
890 var1 = nitni_callbacks__MExplicitCall__mproperty(self);
891 var = var1;
892 RET_LABEL:;
893 return var;
894 }
895 /* method nitni_callbacks#MExplicitCall#mproperty= for (self: MExplicitCall, MProperty) */
896 void nitni_callbacks__MExplicitCall__mproperty_61d(val* self, val* p0) {
897 self->attrs[COLOR_nitni_callbacks__MExplicitCall___64dmproperty].val = p0; /* @mproperty on <self:MExplicitCall> */
898 RET_LABEL:;
899 }
900 /* method nitni_callbacks#MExplicitCall#mproperty= for (self: Object, MProperty) */
901 void VIRTUAL_nitni_callbacks__MExplicitCall__mproperty_61d(val* self, val* p0) {
902 nitni_callbacks__MExplicitCall__mproperty_61d(self, p0);
903 RET_LABEL:;
904 }
905 /* method nitni_callbacks#MExplicitCall#from_mmodule for (self: MExplicitCall): MModule */
906 val* nitni_callbacks__MExplicitCall__from_mmodule(val* self) {
907 val* var /* : MModule */;
908 val* var1 /* : MModule */;
909 var1 = self->attrs[COLOR_nitni_callbacks__MExplicitCall___64dfrom_mmodule].val; /* @from_mmodule on <self:MExplicitCall> */
910 if (var1 == NULL) {
911 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @from_mmodule");
912 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 166);
913 show_backtrace(1);
914 }
915 var = var1;
916 RET_LABEL:;
917 return var;
918 }
919 /* method nitni_callbacks#MExplicitCall#from_mmodule for (self: Object): MModule */
920 val* VIRTUAL_nitni_callbacks__MExplicitCall__from_mmodule(val* self) {
921 val* var /* : MModule */;
922 val* var1 /* : MModule */;
923 var1 = nitni_callbacks__MExplicitCall__from_mmodule(self);
924 var = var1;
925 RET_LABEL:;
926 return var;
927 }
928 /* method nitni_callbacks#MExplicitCall#from_mmodule= for (self: MExplicitCall, MModule) */
929 void nitni_callbacks__MExplicitCall__from_mmodule_61d(val* self, val* p0) {
930 self->attrs[COLOR_nitni_callbacks__MExplicitCall___64dfrom_mmodule].val = p0; /* @from_mmodule on <self:MExplicitCall> */
931 RET_LABEL:;
932 }
933 /* method nitni_callbacks#MExplicitCall#from_mmodule= for (self: Object, MModule) */
934 void VIRTUAL_nitni_callbacks__MExplicitCall__from_mmodule_61d(val* self, val* p0) {
935 nitni_callbacks__MExplicitCall__from_mmodule_61d(self, p0);
936 RET_LABEL:;
937 }
938 /* method nitni_callbacks#MExplicitCall#fill_type_for for (self: MExplicitCall, ForeignCallbackSet, MModule) */
939 void nitni_callbacks__MExplicitCall__fill_type_for(val* self, val* p0, val* p1) {
940 val* var_callback_set /* var callback_set: ForeignCallbackSet */;
941 val* var_from /* var from: MModule */;
942 val* var /* : MProperty */;
943 val* var1 /* : MClassType */;
944 val* var2 /* : MPropDef */;
945 val* var_first /* var first: MPropDef */;
946 val* var3 /* : MClassDef */;
947 val* var_mclassdef /* var mclassdef: MClassDef */;
948 val* var4 /* : MClassType */;
949 val* var_bound_mtype /* var bound_mtype: MClassType */;
950 val* var5 /* : MClassType */;
951 short int var6 /* : Bool */;
952 val* var7 /* : MType */;
953 val* var8 /* : MClassType */;
954 val* var9 /* : MType */;
955 val* var10 /* : Set[MType] */;
956 val* var11 /* : MClassType */;
957 short int var12 /* : Bool */;
958 int cltype;
959 int idtype;
960 val* var13 /* : nullable MSignature */;
961 val* var14 /* : nullable MType */;
962 val* var_rmt /* var rmt: nullable MType */;
963 val* var15 /* : null */;
964 short int var16 /* : Bool */;
965 short int var17 /* : Bool */;
966 val* var18 /* : MType */;
967 val* var19 /* : MType */;
968 val* var20 /* : Set[MType] */;
969 val* var21 /* : nullable MSignature */;
970 val* var22 /* : Array[MParameter] */;
971 val* var23 /* : Iterator[nullable Object] */;
972 short int var24 /* : Bool */;
973 val* var25 /* : nullable Object */;
974 val* var_p /* var p: MParameter */;
975 val* var26 /* : MType */;
976 val* var27 /* : MClassType */;
977 val* var28 /* : MClassType */;
978 short int var29 /* : Bool */;
979 val* var30 /* : MType */;
980 val* var_param_mtype /* var param_mtype: MType */;
981 short int var31 /* : Bool */;
982 val* var32 /* : MType */;
983 val* var33 /* : MType */;
984 val* var34 /* : Set[MType] */;
985 var_callback_set = p0;
986 var_from = p1;
987 var = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__mproperty]))(self) /* mproperty on <self:MExplicitCall>*/;
988 var1 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
989 var2 = ((val* (*)(val*, val*, val*))(var->class->vft[COLOR_model__MProperty__lookup_first_definition]))(var, var_from, var1) /* lookup_first_definition on <var:MProperty>*/;
990 var_first = var2;
991 var3 = ((val* (*)(val*))(var_first->class->vft[COLOR_model__MPropDef__mclassdef]))(var_first) /* mclassdef on <var_first:MPropDef>*/;
992 var_mclassdef = var3;
993 var4 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_mclassdef) /* bound_mtype on <var_mclassdef:MClassDef>*/;
994 var_bound_mtype = var4;
995 var5 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
996 var6 = 1;
997 var7 = ((val* (*)(val*, val*, val*, val*, short int))(var5->class->vft[COLOR_model__MType__resolve_for]))(var5, var_bound_mtype, var_bound_mtype, var_from, var6) /* resolve_for on <var5:MClassType>*/;
998 ((void (*)(val*, val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype_61d]))(self, var7) /* recv_mtype= on <self:MExplicitCall>*/;
999 var8 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1000 var9 = ((val* (*)(val*, val*, val*))(var8->class->vft[COLOR_model__MType__anchor_to]))(var8, var_from, var_bound_mtype) /* anchor_to on <var8:MClassType>*/;
1001 ((void (*)(val*, val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype_61d]))(self, var9) /* recv_mtype= on <self:MExplicitCall>*/;
1002 var10 = ((val* (*)(val*))(var_callback_set->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__types]))(var_callback_set) /* types on <var_callback_set:ForeignCallbackSet>*/;
1003 var11 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1004 ((void (*)(val*, val*))(var10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var10, var11) /* add on <var10:Set[MType]>*/;
1005 /* <var_first:MPropDef> isa MMethodDef */
1006 cltype = type_model__MMethodDef.color;
1007 idtype = type_model__MMethodDef.id;
1008 if(cltype >= var_first->type->table_size) {
1009 var12 = 0;
1010 } else {
1011 var12 = var_first->type->type_table[cltype] == idtype;
1012 }
1013 if (var12){
1014 var13 = ((val* (*)(val*))(var_first->class->vft[COLOR_model__MMethodDef__msignature]))(var_first) /* msignature on <var_first:MPropDef(MMethodDef)>*/;
1015 if (var13 == NULL) {
1016 fprintf(stderr, "Runtime error: %s", "Receiver is null");
1017 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 180);
1018 show_backtrace(1);
1019 } else {
1020 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model__MSignature__return_mtype]))(var13) /* return_mtype on <var13:nullable MSignature>*/;
1021 }
1022 var_rmt = var14;
1023 var15 = NULL;
1024 if (var_rmt == NULL) {
1025 var16 = 0; /* is null */
1026 } else {
1027 var16 = 1; /* arg is null and recv is not */
1028 }
1029 if (var16){
1030 var17 = 1;
1031 var18 = ((val* (*)(val*, val*, val*, val*, short int))(var_rmt->class->vft[COLOR_model__MType__resolve_for]))(var_rmt, var_bound_mtype, var_bound_mtype, var_from, var17) /* resolve_for on <var_rmt:nullable MType(MType)>*/;
1032 var_rmt = var18;
1033 var19 = ((val* (*)(val*, val*, val*))(var_rmt->class->vft[COLOR_model__MType__anchor_to]))(var_rmt, var_from, var_bound_mtype) /* anchor_to on <var_rmt:nullable MType(MType)>*/;
1034 var_rmt = var19;
1035 var20 = ((val* (*)(val*))(var_callback_set->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__types]))(var_callback_set) /* types on <var_callback_set:ForeignCallbackSet>*/;
1036 ((void (*)(val*, val*))(var20->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var20, var_rmt) /* add on <var20:Set[MType]>*/;
1037 } else {
1038 }
1039 var21 = ((val* (*)(val*))(var_first->class->vft[COLOR_model__MMethodDef__msignature]))(var_first) /* msignature on <var_first:MPropDef(MMethodDef)>*/;
1040 if (var21 == NULL) {
1041 fprintf(stderr, "Runtime error: %s", "Receiver is null");
1042 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 187);
1043 show_backtrace(1);
1044 } else {
1045 var22 = ((val* (*)(val*))(var21->class->vft[COLOR_model__MSignature__mparameters]))(var21) /* mparameters on <var21:nullable MSignature>*/;
1046 }
1047 var23 = ((val* (*)(val*))(var22->class->vft[COLOR_abstract_collection__Collection__iterator]))(var22) /* iterator on <var22:Array[MParameter]>*/;
1048 for(;;) {
1049 var24 = ((short int (*)(val*))(var23->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var23) /* is_ok on <var23:Iterator[nullable Object]>*/;
1050 if(!var24) break;
1051 var25 = ((val* (*)(val*))(var23->class->vft[COLOR_abstract_collection__Iterator__item]))(var23) /* item on <var23:Iterator[nullable Object]>*/;
1052 var_p = var25;
1053 var26 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MParameter__mtype]))(var_p) /* mtype on <var_p:MParameter>*/;
1054 var27 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1055 var28 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1056 var29 = 1;
1057 var30 = ((val* (*)(val*, val*, val*, val*, short int))(var26->class->vft[COLOR_model__MType__resolve_for]))(var26, var27, var28, var_from, var29) /* resolve_for on <var26:MType>*/;
1058 var_param_mtype = var30;
1059 var31 = 1;
1060 var32 = ((val* (*)(val*, val*, val*, val*, short int))(var_param_mtype->class->vft[COLOR_model__MType__resolve_for]))(var_param_mtype, var_bound_mtype, var_bound_mtype, var_from, var31) /* resolve_for on <var_param_mtype:MType>*/;
1061 var_param_mtype = var32;
1062 var33 = ((val* (*)(val*, val*, val*))(var_param_mtype->class->vft[COLOR_model__MType__anchor_to]))(var_param_mtype, var_from, var_bound_mtype) /* anchor_to on <var_param_mtype:MType>*/;
1063 var_param_mtype = var33;
1064 var34 = ((val* (*)(val*))(var_callback_set->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__types]))(var_callback_set) /* types on <var_callback_set:ForeignCallbackSet>*/;
1065 ((void (*)(val*, val*))(var34->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var34, var_param_mtype) /* add on <var34:Set[MType]>*/;
1066 CONTINUE_label: (void)0;
1067 ((void (*)(val*))(var23->class->vft[COLOR_abstract_collection__Iterator__next]))(var23) /* next on <var23:Iterator[nullable Object]>*/;
1068 }
1069 BREAK_label: (void)0;
1070 } else {
1071 }
1072 RET_LABEL:;
1073 }
1074 /* method nitni_callbacks#MExplicitCall#fill_type_for for (self: Object, ForeignCallbackSet, MModule) */
1075 void VIRTUAL_nitni_callbacks__MExplicitCall__fill_type_for(val* self, val* p0, val* p1) {
1076 nitni_callbacks__MExplicitCall__fill_type_for(self, p0, p1);
1077 RET_LABEL:;
1078 }
1079 /* method nitni_callbacks#MExplicitCall#csignature for (self: MExplicitCall): String */
1080 val* nitni_callbacks__MExplicitCall__csignature(val* self) {
1081 val* var /* : String */;
1082 val* var1 /* : MProperty */;
1083 val* var_mproperty /* var mproperty: MProperty */;
1084 short int var2 /* : Bool */;
1085 int cltype;
1086 int idtype;
1087 val* var3 /* : MPropDef */;
1088 val* var4 /* : nullable MSignature */;
1089 val* var_signature /* var signature: nullable MSignature */;
1090 val* var5 /* : null */;
1091 short int var6 /* : Bool */;
1092 short int var7 /* : Bool */;
1093 val* var8 /* : MClassType */;
1094 val* var9 /* : String */;
1095 val* var_creturn_type /* var creturn_type: nullable Object */;
1096 val* var10 /* : nullable MType */;
1097 val* var11 /* : null */;
1098 short int var12 /* : Bool */;
1099 val* var13 /* : nullable MType */;
1100 val* var_ret_mtype /* var ret_mtype: nullable MType */;
1101 val* var14 /* : MClassType */;
1102 val* var15 /* : MClassType */;
1103 val* var16 /* : MModule */;
1104 short int var17 /* : Bool */;
1105 val* var18 /* : MType */;
1106 val* var19 /* : String */;
1107 static val* varonce;
1108 val* var20 /* : String */;
1109 char* var21 /* : NativeString */;
1110 long var22 /* : Int */;
1111 val* var23 /* : String */;
1112 short int var24 /* : Bool */;
1113 short int var25 /* : Bool */;
1114 val* var26 /* : String */;
1115 static val* varonce27;
1116 val* var28 /* : String */;
1117 char* var29 /* : NativeString */;
1118 long var30 /* : Int */;
1119 val* var31 /* : String */;
1120 short int var32 /* : Bool */;
1121 val* var33 /* : String */;
1122 static val* varonce34;
1123 val* var35 /* : String */;
1124 char* var36 /* : NativeString */;
1125 long var37 /* : Int */;
1126 val* var38 /* : String */;
1127 short int var39 /* : Bool */;
1128 static val* varonce40;
1129 val* var41 /* : String */;
1130 char* var42 /* : NativeString */;
1131 long var43 /* : Int */;
1132 val* var44 /* : String */;
1133 val* var45 /* : MClassType */;
1134 val* var46 /* : String */;
1135 val* var47 /* : Array[Object] */;
1136 long var48 /* : Int */;
1137 val* var49 /* : NativeArray[Object] */;
1138 val* var50 /* : String */;
1139 val* var_cname /* var cname: nullable Object */;
1140 static val* varonce51;
1141 val* var52 /* : String */;
1142 char* var53 /* : NativeString */;
1143 long var54 /* : Int */;
1144 val* var55 /* : String */;
1145 val* var56 /* : MClassType */;
1146 val* var57 /* : String */;
1147 static val* varonce58;
1148 val* var59 /* : String */;
1149 char* var60 /* : NativeString */;
1150 long var61 /* : Int */;
1151 val* var62 /* : String */;
1152 val* var63 /* : String */;
1153 val* var64 /* : Array[Object] */;
1154 long var65 /* : Int */;
1155 val* var66 /* : NativeArray[Object] */;
1156 val* var67 /* : String */;
1157 val* var68 /* : MClassType */;
1158 val* var69 /* : String */;
1159 static val* varonce70;
1160 val* var71 /* : String */;
1161 char* var72 /* : NativeString */;
1162 long var73 /* : Int */;
1163 val* var74 /* : String */;
1164 val* var75 /* : String */;
1165 val* var76 /* : Array[Object] */;
1166 long var77 /* : Int */;
1167 val* var78 /* : NativeArray[Object] */;
1168 val* var79 /* : String */;
1169 val* var80 /* : List[String] */;
1170 val* var_cparams /* var cparams: List[String] */;
1171 short int var81 /* : Bool */;
1172 short int var82 /* : Bool */;
1173 val* var83 /* : MClassType */;
1174 val* var84 /* : String */;
1175 static val* varonce85;
1176 val* var86 /* : String */;
1177 char* var87 /* : NativeString */;
1178 long var88 /* : Int */;
1179 val* var89 /* : String */;
1180 val* var90 /* : Array[Object] */;
1181 long var91 /* : Int */;
1182 val* var92 /* : NativeArray[Object] */;
1183 val* var93 /* : String */;
1184 val* var94 /* : Array[MParameter] */;
1185 val* var95 /* : Iterator[nullable Object] */;
1186 short int var96 /* : Bool */;
1187 val* var97 /* : nullable Object */;
1188 val* var_p /* var p: MParameter */;
1189 val* var98 /* : MType */;
1190 val* var99 /* : MClassType */;
1191 val* var100 /* : MClassType */;
1192 val* var101 /* : MModule */;
1193 short int var102 /* : Bool */;
1194 val* var103 /* : MType */;
1195 val* var_param_mtype /* var param_mtype: MType */;
1196 val* var104 /* : String */;
1197 static val* varonce105;
1198 val* var106 /* : String */;
1199 char* var107 /* : NativeString */;
1200 long var108 /* : Int */;
1201 val* var109 /* : String */;
1202 val* var110 /* : String */;
1203 val* var111 /* : Array[Object] */;
1204 long var112 /* : Int */;
1205 val* var113 /* : NativeArray[Object] */;
1206 val* var114 /* : String */;
1207 val* var115 /* : Array[Object] */;
1208 long var116 /* : Int */;
1209 val* var_ /* var : Array[Object] */;
1210 static val* varonce117;
1211 val* var118 /* : String */;
1212 char* var119 /* : NativeString */;
1213 long var120 /* : Int */;
1214 val* var121 /* : String */;
1215 static val* varonce122;
1216 val* var123 /* : String */;
1217 char* var124 /* : NativeString */;
1218 long var125 /* : Int */;
1219 val* var126 /* : String */;
1220 static val* varonce127;
1221 val* var128 /* : String */;
1222 char* var129 /* : NativeString */;
1223 long var130 /* : Int */;
1224 val* var131 /* : String */;
1225 static val* varonce132;
1226 val* var133 /* : String */;
1227 char* var134 /* : NativeString */;
1228 long var135 /* : Int */;
1229 val* var136 /* : String */;
1230 val* var137 /* : String */;
1231 static val* varonce138;
1232 val* var139 /* : String */;
1233 char* var140 /* : NativeString */;
1234 long var141 /* : Int */;
1235 val* var142 /* : String */;
1236 val* var143 /* : String */;
1237 static val* varonce144;
1238 val* var145 /* : String */;
1239 char* var146 /* : NativeString */;
1240 long var147 /* : Int */;
1241 val* var148 /* : String */;
1242 var1 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__mproperty]))(self) /* mproperty on <self:MExplicitCall>*/;
1243 var_mproperty = var1;
1244 /* <var_mproperty:MProperty> isa MMethod */
1245 cltype = type_model__MMethod.color;
1246 idtype = type_model__MMethod.id;
1247 if(cltype >= var_mproperty->type->table_size) {
1248 var2 = 0;
1249 } else {
1250 var2 = var_mproperty->type->type_table[cltype] == idtype;
1251 }
1252 if (var2){
1253 var3 = ((val* (*)(val*))(var_mproperty->class->vft[COLOR_model__MProperty__intro]))(var_mproperty) /* intro on <var_mproperty:MProperty(MMethod)>*/;
1254 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MMethodDef__msignature]))(var3) /* msignature on <var3:MPropDef(MMethodDef)>*/;
1255 var_signature = var4;
1256 var5 = NULL;
1257 if (var_signature == NULL) {
1258 var6 = 0; /* is null */
1259 } else {
1260 var6 = 1; /* arg is null and recv is not */
1261 }
1262 if (!var6) {
1263 fprintf(stderr, "Runtime error: %s", "Assert failed");
1264 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 202);
1265 show_backtrace(1);
1266 }
1267 var7 = ((short int (*)(val*))(var_mproperty->class->vft[COLOR_model__MMethod__is_init]))(var_mproperty) /* is_init on <var_mproperty:MProperty(MMethod)>*/;
1268 if (var7){
1269 var8 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1270 var9 = ((val* (*)(val*))(var8->class->vft[COLOR_nitni_base__MType__cname]))(var8) /* cname on <var8:MClassType>*/;
1271 var_creturn_type = var9;
1272 } else {
1273 var10 = ((val* (*)(val*))(var_signature->class->vft[COLOR_model__MSignature__return_mtype]))(var_signature) /* return_mtype on <var_signature:nullable MSignature(MSignature)>*/;
1274 var11 = NULL;
1275 if (var10 == NULL) {
1276 var12 = 0; /* is null */
1277 } else {
1278 var12 = 1; /* arg is null and recv is not */
1279 }
1280 if (var12){
1281 var13 = ((val* (*)(val*))(var_signature->class->vft[COLOR_model__MSignature__return_mtype]))(var_signature) /* return_mtype on <var_signature:nullable MSignature(MSignature)>*/;
1282 var_ret_mtype = var13;
1283 var14 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1284 var15 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1285 var16 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__from_mmodule]))(self) /* from_mmodule on <self:MExplicitCall>*/;
1286 var17 = 1;
1287 if (var_ret_mtype == NULL) {
1288 fprintf(stderr, "Runtime error: %s", "Receiver is null");
1289 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 209);
1290 show_backtrace(1);
1291 } else {
1292 var18 = ((val* (*)(val*, val*, val*, val*, short int))(var_ret_mtype->class->vft[COLOR_model__MType__resolve_for]))(var_ret_mtype, var14, var15, var16, var17) /* resolve_for on <var_ret_mtype:nullable MType>*/;
1293 }
1294 var_ret_mtype = var18;
1295 var19 = ((val* (*)(val*))(var_ret_mtype->class->vft[COLOR_nitni_base__MType__cname]))(var_ret_mtype) /* cname on <var_ret_mtype:nullable MType(MType)>*/;
1296 var_creturn_type = var19;
1297 } else {
1298 if (varonce) {
1299 var20 = varonce;
1300 } else {
1301 var21 = "void";
1302 var22 = 4;
1303 var23 = string__NativeString__to_s_with_length(var21, var22);
1304 var20 = var23;
1305 varonce = var20;
1306 }
1307 var_creturn_type = var20;
1308 }
1309 }
1310 var24 = ((short int (*)(val*))(var_mproperty->class->vft[COLOR_model__MMethod__is_init]))(var_mproperty) /* is_init on <var_mproperty:MProperty(MMethod)>*/;
1311 if (var24){
1312 var26 = ((val* (*)(val*))(var_mproperty->class->vft[COLOR_model__MProperty__name]))(var_mproperty) /* name on <var_mproperty:MProperty(MMethod)>*/;
1313 if (varonce27) {
1314 var28 = varonce27;
1315 } else {
1316 var29 = "init";
1317 var30 = 4;
1318 var31 = string__NativeString__to_s_with_length(var29, var30);
1319 var28 = var31;
1320 varonce27 = var28;
1321 }
1322 var32 = ((short int (*)(val*, val*))(var26->class->vft[COLOR_kernel__Object___61d_61d]))(var26, var28) /* == on <var26:String>*/;
1323 if (var32) {
1324 var25 = 1;
1325 } else {
1326 var33 = ((val* (*)(val*))(var_mproperty->class->vft[COLOR_model__MProperty__name]))(var_mproperty) /* name on <var_mproperty:MProperty(MMethod)>*/;
1327 if (varonce34) {
1328 var35 = varonce34;
1329 } else {
1330 var36 = "new";
1331 var37 = 3;
1332 var38 = string__NativeString__to_s_with_length(var36, var37);
1333 var35 = var38;
1334 varonce34 = var35;
1335 }
1336 var39 = ((short int (*)(val*, val*))(var33->class->vft[COLOR_kernel__Object___61d_61d]))(var33, var35) /* == on <var33:String>*/;
1337 var25 = var39;
1338 }
1339 if (var25){
1340 if (varonce40) {
1341 var41 = varonce40;
1342 } else {
1343 var42 = "new_";
1344 var43 = 4;
1345 var44 = string__NativeString__to_s_with_length(var42, var43);
1346 var41 = var44;
1347 varonce40 = var41;
1348 }
1349 var45 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1350 var46 = ((val* (*)(val*))(var45->class->vft[COLOR_nitni_base__MType__mangled_cname]))(var45) /* mangled_cname on <var45:MClassType>*/;
1351 var47 = NEW_array__Array(&type_array__Arraykernel__Object);
1352 { /* var47 = array_instance Array[Object] */
1353 var48 = 2;
1354 var49 = NEW_array__NativeArray(var48, &type_array__NativeArraykernel__Object);
1355 ((struct instance_array__NativeArray*)var49)->values[0] = (val*) var41;
1356 ((struct instance_array__NativeArray*)var49)->values[1] = (val*) var46;
1357 ((void (*)(val*, val*, long))(var47->class->vft[COLOR_array__Array__with_native]))(var47, var49, var48) /* with_native on <var47:Array[Object]>*/;
1358 }
1359 var50 = ((val* (*)(val*))(var47->class->vft[COLOR_string__Object__to_s]))(var47) /* to_s on <var47:Array[Object]>*/;
1360 var_cname = var50;
1361 } else {
1362 if (varonce51) {
1363 var52 = varonce51;
1364 } else {
1365 var53 = "new_";
1366 var54 = 4;
1367 var55 = string__NativeString__to_s_with_length(var53, var54);
1368 var52 = var55;
1369 varonce51 = var52;
1370 }
1371 var56 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1372 var57 = ((val* (*)(val*))(var56->class->vft[COLOR_nitni_base__MType__mangled_cname]))(var56) /* mangled_cname on <var56:MClassType>*/;
1373 if (varonce58) {
1374 var59 = varonce58;
1375 } else {
1376 var60 = "_";
1377 var61 = 1;
1378 var62 = string__NativeString__to_s_with_length(var60, var61);
1379 var59 = var62;
1380 varonce58 = var59;
1381 }
1382 var63 = ((val* (*)(val*))(var_mproperty->class->vft[COLOR_nitni_base__MMethod__short_cname]))(var_mproperty) /* short_cname on <var_mproperty:MProperty(MMethod)>*/;
1383 var64 = NEW_array__Array(&type_array__Arraykernel__Object);
1384 { /* var64 = array_instance Array[Object] */
1385 var65 = 4;
1386 var66 = NEW_array__NativeArray(var65, &type_array__NativeArraykernel__Object);
1387 ((struct instance_array__NativeArray*)var66)->values[0] = (val*) var52;
1388 ((struct instance_array__NativeArray*)var66)->values[1] = (val*) var57;
1389 ((struct instance_array__NativeArray*)var66)->values[2] = (val*) var59;
1390 ((struct instance_array__NativeArray*)var66)->values[3] = (val*) var63;
1391 ((void (*)(val*, val*, long))(var64->class->vft[COLOR_array__Array__with_native]))(var64, var66, var65) /* with_native on <var64:Array[Object]>*/;
1392 }
1393 var67 = ((val* (*)(val*))(var64->class->vft[COLOR_string__Object__to_s]))(var64) /* to_s on <var64:Array[Object]>*/;
1394 var_cname = var67;
1395 }
1396 } else {
1397 var68 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1398 var69 = ((val* (*)(val*))(var68->class->vft[COLOR_nitni_base__MType__mangled_cname]))(var68) /* mangled_cname on <var68:MClassType>*/;
1399 if (varonce70) {
1400 var71 = varonce70;
1401 } else {
1402 var72 = "_";
1403 var73 = 1;
1404 var74 = string__NativeString__to_s_with_length(var72, var73);
1405 var71 = var74;
1406 varonce70 = var71;
1407 }
1408 var75 = ((val* (*)(val*))(var_mproperty->class->vft[COLOR_nitni_base__MMethod__short_cname]))(var_mproperty) /* short_cname on <var_mproperty:MProperty(MMethod)>*/;
1409 var76 = NEW_array__Array(&type_array__Arraykernel__Object);
1410 { /* var76 = array_instance Array[Object] */
1411 var77 = 3;
1412 var78 = NEW_array__NativeArray(var77, &type_array__NativeArraykernel__Object);
1413 ((struct instance_array__NativeArray*)var78)->values[0] = (val*) var69;
1414 ((struct instance_array__NativeArray*)var78)->values[1] = (val*) var71;
1415 ((struct instance_array__NativeArray*)var78)->values[2] = (val*) var75;
1416 ((void (*)(val*, val*, long))(var76->class->vft[COLOR_array__Array__with_native]))(var76, var78, var77) /* with_native on <var76:Array[Object]>*/;
1417 }
1418 var79 = ((val* (*)(val*))(var76->class->vft[COLOR_string__Object__to_s]))(var76) /* to_s on <var76:Array[Object]>*/;
1419 var_cname = var79;
1420 }
1421 var80 = NEW_list__List(&type_list__Liststring__String);
1422 ((void (*)(val*))(var80->class->vft[COLOR_list__List__init]))(var80) /* init on <var80:List[String]>*/;
1423 var_cparams = var80;
1424 var81 = ((short int (*)(val*))(var_mproperty->class->vft[COLOR_model__MMethod__is_init]))(var_mproperty) /* is_init on <var_mproperty:MProperty(MMethod)>*/;
1425 var82 = !var81;
1426 if (var82){
1427 var83 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1428 var84 = ((val* (*)(val*))(var83->class->vft[COLOR_nitni_base__MType__cname]))(var83) /* cname on <var83:MClassType>*/;
1429 if (varonce85) {
1430 var86 = varonce85;
1431 } else {
1432 var87 = " self";
1433 var88 = 5;
1434 var89 = string__NativeString__to_s_with_length(var87, var88);
1435 var86 = var89;
1436 varonce85 = var86;
1437 }
1438 var90 = NEW_array__Array(&type_array__Arraykernel__Object);
1439 { /* var90 = array_instance Array[Object] */
1440 var91 = 2;
1441 var92 = NEW_array__NativeArray(var91, &type_array__NativeArraykernel__Object);
1442 ((struct instance_array__NativeArray*)var92)->values[0] = (val*) var84;
1443 ((struct instance_array__NativeArray*)var92)->values[1] = (val*) var86;
1444 ((void (*)(val*, val*, long))(var90->class->vft[COLOR_array__Array__with_native]))(var90, var92, var91) /* with_native on <var90:Array[Object]>*/;
1445 }
1446 var93 = ((val* (*)(val*))(var90->class->vft[COLOR_string__Object__to_s]))(var90) /* to_s on <var90:Array[Object]>*/;
1447 ((void (*)(val*, val*))(var_cparams->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_cparams, var93) /* add on <var_cparams:List[String]>*/;
1448 } else {
1449 }
1450 var94 = ((val* (*)(val*))(var_signature->class->vft[COLOR_model__MSignature__mparameters]))(var_signature) /* mparameters on <var_signature:nullable MSignature(MSignature)>*/;
1451 var95 = ((val* (*)(val*))(var94->class->vft[COLOR_abstract_collection__Collection__iterator]))(var94) /* iterator on <var94:Array[MParameter]>*/;
1452 for(;;) {
1453 var96 = ((short int (*)(val*))(var95->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var95) /* is_ok on <var95:Iterator[nullable Object]>*/;
1454 if(!var96) break;
1455 var97 = ((val* (*)(val*))(var95->class->vft[COLOR_abstract_collection__Iterator__item]))(var95) /* item on <var95:Iterator[nullable Object]>*/;
1456 var_p = var97;
1457 var98 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MParameter__mtype]))(var_p) /* mtype on <var_p:MParameter>*/;
1458 var99 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1459 var100 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1460 var101 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__from_mmodule]))(self) /* from_mmodule on <self:MExplicitCall>*/;
1461 var102 = 1;
1462 var103 = ((val* (*)(val*, val*, val*, val*, short int))(var98->class->vft[COLOR_model__MType__resolve_for]))(var98, var99, var100, var101, var102) /* resolve_for on <var98:MType>*/;
1463 var_param_mtype = var103;
1464 var104 = ((val* (*)(val*))(var_param_mtype->class->vft[COLOR_nitni_base__MType__cname]))(var_param_mtype) /* cname on <var_param_mtype:MType>*/;
1465 if (varonce105) {
1466 var106 = varonce105;
1467 } else {
1468 var107 = " ";
1469 var108 = 1;
1470 var109 = string__NativeString__to_s_with_length(var107, var108);
1471 var106 = var109;
1472 varonce105 = var106;
1473 }
1474 var110 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MParameter__name]))(var_p) /* name on <var_p:MParameter>*/;
1475 var111 = NEW_array__Array(&type_array__Arraykernel__Object);
1476 { /* var111 = array_instance Array[Object] */
1477 var112 = 3;
1478 var113 = NEW_array__NativeArray(var112, &type_array__NativeArraykernel__Object);
1479 ((struct instance_array__NativeArray*)var113)->values[0] = (val*) var104;
1480 ((struct instance_array__NativeArray*)var113)->values[1] = (val*) var106;
1481 ((struct instance_array__NativeArray*)var113)->values[2] = (val*) var110;
1482 ((void (*)(val*, val*, long))(var111->class->vft[COLOR_array__Array__with_native]))(var111, var113, var112) /* with_native on <var111:Array[Object]>*/;
1483 }
1484 var114 = ((val* (*)(val*))(var111->class->vft[COLOR_string__Object__to_s]))(var111) /* to_s on <var111:Array[Object]>*/;
1485 ((void (*)(val*, val*))(var_cparams->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_cparams, var114) /* add on <var_cparams:List[String]>*/;
1486 CONTINUE_label: (void)0;
1487 ((void (*)(val*))(var95->class->vft[COLOR_abstract_collection__Iterator__next]))(var95) /* next on <var95:Iterator[nullable Object]>*/;
1488 }
1489 BREAK_label: (void)0;
1490 var115 = NEW_array__Array(&type_array__Arraykernel__Object);
1491 var116 = 7;
1492 ((void (*)(val*, long))(var115->class->vft[COLOR_array__Array__with_capacity]))(var115, var116) /* with_capacity on <var115:Array[Object]>*/;
1493 var_ = var115;
1494 if (varonce117) {
1495 var118 = varonce117;
1496 } else {
1497 var119 = "";
1498 var120 = 0;
1499 var121 = string__NativeString__to_s_with_length(var119, var120);
1500 var118 = var121;
1501 varonce117 = var118;
1502 }
1503 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var118) /* add on <var_:Array[Object]>*/;
1504 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_creturn_type) /* add on <var_:Array[Object]>*/;
1505 if (varonce122) {
1506 var123 = varonce122;
1507 } else {
1508 var124 = " ";
1509 var125 = 1;
1510 var126 = string__NativeString__to_s_with_length(var124, var125);
1511 var123 = var126;
1512 varonce122 = var123;
1513 }
1514 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var123) /* add on <var_:Array[Object]>*/;
1515 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_cname) /* add on <var_:Array[Object]>*/;
1516 if (varonce127) {
1517 var128 = varonce127;
1518 } else {
1519 var129 = "( ";
1520 var130 = 2;
1521 var131 = string__NativeString__to_s_with_length(var129, var130);
1522 var128 = var131;
1523 varonce127 = var128;
1524 }
1525 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var128) /* add on <var_:Array[Object]>*/;
1526 if (varonce132) {
1527 var133 = varonce132;
1528 } else {
1529 var134 = ", ";
1530 var135 = 2;
1531 var136 = string__NativeString__to_s_with_length(var134, var135);
1532 var133 = var136;
1533 varonce132 = var133;
1534 }
1535 var137 = ((val* (*)(val*, val*))(var_cparams->class->vft[COLOR_string__Collection__join]))(var_cparams, var133) /* join on <var_cparams:List[String]>*/;
1536 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var137) /* add on <var_:Array[Object]>*/;
1537 if (varonce138) {
1538 var139 = varonce138;
1539 } else {
1540 var140 = " )";
1541 var141 = 2;
1542 var142 = string__NativeString__to_s_with_length(var140, var141);
1543 var139 = var142;
1544 varonce138 = var139;
1545 }
1546 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var139) /* add on <var_:Array[Object]>*/;
1547 var143 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
1548 var = var143;
1549 goto RET_LABEL;
1550 } else {
1551 if (varonce144) {
1552 var145 = varonce144;
1553 } else {
1554 var146 = "Type of callback from foreign code not yet supported.";
1555 var147 = 53;
1556 var148 = string__NativeString__to_s_with_length(var146, var147);
1557 var145 = var148;
1558 varonce144 = var145;
1559 }
1560 ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var145) /* print on <self:MExplicitCall>*/;
1561 fprintf(stderr, "Runtime error: %s", "Aborted");
1562 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 238);
1563 show_backtrace(1);
1564 }
1565 RET_LABEL:;
1566 return var;
1567 }
1568 /* method nitni_callbacks#MExplicitCall#csignature for (self: Object): String */
1569 val* VIRTUAL_nitni_callbacks__MExplicitCall__csignature(val* self) {
1570 val* var /* : String */;
1571 val* var1 /* : String */;
1572 var1 = nitni_callbacks__MExplicitCall__csignature(self);
1573 var = var1;
1574 RET_LABEL:;
1575 return var;
1576 }
1577 /* method nitni_callbacks#MExplicitCall#hash for (self: MExplicitCall): Int */
1578 long nitni_callbacks__MExplicitCall__hash(val* self) {
1579 long var /* : Int */;
1580 val* var1 /* : MClassType */;
1581 long var2 /* : Int */;
1582 long var3 /* : Int */;
1583 val* var4 /* : MProperty */;
1584 long var5 /* : Int */;
1585 long var6 /* : Int */;
1586 long var8 /* : Int */;
1587 long var9 /* : Int */;
1588 long var11 /* : Int */;
1589 var1 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1590 var2 = ((long (*)(val*))(var1->class->vft[COLOR_kernel__Object__hash]))(var1) /* hash on <var1:MClassType>*/;
1591 var3 = 1024;
1592 var4 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__mproperty]))(self) /* mproperty on <self:MExplicitCall>*/;
1593 var5 = ((long (*)(val*))(var4->class->vft[COLOR_kernel__Object__hash]))(var4) /* hash on <var4:MProperty>*/;
1594 { /* Inline kernel#Int#* (var3,var5) */
1595 var8 = var3 * var5;
1596 var6 = var8;
1597 goto RET_LABEL7;
1598 RET_LABEL7:(void)0;
1599 }
1600 { /* Inline kernel#Int#+ (var2,var6) */
1601 var11 = var2 + var6;
1602 var9 = var11;
1603 goto RET_LABEL10;
1604 RET_LABEL10:(void)0;
1605 }
1606 var = var9;
1607 goto RET_LABEL;
1608 RET_LABEL:;
1609 return var;
1610 }
1611 /* method nitni_callbacks#MExplicitCall#hash for (self: Object): Int */
1612 long VIRTUAL_nitni_callbacks__MExplicitCall__hash(val* self) {
1613 long var /* : Int */;
1614 long var1 /* : Int */;
1615 var1 = nitni_callbacks__MExplicitCall__hash(self);
1616 var = var1;
1617 RET_LABEL:;
1618 return var;
1619 }
1620 /* method nitni_callbacks#MExplicitCall#== for (self: MExplicitCall, nullable Object): Bool */
1621 short int nitni_callbacks__MExplicitCall___61d_61d(val* self, val* p0) {
1622 short int var /* : Bool */;
1623 val* var_o /* var o: nullable Object */;
1624 short int var1 /* : Bool */;
1625 short int var2 /* : Bool */;
1626 short int var3 /* : Bool */;
1627 int cltype;
1628 int idtype;
1629 short int var_ /* var : Bool */;
1630 val* var4 /* : MClassType */;
1631 val* var5 /* : MClassType */;
1632 short int var6 /* : Bool */;
1633 short int var_7 /* var : Bool */;
1634 val* var8 /* : MProperty */;
1635 val* var9 /* : MProperty */;
1636 short int var10 /* : Bool */;
1637 var_o = p0;
1638 /* <var_o:nullable Object> isa MExplicitCall */
1639 cltype = type_nitni_callbacks__MExplicitCall.color;
1640 idtype = type_nitni_callbacks__MExplicitCall.id;
1641 if(var_o == NULL) {
1642 var3 = 0;
1643 } else {
1644 if(cltype >= var_o->type->table_size) {
1645 var3 = 0;
1646 } else {
1647 var3 = var_o->type->type_table[cltype] == idtype;
1648 }
1649 }
1650 var_ = var3;
1651 if (var3){
1652 var4 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(self) /* recv_mtype on <self:MExplicitCall>*/;
1653 var5 = ((val* (*)(val*))(var_o->class->vft[COLOR_nitni_callbacks__MExplicitCall__recv_mtype]))(var_o) /* recv_mtype on <var_o:nullable Object(MExplicitCall)>*/;
1654 var6 = ((short int (*)(val*, val*))(var4->class->vft[COLOR_kernel__Object___61d_61d]))(var4, var5) /* == on <var4:MClassType>*/;
1655 var2 = var6;
1656 } else {
1657 var2 = var_;
1658 }
1659 var_7 = var2;
1660 if (var2){
1661 var8 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCall__mproperty]))(self) /* mproperty on <self:MExplicitCall>*/;
1662 var9 = ((val* (*)(val*))(var_o->class->vft[COLOR_nitni_callbacks__MExplicitCall__mproperty]))(var_o) /* mproperty on <var_o:nullable Object(MExplicitCall)>*/;
1663 var10 = ((short int (*)(val*, val*))(var8->class->vft[COLOR_kernel__Object___61d_61d]))(var8, var9) /* == on <var8:MProperty>*/;
1664 var1 = var10;
1665 } else {
1666 var1 = var_7;
1667 }
1668 var = var1;
1669 goto RET_LABEL;
1670 RET_LABEL:;
1671 return var;
1672 }
1673 /* method nitni_callbacks#MExplicitCall#== for (self: Object, nullable Object): Bool */
1674 short int VIRTUAL_nitni_callbacks__MExplicitCall___61d_61d(val* self, val* p0) {
1675 short int var /* : Bool */;
1676 short int var1 /* : Bool */;
1677 var1 = nitni_callbacks__MExplicitCall___61d_61d(self, p0);
1678 var = var1;
1679 RET_LABEL:;
1680 return var;
1681 }
1682 /* method nitni_callbacks#MExplicitCall#init for (self: MExplicitCall, MClassType, MProperty, MModule) */
1683 void nitni_callbacks__MExplicitCall__init(val* self, val* p0, val* p1, val* p2) {
1684 self->attrs[COLOR_nitni_callbacks__MExplicitCall___64drecv_mtype].val = p0; /* @recv_mtype on <self:MExplicitCall> */
1685 self->attrs[COLOR_nitni_callbacks__MExplicitCall___64dmproperty].val = p1; /* @mproperty on <self:MExplicitCall> */
1686 self->attrs[COLOR_nitni_callbacks__MExplicitCall___64dfrom_mmodule].val = p2; /* @from_mmodule on <self:MExplicitCall> */
1687 RET_LABEL:;
1688 }
1689 /* method nitni_callbacks#MExplicitCall#init for (self: Object, MClassType, MProperty, MModule) */
1690 void VIRTUAL_nitni_callbacks__MExplicitCall__init(val* self, val* p0, val* p1, val* p2) {
1691 nitni_callbacks__MExplicitCall__init(self, p0, p1, p2);
1692 RET_LABEL:;
1693 }
1694 /* method nitni_callbacks#MExplicitSuper#from for (self: MExplicitSuper): MPropDef */
1695 val* nitni_callbacks__MExplicitSuper__from(val* self) {
1696 val* var /* : MPropDef */;
1697 val* var1 /* : MPropDef */;
1698 var1 = self->attrs[COLOR_nitni_callbacks__MExplicitSuper___64dfrom].val; /* @from on <self:MExplicitSuper> */
1699 if (var1 == NULL) {
1700 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @from");
1701 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 249);
1702 show_backtrace(1);
1703 }
1704 var = var1;
1705 RET_LABEL:;
1706 return var;
1707 }
1708 /* method nitni_callbacks#MExplicitSuper#from for (self: Object): MPropDef */
1709 val* VIRTUAL_nitni_callbacks__MExplicitSuper__from(val* self) {
1710 val* var /* : MPropDef */;
1711 val* var1 /* : MPropDef */;
1712 var1 = nitni_callbacks__MExplicitSuper__from(self);
1713 var = var1;
1714 RET_LABEL:;
1715 return var;
1716 }
1717 /* method nitni_callbacks#MExplicitSuper#from= for (self: MExplicitSuper, MPropDef) */
1718 void nitni_callbacks__MExplicitSuper__from_61d(val* self, val* p0) {
1719 self->attrs[COLOR_nitni_callbacks__MExplicitSuper___64dfrom].val = p0; /* @from on <self:MExplicitSuper> */
1720 RET_LABEL:;
1721 }
1722 /* method nitni_callbacks#MExplicitSuper#from= for (self: Object, MPropDef) */
1723 void VIRTUAL_nitni_callbacks__MExplicitSuper__from_61d(val* self, val* p0) {
1724 nitni_callbacks__MExplicitSuper__from_61d(self, p0);
1725 RET_LABEL:;
1726 }
1727 /* method nitni_callbacks#MExplicitSuper#hash for (self: MExplicitSuper): Int */
1728 long nitni_callbacks__MExplicitSuper__hash(val* self) {
1729 long var /* : Int */;
1730 val* var1 /* : MPropDef */;
1731 long var2 /* : Int */;
1732 var1 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitSuper__from]))(self) /* from on <self:MExplicitSuper>*/;
1733 var2 = ((long (*)(val*))(var1->class->vft[COLOR_kernel__Object__hash]))(var1) /* hash on <var1:MPropDef>*/;
1734 var = var2;
1735 goto RET_LABEL;
1736 RET_LABEL:;
1737 return var;
1738 }
1739 /* method nitni_callbacks#MExplicitSuper#hash for (self: Object): Int */
1740 long VIRTUAL_nitni_callbacks__MExplicitSuper__hash(val* self) {
1741 long var /* : Int */;
1742 long var1 /* : Int */;
1743 var1 = nitni_callbacks__MExplicitSuper__hash(self);
1744 var = var1;
1745 RET_LABEL:;
1746 return var;
1747 }
1748 /* method nitni_callbacks#MExplicitSuper#== for (self: MExplicitSuper, nullable Object): Bool */
1749 short int nitni_callbacks__MExplicitSuper___61d_61d(val* self, val* p0) {
1750 short int var /* : Bool */;
1751 val* var_o /* var o: nullable Object */;
1752 short int var1 /* : Bool */;
1753 short int var2 /* : Bool */;
1754 int cltype;
1755 int idtype;
1756 short int var_ /* var : Bool */;
1757 val* var3 /* : MPropDef */;
1758 val* var4 /* : MPropDef */;
1759 short int var5 /* : Bool */;
1760 var_o = p0;
1761 /* <var_o:nullable Object> isa MExplicitSuper */
1762 cltype = type_nitni_callbacks__MExplicitSuper.color;
1763 idtype = type_nitni_callbacks__MExplicitSuper.id;
1764 if(var_o == NULL) {
1765 var2 = 0;
1766 } else {
1767 if(cltype >= var_o->type->table_size) {
1768 var2 = 0;
1769 } else {
1770 var2 = var_o->type->type_table[cltype] == idtype;
1771 }
1772 }
1773 var_ = var2;
1774 if (var2){
1775 var3 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitSuper__from]))(self) /* from on <self:MExplicitSuper>*/;
1776 var4 = ((val* (*)(val*))(var_o->class->vft[COLOR_nitni_callbacks__MExplicitSuper__from]))(var_o) /* from on <var_o:nullable Object(MExplicitSuper)>*/;
1777 var5 = ((short int (*)(val*, val*))(var3->class->vft[COLOR_kernel__Object___61d_61d]))(var3, var4) /* == on <var3:MPropDef>*/;
1778 var1 = var5;
1779 } else {
1780 var1 = var_;
1781 }
1782 var = var1;
1783 goto RET_LABEL;
1784 RET_LABEL:;
1785 return var;
1786 }
1787 /* method nitni_callbacks#MExplicitSuper#== for (self: Object, nullable Object): Bool */
1788 short int VIRTUAL_nitni_callbacks__MExplicitSuper___61d_61d(val* self, val* p0) {
1789 short int var /* : Bool */;
1790 short int var1 /* : Bool */;
1791 var1 = nitni_callbacks__MExplicitSuper___61d_61d(self, p0);
1792 var = var1;
1793 RET_LABEL:;
1794 return var;
1795 }
1796 /* method nitni_callbacks#MExplicitSuper#init for (self: MExplicitSuper, MPropDef) */
1797 void nitni_callbacks__MExplicitSuper__init(val* self, val* p0) {
1798 self->attrs[COLOR_nitni_callbacks__MExplicitSuper___64dfrom].val = p0; /* @from on <self:MExplicitSuper> */
1799 RET_LABEL:;
1800 }
1801 /* method nitni_callbacks#MExplicitSuper#init for (self: Object, MPropDef) */
1802 void VIRTUAL_nitni_callbacks__MExplicitSuper__init(val* self, val* p0) {
1803 nitni_callbacks__MExplicitSuper__init(self, p0);
1804 RET_LABEL:;
1805 }
1806 /* method nitni_callbacks#MExplicitCast#from for (self: MExplicitCast): MType */
1807 val* nitni_callbacks__MExplicitCast__from(val* self) {
1808 val* var /* : MType */;
1809 val* var1 /* : MType */;
1810 var1 = self->attrs[COLOR_nitni_callbacks__MExplicitCast___64dfrom].val; /* @from on <self:MExplicitCast> */
1811 if (var1 == NULL) {
1812 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @from");
1813 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 258);
1814 show_backtrace(1);
1815 }
1816 var = var1;
1817 RET_LABEL:;
1818 return var;
1819 }
1820 /* method nitni_callbacks#MExplicitCast#from for (self: Object): MType */
1821 val* VIRTUAL_nitni_callbacks__MExplicitCast__from(val* self) {
1822 val* var /* : MType */;
1823 val* var1 /* : MType */;
1824 var1 = nitni_callbacks__MExplicitCast__from(self);
1825 var = var1;
1826 RET_LABEL:;
1827 return var;
1828 }
1829 /* method nitni_callbacks#MExplicitCast#from= for (self: MExplicitCast, MType) */
1830 void nitni_callbacks__MExplicitCast__from_61d(val* self, val* p0) {
1831 self->attrs[COLOR_nitni_callbacks__MExplicitCast___64dfrom].val = p0; /* @from on <self:MExplicitCast> */
1832 RET_LABEL:;
1833 }
1834 /* method nitni_callbacks#MExplicitCast#from= for (self: Object, MType) */
1835 void VIRTUAL_nitni_callbacks__MExplicitCast__from_61d(val* self, val* p0) {
1836 nitni_callbacks__MExplicitCast__from_61d(self, p0);
1837 RET_LABEL:;
1838 }
1839 /* method nitni_callbacks#MExplicitCast#to for (self: MExplicitCast): MType */
1840 val* nitni_callbacks__MExplicitCast__to(val* self) {
1841 val* var /* : MType */;
1842 val* var1 /* : MType */;
1843 var1 = self->attrs[COLOR_nitni_callbacks__MExplicitCast___64dto].val; /* @to on <self:MExplicitCast> */
1844 if (var1 == NULL) {
1845 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @to");
1846 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 259);
1847 show_backtrace(1);
1848 }
1849 var = var1;
1850 RET_LABEL:;
1851 return var;
1852 }
1853 /* method nitni_callbacks#MExplicitCast#to for (self: Object): MType */
1854 val* VIRTUAL_nitni_callbacks__MExplicitCast__to(val* self) {
1855 val* var /* : MType */;
1856 val* var1 /* : MType */;
1857 var1 = nitni_callbacks__MExplicitCast__to(self);
1858 var = var1;
1859 RET_LABEL:;
1860 return var;
1861 }
1862 /* method nitni_callbacks#MExplicitCast#to= for (self: MExplicitCast, MType) */
1863 void nitni_callbacks__MExplicitCast__to_61d(val* self, val* p0) {
1864 self->attrs[COLOR_nitni_callbacks__MExplicitCast___64dto].val = p0; /* @to on <self:MExplicitCast> */
1865 RET_LABEL:;
1866 }
1867 /* method nitni_callbacks#MExplicitCast#to= for (self: Object, MType) */
1868 void VIRTUAL_nitni_callbacks__MExplicitCast__to_61d(val* self, val* p0) {
1869 nitni_callbacks__MExplicitCast__to_61d(self, p0);
1870 RET_LABEL:;
1871 }
1872 /* method nitni_callbacks#MExplicitCast#check_cname for (self: MExplicitCast): String */
1873 val* nitni_callbacks__MExplicitCast__check_cname(val* self) {
1874 val* var /* : String */;
1875 val* var1 /* : Array[Object] */;
1876 long var2 /* : Int */;
1877 val* var_ /* var : Array[Object] */;
1878 static val* varonce;
1879 val* var3 /* : String */;
1880 char* var4 /* : NativeString */;
1881 long var5 /* : Int */;
1882 val* var6 /* : String */;
1883 val* var7 /* : MType */;
1884 val* var8 /* : String */;
1885 static val* varonce9;
1886 val* var10 /* : String */;
1887 char* var11 /* : NativeString */;
1888 long var12 /* : Int */;
1889 val* var13 /* : String */;
1890 val* var14 /* : MType */;
1891 val* var15 /* : String */;
1892 static val* varonce16;
1893 val* var17 /* : String */;
1894 char* var18 /* : NativeString */;
1895 long var19 /* : Int */;
1896 val* var20 /* : String */;
1897 val* var21 /* : String */;
1898 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
1899 var2 = 5;
1900 ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
1901 var_ = var1;
1902 if (varonce) {
1903 var3 = varonce;
1904 } else {
1905 var4 = "";
1906 var5 = 0;
1907 var6 = string__NativeString__to_s_with_length(var4, var5);
1908 var3 = var6;
1909 varonce = var3;
1910 }
1911 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var3) /* add on <var_:Array[Object]>*/;
1912 var7 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCast__from]))(self) /* from on <self:MExplicitCast>*/;
1913 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_nitni_base__MType__mangled_cname]))(var7) /* mangled_cname on <var7:MType>*/;
1914 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var8) /* add on <var_:Array[Object]>*/;
1915 if (varonce9) {
1916 var10 = varonce9;
1917 } else {
1918 var11 = "_is_a_";
1919 var12 = 6;
1920 var13 = string__NativeString__to_s_with_length(var11, var12);
1921 var10 = var13;
1922 varonce9 = var10;
1923 }
1924 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var10) /* add on <var_:Array[Object]>*/;
1925 var14 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCast__to]))(self) /* to on <self:MExplicitCast>*/;
1926 var15 = ((val* (*)(val*))(var14->class->vft[COLOR_nitni_base__MType__mangled_cname]))(var14) /* mangled_cname on <var14:MType>*/;
1927 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var15) /* add on <var_:Array[Object]>*/;
1928 if (varonce16) {
1929 var17 = varonce16;
1930 } else {
1931 var18 = "";
1932 var19 = 0;
1933 var20 = string__NativeString__to_s_with_length(var18, var19);
1934 var17 = var20;
1935 varonce16 = var17;
1936 }
1937 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var17) /* add on <var_:Array[Object]>*/;
1938 var21 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
1939 var = var21;
1940 goto RET_LABEL;
1941 RET_LABEL:;
1942 return var;
1943 }
1944 /* method nitni_callbacks#MExplicitCast#check_cname for (self: Object): String */
1945 val* VIRTUAL_nitni_callbacks__MExplicitCast__check_cname(val* self) {
1946 val* var /* : String */;
1947 val* var1 /* : String */;
1948 var1 = nitni_callbacks__MExplicitCast__check_cname(self);
1949 var = var1;
1950 RET_LABEL:;
1951 return var;
1952 }
1953 /* method nitni_callbacks#MExplicitCast#cast_cname for (self: MExplicitCast): String */
1954 val* nitni_callbacks__MExplicitCast__cast_cname(val* self) {
1955 val* var /* : String */;
1956 val* var1 /* : Array[Object] */;
1957 long var2 /* : Int */;
1958 val* var_ /* var : Array[Object] */;
1959 static val* varonce;
1960 val* var3 /* : String */;
1961 char* var4 /* : NativeString */;
1962 long var5 /* : Int */;
1963 val* var6 /* : String */;
1964 val* var7 /* : MType */;
1965 val* var8 /* : String */;
1966 static val* varonce9;
1967 val* var10 /* : String */;
1968 char* var11 /* : NativeString */;
1969 long var12 /* : Int */;
1970 val* var13 /* : String */;
1971 val* var14 /* : MType */;
1972 val* var15 /* : String */;
1973 static val* varonce16;
1974 val* var17 /* : String */;
1975 char* var18 /* : NativeString */;
1976 long var19 /* : Int */;
1977 val* var20 /* : String */;
1978 val* var21 /* : String */;
1979 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
1980 var2 = 5;
1981 ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
1982 var_ = var1;
1983 if (varonce) {
1984 var3 = varonce;
1985 } else {
1986 var4 = "";
1987 var5 = 0;
1988 var6 = string__NativeString__to_s_with_length(var4, var5);
1989 var3 = var6;
1990 varonce = var3;
1991 }
1992 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var3) /* add on <var_:Array[Object]>*/;
1993 var7 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCast__from]))(self) /* from on <self:MExplicitCast>*/;
1994 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_nitni_base__MType__mangled_cname]))(var7) /* mangled_cname on <var7:MType>*/;
1995 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var8) /* add on <var_:Array[Object]>*/;
1996 if (varonce9) {
1997 var10 = varonce9;
1998 } else {
1999 var11 = "_as_";
2000 var12 = 4;
2001 var13 = string__NativeString__to_s_with_length(var11, var12);
2002 var10 = var13;
2003 varonce9 = var10;
2004 }
2005 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var10) /* add on <var_:Array[Object]>*/;
2006 var14 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCast__to]))(self) /* to on <self:MExplicitCast>*/;
2007 var15 = ((val* (*)(val*))(var14->class->vft[COLOR_nitni_base__MType__mangled_cname]))(var14) /* mangled_cname on <var14:MType>*/;
2008 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var15) /* add on <var_:Array[Object]>*/;
2009 if (varonce16) {
2010 var17 = varonce16;
2011 } else {
2012 var18 = "";
2013 var19 = 0;
2014 var20 = string__NativeString__to_s_with_length(var18, var19);
2015 var17 = var20;
2016 varonce16 = var17;
2017 }
2018 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var17) /* add on <var_:Array[Object]>*/;
2019 var21 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
2020 var = var21;
2021 goto RET_LABEL;
2022 RET_LABEL:;
2023 return var;
2024 }
2025 /* method nitni_callbacks#MExplicitCast#cast_cname for (self: Object): String */
2026 val* VIRTUAL_nitni_callbacks__MExplicitCast__cast_cname(val* self) {
2027 val* var /* : String */;
2028 val* var1 /* : String */;
2029 var1 = nitni_callbacks__MExplicitCast__cast_cname(self);
2030 var = var1;
2031 RET_LABEL:;
2032 return var;
2033 }
2034 /* method nitni_callbacks#MExplicitCast#hash for (self: MExplicitCast): Int */
2035 long nitni_callbacks__MExplicitCast__hash(val* self) {
2036 long var /* : Int */;
2037 val* var1 /* : MType */;
2038 long var2 /* : Int */;
2039 long var3 /* : Int */;
2040 val* var4 /* : MType */;
2041 long var5 /* : Int */;
2042 long var6 /* : Int */;
2043 long var8 /* : Int */;
2044 long var9 /* : Int */;
2045 long var11 /* : Int */;
2046 var1 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCast__from]))(self) /* from on <self:MExplicitCast>*/;
2047 var2 = ((long (*)(val*))(var1->class->vft[COLOR_kernel__Object__hash]))(var1) /* hash on <var1:MType>*/;
2048 var3 = 1024;
2049 var4 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCast__to]))(self) /* to on <self:MExplicitCast>*/;
2050 var5 = ((long (*)(val*))(var4->class->vft[COLOR_kernel__Object__hash]))(var4) /* hash on <var4:MType>*/;
2051 { /* Inline kernel#Int#* (var3,var5) */
2052 var8 = var3 * var5;
2053 var6 = var8;
2054 goto RET_LABEL7;
2055 RET_LABEL7:(void)0;
2056 }
2057 { /* Inline kernel#Int#+ (var2,var6) */
2058 var11 = var2 + var6;
2059 var9 = var11;
2060 goto RET_LABEL10;
2061 RET_LABEL10:(void)0;
2062 }
2063 var = var9;
2064 goto RET_LABEL;
2065 RET_LABEL:;
2066 return var;
2067 }
2068 /* method nitni_callbacks#MExplicitCast#hash for (self: Object): Int */
2069 long VIRTUAL_nitni_callbacks__MExplicitCast__hash(val* self) {
2070 long var /* : Int */;
2071 long var1 /* : Int */;
2072 var1 = nitni_callbacks__MExplicitCast__hash(self);
2073 var = var1;
2074 RET_LABEL:;
2075 return var;
2076 }
2077 /* method nitni_callbacks#MExplicitCast#== for (self: MExplicitCast, nullable Object): Bool */
2078 short int nitni_callbacks__MExplicitCast___61d_61d(val* self, val* p0) {
2079 short int var /* : Bool */;
2080 val* var_o /* var o: nullable Object */;
2081 short int var1 /* : Bool */;
2082 short int var2 /* : Bool */;
2083 short int var3 /* : Bool */;
2084 int cltype;
2085 int idtype;
2086 short int var_ /* var : Bool */;
2087 val* var4 /* : MType */;
2088 val* var5 /* : MType */;
2089 short int var6 /* : Bool */;
2090 short int var_7 /* var : Bool */;
2091 val* var8 /* : MType */;
2092 val* var9 /* : MType */;
2093 short int var10 /* : Bool */;
2094 var_o = p0;
2095 /* <var_o:nullable Object> isa MExplicitCast */
2096 cltype = type_nitni_callbacks__MExplicitCast.color;
2097 idtype = type_nitni_callbacks__MExplicitCast.id;
2098 if(var_o == NULL) {
2099 var3 = 0;
2100 } else {
2101 if(cltype >= var_o->type->table_size) {
2102 var3 = 0;
2103 } else {
2104 var3 = var_o->type->type_table[cltype] == idtype;
2105 }
2106 }
2107 var_ = var3;
2108 if (var3){
2109 var4 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCast__from]))(self) /* from on <self:MExplicitCast>*/;
2110 var5 = ((val* (*)(val*))(var_o->class->vft[COLOR_nitni_callbacks__MExplicitCast__from]))(var_o) /* from on <var_o:nullable Object(MExplicitCast)>*/;
2111 var6 = ((short int (*)(val*, val*))(var4->class->vft[COLOR_kernel__Object___61d_61d]))(var4, var5) /* == on <var4:MType>*/;
2112 var2 = var6;
2113 } else {
2114 var2 = var_;
2115 }
2116 var_7 = var2;
2117 if (var2){
2118 var8 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__MExplicitCast__to]))(self) /* to on <self:MExplicitCast>*/;
2119 var9 = ((val* (*)(val*))(var_o->class->vft[COLOR_nitni_callbacks__MExplicitCast__to]))(var_o) /* to on <var_o:nullable Object(MExplicitCast)>*/;
2120 var10 = ((short int (*)(val*, val*))(var8->class->vft[COLOR_kernel__Object___61d_61d]))(var8, var9) /* == on <var8:MType>*/;
2121 var1 = var10;
2122 } else {
2123 var1 = var_7;
2124 }
2125 var = var1;
2126 goto RET_LABEL;
2127 RET_LABEL:;
2128 return var;
2129 }
2130 /* method nitni_callbacks#MExplicitCast#== for (self: Object, nullable Object): Bool */
2131 short int VIRTUAL_nitni_callbacks__MExplicitCast___61d_61d(val* self, val* p0) {
2132 short int var /* : Bool */;
2133 short int var1 /* : Bool */;
2134 var1 = nitni_callbacks__MExplicitCast___61d_61d(self, p0);
2135 var = var1;
2136 RET_LABEL:;
2137 return var;
2138 }
2139 /* method nitni_callbacks#MExplicitCast#init for (self: MExplicitCast, MType, MType) */
2140 void nitni_callbacks__MExplicitCast__init(val* self, val* p0, val* p1) {
2141 self->attrs[COLOR_nitni_callbacks__MExplicitCast___64dfrom].val = p0; /* @from on <self:MExplicitCast> */
2142 self->attrs[COLOR_nitni_callbacks__MExplicitCast___64dto].val = p1; /* @to on <self:MExplicitCast> */
2143 RET_LABEL:;
2144 }
2145 /* method nitni_callbacks#MExplicitCast#init for (self: Object, MType, MType) */
2146 void VIRTUAL_nitni_callbacks__MExplicitCast__init(val* self, val* p0, val* p1) {
2147 nitni_callbacks__MExplicitCast__init(self, p0, p1);
2148 RET_LABEL:;
2149 }
2150 /* method nitni_callbacks#AExternCall#verify_and_collect for (self: AExternCall, AExternPropdef, ForeignCallbackSet, ToolContext) */
2151 void nitni_callbacks__AExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
2152 const char* var_class_name;
2153 var_class_name = self == NULL ? "null" : self->type->name;
2154 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "verify_and_collect", var_class_name);
2155 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 270);
2156 show_backtrace(1);
2157 RET_LABEL:;
2158 }
2159 /* method nitni_callbacks#AExternCall#verify_and_collect for (self: Object, AExternPropdef, ForeignCallbackSet, ToolContext) */
2160 void VIRTUAL_nitni_callbacks__AExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
2161 nitni_callbacks__AExternCall__verify_and_collect(self, p0, p1, p2);
2162 RET_LABEL:;
2163 }
2164 /* method nitni_callbacks#ALocalPropExternCall#verify_and_collect for (self: ALocalPropExternCall, AExternPropdef, ForeignCallbackSet, ToolContext) */
2165 void nitni_callbacks__ALocalPropExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
2166 val* var_npropdef /* var npropdef: AExternPropdef */;
2167 val* var_callback_set /* var callback_set: ForeignCallbackSet */;
2168 val* var_toolcontext /* var toolcontext: ToolContext */;
2169 val* var /* : nullable MPropDef */;
2170 val* var1 /* : MClassDef */;
2171 val* var2 /* : MModule */;
2172 val* var_mmodule /* var mmodule: MModule */;
2173 val* var3 /* : nullable MPropDef */;
2174 val* var4 /* : MClassDef */;
2175 val* var5 /* : MClassType */;
2176 val* var_mclass_type /* var mclass_type: MClassType */;
2177 val* var6 /* : AMethid */;
2178 val* var7 /* : String */;
2179 val* var_m_name /* var m_name: String */;
2180 val* var8 /* : ModelBuilder */;
2181 val* var9 /* : nullable MProperty */;
2182 val* var_method /* var method: nullable MProperty */;
2183 val* var10 /* : null */;
2184 short int var11 /* : Bool */;
2185 val* var12 /* : Location */;
2186 static val* varonce;
2187 val* var13 /* : String */;
2188 char* var14 /* : NativeString */;
2189 long var15 /* : Int */;
2190 val* var16 /* : String */;
2191 static val* varonce17;
2192 val* var18 /* : String */;
2193 char* var19 /* : NativeString */;
2194 long var20 /* : Int */;
2195 val* var21 /* : String */;
2196 val* var22 /* : Array[Object] */;
2197 long var23 /* : Int */;
2198 val* var24 /* : NativeArray[Object] */;
2199 val* var25 /* : String */;
2200 val* var26 /* : MExplicitCall */;
2201 val* var_explicit_call /* var explicit_call: MExplicitCall */;
2202 val* var27 /* : Set[MExplicitCall] */;
2203 var_npropdef = p0;
2204 var_callback_set = p1;
2205 var_toolcontext = p2;
2206 var = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:AExternPropdef>*/;
2207 if (var == NULL) {
2208 fprintf(stderr, "Runtime error: %s", "Receiver is null");
2209 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 278);
2210 show_backtrace(1);
2211 } else {
2212 var1 = ((val* (*)(val*))(var->class->vft[COLOR_model__MPropDef__mclassdef]))(var) /* mclassdef on <var:nullable MPropDef(nullable MMethodDef)>*/;
2213 }
2214 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MClassDef__mmodule]))(var1) /* mmodule on <var1:MClassDef>*/;
2215 var_mmodule = var2;
2216 var3 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:AExternPropdef>*/;
2217 if (var3 == NULL) {
2218 fprintf(stderr, "Runtime error: %s", "Receiver is null");
2219 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 279);
2220 show_backtrace(1);
2221 } else {
2222 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MPropDef__mclassdef]))(var3) /* mclassdef on <var3:nullable MPropDef(nullable MMethodDef)>*/;
2223 }
2224 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_model__MClassDef__bound_mtype]))(var4) /* bound_mtype on <var4:MClassDef>*/;
2225 var_mclass_type = var5;
2226 var6 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ALocalPropExternCall__n_methid]))(self) /* n_methid on <self:ALocalPropExternCall>*/;
2227 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_modelize_property__Prod__collect_text]))(var6) /* collect_text on <var6:AMethid>*/;
2228 var_m_name = var7;
2229 var8 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var_toolcontext) /* modelbuilder on <var_toolcontext:ToolContext>*/;
2230 var9 = ((val* (*)(val*, val*, val*, val*, val*))(var8->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name2]))(var8, self, var_mmodule, var_mclass_type, var_m_name) /* try_get_mproperty_by_name2 on <var8:ModelBuilder>*/;
2231 var_method = var9;
2232 var10 = NULL;
2233 if (var_method == NULL) {
2234 var11 = 1; /* is null */
2235 } else {
2236 var11 = 0; /* arg is null but recv is not */
2237 }
2238 if (var11){
2239 var12 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:ALocalPropExternCall>*/;
2240 if (varonce) {
2241 var13 = varonce;
2242 } else {
2243 var14 = "Local method ";
2244 var15 = 13;
2245 var16 = string__NativeString__to_s_with_length(var14, var15);
2246 var13 = var16;
2247 varonce = var13;
2248 }
2249 if (varonce17) {
2250 var18 = varonce17;
2251 } else {
2252 var19 = " not found.";
2253 var20 = 11;
2254 var21 = string__NativeString__to_s_with_length(var19, var20);
2255 var18 = var21;
2256 varonce17 = var18;
2257 }
2258 var22 = NEW_array__Array(&type_array__Arraykernel__Object);
2259 { /* var22 = array_instance Array[Object] */
2260 var23 = 3;
2261 var24 = NEW_array__NativeArray(var23, &type_array__NativeArraykernel__Object);
2262 ((struct instance_array__NativeArray*)var24)->values[0] = (val*) var13;
2263 ((struct instance_array__NativeArray*)var24)->values[1] = (val*) var_m_name;
2264 ((struct instance_array__NativeArray*)var24)->values[2] = (val*) var18;
2265 ((void (*)(val*, val*, long))(var22->class->vft[COLOR_array__Array__with_native]))(var22, var24, var23) /* with_native on <var22:Array[Object]>*/;
2266 }
2267 var25 = ((val* (*)(val*))(var22->class->vft[COLOR_string__Object__to_s]))(var22) /* to_s on <var22:Array[Object]>*/;
2268 ((void (*)(val*, val*, val*))(var_toolcontext->class->vft[COLOR_toolcontext__ToolContext__error]))(var_toolcontext, var12, var25) /* error on <var_toolcontext:ToolContext>*/;
2269 goto RET_LABEL;
2270 } else {
2271 }
2272 var26 = NEW_nitni_callbacks__MExplicitCall(&type_nitni_callbacks__MExplicitCall);
2273 ((void (*)(val*, val*, val*, val*))(var26->class->vft[COLOR_nitni_callbacks__MExplicitCall__init]))(var26, var_mclass_type, var_method, var_mmodule) /* init on <var26:MExplicitCall>*/;
2274 var_explicit_call = var26;
2275 var27 = ((val* (*)(val*))(var_callback_set->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__callbacks]))(var_callback_set) /* callbacks on <var_callback_set:ForeignCallbackSet>*/;
2276 ((void (*)(val*, val*))(var27->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var27, var_explicit_call) /* add on <var27:Set[MExplicitCall]>*/;
2277 ((void (*)(val*, val*, val*))(var_explicit_call->class->vft[COLOR_nitni_callbacks__MExplicitCall__fill_type_for]))(var_explicit_call, var_callback_set, var_mmodule) /* fill_type_for on <var_explicit_call:MExplicitCall>*/;
2278 RET_LABEL:;
2279 }
2280 /* method nitni_callbacks#ALocalPropExternCall#verify_and_collect for (self: Object, AExternPropdef, ForeignCallbackSet, ToolContext) */
2281 void VIRTUAL_nitni_callbacks__ALocalPropExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
2282 nitni_callbacks__ALocalPropExternCall__verify_and_collect(self, p0, p1, p2);
2283 RET_LABEL:;
2284 }
2285 /* method nitni_callbacks#AFullPropExternCall#verify_and_collect for (self: AFullPropExternCall, AExternPropdef, ForeignCallbackSet, ToolContext) */
2286 void nitni_callbacks__AFullPropExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
2287 val* var_npropdef /* var npropdef: AExternPropdef */;
2288 val* var_callback_set /* var callback_set: ForeignCallbackSet */;
2289 val* var_toolcontext /* var toolcontext: ToolContext */;
2290 val* var /* : nullable MPropDef */;
2291 val* var1 /* : MClassDef */;
2292 val* var2 /* : MModule */;
2293 val* var_mmodule /* var mmodule: MModule */;
2294 val* var3 /* : nullable MPropDef */;
2295 val* var4 /* : MClassDef */;
2296 val* var_mclassdef /* var mclassdef: MClassDef */;
2297 val* var5 /* : ModelBuilder */;
2298 val* var6 /* : HashMap[MClassDef, AClassdef] */;
2299 val* var7 /* : nullable Object */;
2300 val* var_nclassdef /* var nclassdef: AClassdef */;
2301 val* var8 /* : MClassType */;
2302 val* var_mclass_type /* var mclass_type: MClassType */;
2303 val* var9 /* : ModelBuilder */;
2304 val* var10 /* : AType */;
2305 val* var11 /* : nullable MType */;
2306 val* var_mtype /* var mtype: nullable MType */;
2307 val* var12 /* : null */;
2308 short int var13 /* : Bool */;
2309 short int var14 /* : Bool */;
2310 short int var15 /* : Bool */;
2311 int cltype;
2312 int idtype;
2313 short int var_ /* var : Bool */;
2314 short int var16 /* : Bool */;
2315 int cltype17;
2316 int idtype18;
2317 val* var19 /* : MType */;
2318 short int var20 /* : Bool */;
2319 int cltype21;
2320 int idtype22;
2321 val* var23 /* : Location */;
2322 static val* varonce;
2323 val* var24 /* : String */;
2324 char* var25 /* : NativeString */;
2325 long var26 /* : Int */;
2326 val* var27 /* : String */;
2327 val* var28 /* : AType */;
2328 val* var29 /* : String */;
2329 static val* varonce30;
2330 val* var31 /* : String */;
2331 char* var32 /* : NativeString */;
2332 long var33 /* : Int */;
2333 val* var34 /* : String */;
2334 val* var35 /* : Array[Object] */;
2335 long var36 /* : Int */;
2336 val* var37 /* : NativeArray[Object] */;
2337 val* var38 /* : String */;
2338 val* var39 /* : AMethid */;
2339 val* var40 /* : String */;
2340 val* var_m_name /* var m_name: String */;
2341 val* var41 /* : ModelBuilder */;
2342 val* var42 /* : nullable MProperty */;
2343 val* var_method /* var method: nullable MProperty */;
2344 val* var43 /* : null */;
2345 short int var44 /* : Bool */;
2346 val* var45 /* : Location */;
2347 static val* varonce46;
2348 val* var47 /* : String */;
2349 char* var48 /* : NativeString */;
2350 long var49 /* : Int */;
2351 val* var50 /* : String */;
2352 static val* varonce51;
2353 val* var52 /* : String */;
2354 char* var53 /* : NativeString */;
2355 long var54 /* : Int */;
2356 val* var55 /* : String */;
2357 val* var56 /* : AType */;
2358 val* var57 /* : String */;
2359 static val* varonce58;
2360 val* var59 /* : String */;
2361 char* var60 /* : NativeString */;
2362 long var61 /* : Int */;
2363 val* var62 /* : String */;
2364 val* var63 /* : Array[Object] */;
2365 long var64 /* : Int */;
2366 val* var65 /* : NativeArray[Object] */;
2367 val* var66 /* : String */;
2368 val* var67 /* : MExplicitCall */;
2369 short int var68 /* : Bool */;
2370 int cltype69;
2371 int idtype70;
2372 const char* var_class_name;
2373 val* var_explicit_call /* var explicit_call: MExplicitCall */;
2374 val* var71 /* : Set[MExplicitCall] */;
2375 var_npropdef = p0;
2376 var_callback_set = p1;
2377 var_toolcontext = p2;
2378 var = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:AExternPropdef>*/;
2379 if (var == NULL) {
2380 fprintf(stderr, "Runtime error: %s", "Receiver is null");
2381 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 299);
2382 show_backtrace(1);
2383 } else {
2384 var1 = ((val* (*)(val*))(var->class->vft[COLOR_model__MPropDef__mclassdef]))(var) /* mclassdef on <var:nullable MPropDef(nullable MMethodDef)>*/;
2385 }
2386 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MClassDef__mmodule]))(var1) /* mmodule on <var1:MClassDef>*/;
2387 var_mmodule = var2;
2388 var3 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:AExternPropdef>*/;
2389 if (var3 == NULL) {
2390 fprintf(stderr, "Runtime error: %s", "Receiver is null");
2391 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 300);
2392 show_backtrace(1);
2393 } else {
2394 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MPropDef__mclassdef]))(var3) /* mclassdef on <var3:nullable MPropDef(nullable MMethodDef)>*/;
2395 }
2396 var_mclassdef = var4;
2397 var5 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var_toolcontext) /* modelbuilder on <var_toolcontext:ToolContext>*/;
2398 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_modelize_class__ModelBuilder__mclassdef2nclassdef]))(var5) /* mclassdef2nclassdef on <var5:ModelBuilder>*/;
2399 var7 = ((val* (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var6, var_mclassdef) /* [] on <var6:HashMap[MClassDef, AClassdef]>*/;
2400 var_nclassdef = var7;
2401 var8 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_mclassdef) /* bound_mtype on <var_mclassdef:MClassDef>*/;
2402 var_mclass_type = var8;
2403 var9 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var_toolcontext) /* modelbuilder on <var_toolcontext:ToolContext>*/;
2404 var10 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AFullPropExternCall__n_type]))(self) /* n_type on <self:AFullPropExternCall>*/;
2405 var11 = ((val* (*)(val*, val*, val*))(var9->class->vft[COLOR_modelize_class__ModelBuilder__resolve_mtype]))(var9, var_nclassdef, var10) /* resolve_mtype on <var9:ModelBuilder>*/;
2406 var_mtype = var11;
2407 var12 = NULL;
2408 if (var_mtype == NULL) {
2409 var13 = 1; /* is null */
2410 } else {
2411 var13 = 0; /* arg is null but recv is not */
2412 }
2413 if (var13){
2414 goto RET_LABEL;
2415 } else {
2416 }
2417 /* <var_mtype:nullable MType(MType)> isa MParameterType */
2418 cltype = type_model__MParameterType.color;
2419 idtype = type_model__MParameterType.id;
2420 if(cltype >= var_mtype->type->table_size) {
2421 var15 = 0;
2422 } else {
2423 var15 = var_mtype->type->type_table[cltype] == idtype;
2424 }
2425 var_ = var15;
2426 if (var15){
2427 var14 = var_;
2428 } else {
2429 /* <var_mtype:nullable MType(MType)> isa MVirtualType */
2430 cltype17 = type_model__MVirtualType.color;
2431 idtype18 = type_model__MVirtualType.id;
2432 if(cltype17 >= var_mtype->type->table_size) {
2433 var16 = 0;
2434 } else {
2435 var16 = var_mtype->type->type_table[cltype17] == idtype18;
2436 }
2437 var14 = var16;
2438 }
2439 if (var14){
2440 if (var_mtype == NULL) {
2441 fprintf(stderr, "Runtime error: %s", "Receiver is null");
2442 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 308);
2443 show_backtrace(1);
2444 } else {
2445 var19 = ((val* (*)(val*, val*, val*))(var_mtype->class->vft[COLOR_model__MType__anchor_to]))(var_mtype, var_mmodule, var_mclass_type) /* anchor_to on <var_mtype:nullable MType>*/;
2446 }
2447 var_mtype = var19;
2448 } else {
2449 }
2450 /* <var_mtype:nullable MType(MType)> isa MNullableType */
2451 cltype21 = type_model__MNullableType.color;
2452 idtype22 = type_model__MNullableType.id;
2453 if(cltype21 >= var_mtype->type->table_size) {
2454 var20 = 0;
2455 } else {
2456 var20 = var_mtype->type->type_table[cltype21] == idtype22;
2457 }
2458 if (var20){
2459 var23 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AFullPropExternCall>*/;
2460 if (varonce) {
2461 var24 = varonce;
2462 } else {
2463 var25 = "Type ";
2464 var26 = 5;
2465 var27 = string__NativeString__to_s_with_length(var25, var26);
2466 var24 = var27;
2467 varonce = var24;
2468 }
2469 var28 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AFullPropExternCall__n_type]))(self) /* n_type on <self:AFullPropExternCall>*/;
2470 var29 = ((val* (*)(val*))(var28->class->vft[COLOR_modelize_property__Prod__collect_text]))(var28) /* collect_text on <var28:AType>*/;
2471 if (varonce30) {
2472 var31 = varonce30;
2473 } else {
2474 var32 = " is nullable and thus cannot be the receiver.";
2475 var33 = 45;
2476 var34 = string__NativeString__to_s_with_length(var32, var33);
2477 var31 = var34;
2478 varonce30 = var31;
2479 }
2480 var35 = NEW_array__Array(&type_array__Arraykernel__Object);
2481 { /* var35 = array_instance Array[Object] */
2482 var36 = 3;
2483 var37 = NEW_array__NativeArray(var36, &type_array__NativeArraykernel__Object);
2484 ((struct instance_array__NativeArray*)var37)->values[0] = (val*) var24;
2485 ((struct instance_array__NativeArray*)var37)->values[1] = (val*) var29;
2486 ((struct instance_array__NativeArray*)var37)->values[2] = (val*) var31;
2487 ((void (*)(val*, val*, long))(var35->class->vft[COLOR_array__Array__with_native]))(var35, var37, var36) /* with_native on <var35:Array[Object]>*/;
2488 }
2489 var38 = ((val* (*)(val*))(var35->class->vft[COLOR_string__Object__to_s]))(var35) /* to_s on <var35:Array[Object]>*/;
2490 ((void (*)(val*, val*, val*))(var_toolcontext->class->vft[COLOR_toolcontext__ToolContext__error]))(var_toolcontext, var23, var38) /* error on <var_toolcontext:ToolContext>*/;
2491 goto RET_LABEL;
2492 } else {
2493 }
2494 var39 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AFullPropExternCall__n_methid]))(self) /* n_methid on <self:AFullPropExternCall>*/;
2495 var40 = ((val* (*)(val*))(var39->class->vft[COLOR_modelize_property__Prod__collect_text]))(var39) /* collect_text on <var39:AMethid>*/;
2496 var_m_name = var40;
2497 var41 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var_toolcontext) /* modelbuilder on <var_toolcontext:ToolContext>*/;
2498 var42 = ((val* (*)(val*, val*, val*, val*, val*))(var41->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name2]))(var41, self, var_mmodule, var_mtype, var_m_name) /* try_get_mproperty_by_name2 on <var41:ModelBuilder>*/;
2499 var_method = var42;
2500 var43 = NULL;
2501 if (var_method == NULL) {
2502 var44 = 1; /* is null */
2503 } else {
2504 var44 = 0; /* arg is null but recv is not */
2505 }
2506 if (var44){
2507 var45 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AFullPropExternCall>*/;
2508 if (varonce46) {
2509 var47 = varonce46;
2510 } else {
2511 var48 = "Method ";
2512 var49 = 7;
2513 var50 = string__NativeString__to_s_with_length(var48, var49);
2514 var47 = var50;
2515 varonce46 = var47;
2516 }
2517 if (varonce51) {
2518 var52 = varonce51;
2519 } else {
2520 var53 = " not found in ";
2521 var54 = 14;
2522 var55 = string__NativeString__to_s_with_length(var53, var54);
2523 var52 = var55;
2524 varonce51 = var52;
2525 }
2526 var56 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AFullPropExternCall__n_type]))(self) /* n_type on <self:AFullPropExternCall>*/;
2527 var57 = ((val* (*)(val*))(var56->class->vft[COLOR_modelize_property__Prod__collect_text]))(var56) /* collect_text on <var56:AType>*/;
2528 if (varonce58) {
2529 var59 = varonce58;
2530 } else {
2531 var60 = ".";
2532 var61 = 1;
2533 var62 = string__NativeString__to_s_with_length(var60, var61);
2534 var59 = var62;
2535 varonce58 = var59;
2536 }
2537 var63 = NEW_array__Array(&type_array__Arraykernel__Object);
2538 { /* var63 = array_instance Array[Object] */
2539 var64 = 5;
2540 var65 = NEW_array__NativeArray(var64, &type_array__NativeArraykernel__Object);
2541 ((struct instance_array__NativeArray*)var65)->values[0] = (val*) var47;
2542 ((struct instance_array__NativeArray*)var65)->values[1] = (val*) var_m_name;
2543 ((struct instance_array__NativeArray*)var65)->values[2] = (val*) var52;
2544 ((struct instance_array__NativeArray*)var65)->values[3] = (val*) var57;
2545 ((struct instance_array__NativeArray*)var65)->values[4] = (val*) var59;
2546 ((void (*)(val*, val*, long))(var63->class->vft[COLOR_array__Array__with_native]))(var63, var65, var64) /* with_native on <var63:Array[Object]>*/;
2547 }
2548 var66 = ((val* (*)(val*))(var63->class->vft[COLOR_string__Object__to_s]))(var63) /* to_s on <var63:Array[Object]>*/;
2549 ((void (*)(val*, val*, val*))(var_toolcontext->class->vft[COLOR_toolcontext__ToolContext__error]))(var_toolcontext, var45, var66) /* error on <var_toolcontext:ToolContext>*/;
2550 goto RET_LABEL;
2551 } else {
2552 }
2553 var67 = NEW_nitni_callbacks__MExplicitCall(&type_nitni_callbacks__MExplicitCall);
2554 /* <var_mtype:nullable MType(MType)> isa MClassType */
2555 cltype69 = type_model__MClassType.color;
2556 idtype70 = type_model__MClassType.id;
2557 if(cltype69 >= var_mtype->type->table_size) {
2558 var68 = 0;
2559 } else {
2560 var68 = var_mtype->type->type_table[cltype69] == idtype70;
2561 }
2562 if (!var68) {
2563 var_class_name = var_mtype == NULL ? "null" : var_mtype->type->name;
2564 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
2565 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 325);
2566 show_backtrace(1);
2567 }
2568 ((void (*)(val*, val*, val*, val*))(var67->class->vft[COLOR_nitni_callbacks__MExplicitCall__init]))(var67, var_mtype, var_method, var_mmodule) /* init on <var67:MExplicitCall>*/;
2569 var_explicit_call = var67;
2570 var71 = ((val* (*)(val*))(var_callback_set->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__callbacks]))(var_callback_set) /* callbacks on <var_callback_set:ForeignCallbackSet>*/;
2571 ((void (*)(val*, val*))(var71->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var71, var_explicit_call) /* add on <var71:Set[MExplicitCall]>*/;
2572 ((void (*)(val*, val*, val*))(var_explicit_call->class->vft[COLOR_nitni_callbacks__MExplicitCall__fill_type_for]))(var_explicit_call, var_callback_set, var_mmodule) /* fill_type_for on <var_explicit_call:MExplicitCall>*/;
2573 RET_LABEL:;
2574 }
2575 /* method nitni_callbacks#AFullPropExternCall#verify_and_collect for (self: Object, AExternPropdef, ForeignCallbackSet, ToolContext) */
2576 void VIRTUAL_nitni_callbacks__AFullPropExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
2577 nitni_callbacks__AFullPropExternCall__verify_and_collect(self, p0, p1, p2);
2578 RET_LABEL:;
2579 }
2580 /* method nitni_callbacks#AInitPropExternCall#verify_and_collect for (self: AInitPropExternCall, AExternPropdef, ForeignCallbackSet, ToolContext) */
2581 void nitni_callbacks__AInitPropExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
2582 val* var_npropdef /* var npropdef: AExternPropdef */;
2583 val* var_callback_set /* var callback_set: ForeignCallbackSet */;
2584 val* var_toolcontext /* var toolcontext: ToolContext */;
2585 val* var /* : nullable MPropDef */;
2586 val* var1 /* : MClassDef */;
2587 val* var2 /* : MModule */;
2588 val* var_mmodule /* var mmodule: MModule */;
2589 val* var3 /* : nullable MPropDef */;
2590 val* var4 /* : MClassDef */;
2591 val* var_mclassdef /* var mclassdef: MClassDef */;
2592 val* var5 /* : ModelBuilder */;
2593 val* var6 /* : HashMap[MClassDef, AClassdef] */;
2594 val* var7 /* : nullable Object */;
2595 val* var_nclassdef /* var nclassdef: AClassdef */;
2596 val* var8 /* : ModelBuilder */;
2597 val* var9 /* : AType */;
2598 val* var10 /* : nullable MType */;
2599 val* var_mtype /* var mtype: nullable MType */;
2600 val* var11 /* : null */;
2601 short int var12 /* : Bool */;
2602 short int var13 /* : Bool */;
2603 int cltype;
2604 int idtype;
2605 short int var14 /* : Bool */;
2606 val* var15 /* : Location */;
2607 static val* varonce;
2608 val* var16 /* : String */;
2609 char* var17 /* : NativeString */;
2610 long var18 /* : Int */;
2611 val* var19 /* : String */;
2612 val* var20 /* : AType */;
2613 val* var21 /* : String */;
2614 static val* varonce22;
2615 val* var23 /* : String */;
2616 char* var24 /* : NativeString */;
2617 long var25 /* : Int */;
2618 val* var26 /* : String */;
2619 val* var27 /* : Array[Object] */;
2620 long var28 /* : Int */;
2621 val* var29 /* : NativeArray[Object] */;
2622 val* var30 /* : String */;
2623 static val* varonce31;
2624 val* var32 /* : String */;
2625 char* var33 /* : NativeString */;
2626 long var34 /* : Int */;
2627 val* var35 /* : String */;
2628 val* var_meth_name /* var meth_name: String */;
2629 val* var36 /* : ModelBuilder */;
2630 val* var37 /* : nullable MProperty */;
2631 val* var_meth /* var meth: nullable MProperty */;
2632 val* var38 /* : null */;
2633 short int var39 /* : Bool */;
2634 val* var40 /* : Location */;
2635 static val* varonce41;
2636 val* var42 /* : String */;
2637 char* var43 /* : NativeString */;
2638 long var44 /* : Int */;
2639 val* var45 /* : String */;
2640 static val* varonce46;
2641 val* var47 /* : String */;
2642 char* var48 /* : NativeString */;
2643 long var49 /* : Int */;
2644 val* var50 /* : String */;
2645 val* var51 /* : AType */;
2646 val* var52 /* : String */;
2647 static val* varonce53;
2648 val* var54 /* : String */;
2649 char* var55 /* : NativeString */;
2650 long var56 /* : Int */;
2651 val* var57 /* : String */;
2652 val* var58 /* : Array[Object] */;
2653 long var59 /* : Int */;
2654 val* var60 /* : NativeArray[Object] */;
2655 val* var61 /* : String */;
2656 val* var62 /* : MExplicitCall */;
2657 val* var_explicit_call /* var explicit_call: MExplicitCall */;
2658 val* var63 /* : Set[MExplicitCall] */;
2659 var_npropdef = p0;
2660 var_callback_set = p1;
2661 var_toolcontext = p2;
2662 var = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:AExternPropdef>*/;
2663 if (var == NULL) {
2664 fprintf(stderr, "Runtime error: %s", "Receiver is null");
2665 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 334);
2666 show_backtrace(1);
2667 } else {
2668 var1 = ((val* (*)(val*))(var->class->vft[COLOR_model__MPropDef__mclassdef]))(var) /* mclassdef on <var:nullable MPropDef(nullable MMethodDef)>*/;
2669 }
2670 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MClassDef__mmodule]))(var1) /* mmodule on <var1:MClassDef>*/;
2671 var_mmodule = var2;
2672 var3 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:AExternPropdef>*/;
2673 if (var3 == NULL) {
2674 fprintf(stderr, "Runtime error: %s", "Receiver is null");
2675 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 335);
2676 show_backtrace(1);
2677 } else {
2678 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MPropDef__mclassdef]))(var3) /* mclassdef on <var3:nullable MPropDef(nullable MMethodDef)>*/;
2679 }
2680 var_mclassdef = var4;
2681 var5 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var_toolcontext) /* modelbuilder on <var_toolcontext:ToolContext>*/;
2682 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_modelize_class__ModelBuilder__mclassdef2nclassdef]))(var5) /* mclassdef2nclassdef on <var5:ModelBuilder>*/;
2683 var7 = ((val* (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var6, var_mclassdef) /* [] on <var6:HashMap[MClassDef, AClassdef]>*/;
2684 var_nclassdef = var7;
2685 var8 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var_toolcontext) /* modelbuilder on <var_toolcontext:ToolContext>*/;
2686 var9 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AInitPropExternCall__n_type]))(self) /* n_type on <self:AInitPropExternCall>*/;
2687 var10 = ((val* (*)(val*, val*, val*))(var8->class->vft[COLOR_modelize_class__ModelBuilder__resolve_mtype]))(var8, var_nclassdef, var9) /* resolve_mtype on <var8:ModelBuilder>*/;
2688 var_mtype = var10;
2689 var11 = NULL;
2690 if (var_mtype == NULL) {
2691 var12 = 1; /* is null */
2692 } else {
2693 var12 = 0; /* arg is null but recv is not */
2694 }
2695 if (var12){
2696 goto RET_LABEL;
2697 } else {
2698 }
2699 /* <var_mtype:nullable MType(MType)> isa MClassType */
2700 cltype = type_model__MClassType.color;
2701 idtype = type_model__MClassType.id;
2702 if(cltype >= var_mtype->type->table_size) {
2703 var13 = 0;
2704 } else {
2705 var13 = var_mtype->type->type_table[cltype] == idtype;
2706 }
2707 var14 = !var13;
2708 if (var14){
2709 var15 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AInitPropExternCall>*/;
2710 if (varonce) {
2711 var16 = varonce;
2712 } else {
2713 var17 = "Type ";
2714 var18 = 5;
2715 var19 = string__NativeString__to_s_with_length(var17, var18);
2716 var16 = var19;
2717 varonce = var16;
2718 }
2719 var20 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AInitPropExternCall__n_type]))(self) /* n_type on <self:AInitPropExternCall>*/;
2720 var21 = ((val* (*)(val*))(var20->class->vft[COLOR_modelize_property__Prod__collect_text]))(var20) /* collect_text on <var20:AType>*/;
2721 if (varonce22) {
2722 var23 = varonce22;
2723 } else {
2724 var24 = " is not a class and thus cannot be used to instanciate a new instance.";
2725 var25 = 70;
2726 var26 = string__NativeString__to_s_with_length(var24, var25);
2727 var23 = var26;
2728 varonce22 = var23;
2729 }
2730 var27 = NEW_array__Array(&type_array__Arraykernel__Object);
2731 { /* var27 = array_instance Array[Object] */
2732 var28 = 3;
2733 var29 = NEW_array__NativeArray(var28, &type_array__NativeArraykernel__Object);
2734 ((struct instance_array__NativeArray*)var29)->values[0] = (val*) var16;
2735 ((struct instance_array__NativeArray*)var29)->values[1] = (val*) var21;
2736 ((struct instance_array__NativeArray*)var29)->values[2] = (val*) var23;
2737 ((void (*)(val*, val*, long))(var27->class->vft[COLOR_array__Array__with_native]))(var27, var29, var28) /* with_native on <var27:Array[Object]>*/;
2738 }
2739 var30 = ((val* (*)(val*))(var27->class->vft[COLOR_string__Object__to_s]))(var27) /* to_s on <var27:Array[Object]>*/;
2740 ((void (*)(val*, val*, val*))(var_toolcontext->class->vft[COLOR_toolcontext__ToolContext__error]))(var_toolcontext, var15, var30) /* error on <var_toolcontext:ToolContext>*/;
2741 goto RET_LABEL;
2742 } else {
2743 }
2744 if (varonce31) {
2745 var32 = varonce31;
2746 } else {
2747 var33 = "init";
2748 var34 = 4;
2749 var35 = string__NativeString__to_s_with_length(var33, var34);
2750 var32 = var35;
2751 varonce31 = var32;
2752 }
2753 var_meth_name = var32;
2754 var36 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var_toolcontext) /* modelbuilder on <var_toolcontext:ToolContext>*/;
2755 var37 = ((val* (*)(val*, val*, val*, val*, val*))(var36->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name2]))(var36, self, var_mmodule, var_mtype, var_meth_name) /* try_get_mproperty_by_name2 on <var36:ModelBuilder>*/;
2756 var_meth = var37;
2757 var38 = NULL;
2758 if (var_meth == NULL) {
2759 var39 = 1; /* is null */
2760 } else {
2761 var39 = 0; /* arg is null but recv is not */
2762 }
2763 if (var39){
2764 var40 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AInitPropExternCall>*/;
2765 if (varonce41) {
2766 var42 = varonce41;
2767 } else {
2768 var43 = "Method ";
2769 var44 = 7;
2770 var45 = string__NativeString__to_s_with_length(var43, var44);
2771 var42 = var45;
2772 varonce41 = var42;
2773 }
2774 if (varonce46) {
2775 var47 = varonce46;
2776 } else {
2777 var48 = " not found in ";
2778 var49 = 14;
2779 var50 = string__NativeString__to_s_with_length(var48, var49);
2780 var47 = var50;
2781 varonce46 = var47;
2782 }
2783 var51 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AInitPropExternCall__n_type]))(self) /* n_type on <self:AInitPropExternCall>*/;
2784 var52 = ((val* (*)(val*))(var51->class->vft[COLOR_modelize_property__Prod__collect_text]))(var51) /* collect_text on <var51:AType>*/;
2785 if (varonce53) {
2786 var54 = varonce53;
2787 } else {
2788 var55 = ".";
2789 var56 = 1;
2790 var57 = string__NativeString__to_s_with_length(var55, var56);
2791 var54 = var57;
2792 varonce53 = var54;
2793 }
2794 var58 = NEW_array__Array(&type_array__Arraykernel__Object);
2795 { /* var58 = array_instance Array[Object] */
2796 var59 = 5;
2797 var60 = NEW_array__NativeArray(var59, &type_array__NativeArraykernel__Object);
2798 ((struct instance_array__NativeArray*)var60)->values[0] = (val*) var42;
2799 ((struct instance_array__NativeArray*)var60)->values[1] = (val*) var_meth_name;
2800 ((struct instance_array__NativeArray*)var60)->values[2] = (val*) var47;
2801 ((struct instance_array__NativeArray*)var60)->values[3] = (val*) var52;
2802 ((struct instance_array__NativeArray*)var60)->values[4] = (val*) var54;
2803 ((void (*)(val*, val*, long))(var58->class->vft[COLOR_array__Array__with_native]))(var58, var60, var59) /* with_native on <var58:Array[Object]>*/;
2804 }
2805 var61 = ((val* (*)(val*))(var58->class->vft[COLOR_string__Object__to_s]))(var58) /* to_s on <var58:Array[Object]>*/;
2806 ((void (*)(val*, val*, val*))(var_toolcontext->class->vft[COLOR_toolcontext__ToolContext__error]))(var_toolcontext, var40, var61) /* error on <var_toolcontext:ToolContext>*/;
2807 goto RET_LABEL;
2808 } else {
2809 }
2810 var62 = NEW_nitni_callbacks__MExplicitCall(&type_nitni_callbacks__MExplicitCall);
2811 ((void (*)(val*, val*, val*, val*))(var62->class->vft[COLOR_nitni_callbacks__MExplicitCall__init]))(var62, var_mtype, var_meth, var_mmodule) /* init on <var62:MExplicitCall>*/;
2812 var_explicit_call = var62;
2813 var63 = ((val* (*)(val*))(var_callback_set->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__callbacks]))(var_callback_set) /* callbacks on <var_callback_set:ForeignCallbackSet>*/;
2814 ((void (*)(val*, val*))(var63->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var63, var_explicit_call) /* add on <var63:Set[MExplicitCall]>*/;
2815 ((void (*)(val*, val*, val*))(var_explicit_call->class->vft[COLOR_nitni_callbacks__MExplicitCall__fill_type_for]))(var_explicit_call, var_callback_set, var_mmodule) /* fill_type_for on <var_explicit_call:MExplicitCall>*/;
2816 RET_LABEL:;
2817 }
2818 /* method nitni_callbacks#AInitPropExternCall#verify_and_collect for (self: Object, AExternPropdef, ForeignCallbackSet, ToolContext) */
2819 void VIRTUAL_nitni_callbacks__AInitPropExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
2820 nitni_callbacks__AInitPropExternCall__verify_and_collect(self, p0, p1, p2);
2821 RET_LABEL:;
2822 }
2823 /* method nitni_callbacks#ASuperExternCall#verify_and_collect for (self: ASuperExternCall, AExternPropdef, ForeignCallbackSet, ToolContext) */
2824 void nitni_callbacks__ASuperExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
2825 val* var_npropdef /* var npropdef: AExternPropdef */;
2826 val* var_callback_set /* var callback_set: ForeignCallbackSet */;
2827 val* var_toolcontext /* var toolcontext: ToolContext */;
2828 val* var /* : Set[MExplicitSuper] */;
2829 val* var1 /* : MExplicitSuper */;
2830 val* var2 /* : nullable MPropDef */;
2831 val* var3 /* : Set[MType] */;
2832 val* var4 /* : nullable MPropDef */;
2833 val* var5 /* : MClassDef */;
2834 val* var6 /* : MClass */;
2835 val* var7 /* : MClassType */;
2836 val* var8 /* : nullable MPropDef */;
2837 short int var9 /* : Bool */;
2838 var_npropdef = p0;
2839 var_callback_set = p1;
2840 var_toolcontext = p2;
2841 var = ((val* (*)(val*))(var_callback_set->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__supers]))(var_callback_set) /* supers on <var_callback_set:ForeignCallbackSet>*/;
2842 var1 = NEW_nitni_callbacks__MExplicitSuper(&type_nitni_callbacks__MExplicitSuper);
2843 var2 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:AExternPropdef>*/;
2844 if (var2 == NULL) {
2845 fprintf(stderr, "Runtime error: %s", "Cast failed");
2846 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 363);
2847 show_backtrace(1);
2848 }
2849 ((void (*)(val*, val*))(var1->class->vft[COLOR_nitni_callbacks__MExplicitSuper__init]))(var1, var2) /* init on <var1:MExplicitSuper>*/;
2850 ((void (*)(val*, val*))(var->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var, var1) /* add on <var:Set[MExplicitSuper]>*/;
2851 var3 = ((val* (*)(val*))(var_callback_set->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__types]))(var_callback_set) /* types on <var_callback_set:ForeignCallbackSet>*/;
2852 var4 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:AExternPropdef>*/;
2853 if (var4 == NULL) {
2854 fprintf(stderr, "Runtime error: %s", "Receiver is null");
2855 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 364);
2856 show_backtrace(1);
2857 } else {
2858 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_model__MPropDef__mclassdef]))(var4) /* mclassdef on <var4:nullable MPropDef(nullable MMethodDef)>*/;
2859 }
2860 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_model__MClassDef__mclass]))(var5) /* mclass on <var5:MClassDef>*/;
2861 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_model__MClass__mclass_type]))(var6) /* mclass_type on <var6:MClass>*/;
2862 ((void (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var3, var7) /* add on <var3:Set[MType]>*/;
2863 var8 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:AExternPropdef>*/;
2864 var9 = 1;
2865 if (var8 == NULL) {
2866 fprintf(stderr, "Runtime error: %s", "Receiver is null");
2867 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 365);
2868 show_backtrace(1);
2869 } else {
2870 ((void (*)(val*, short int))(var8->class->vft[COLOR_modelize_property__MPropDef__has_supercall_61d]))(var8, var9) /* has_supercall= on <var8:nullable MPropDef(nullable MMethodDef)>*/;
2871 }
2872 RET_LABEL:;
2873 }
2874 /* method nitni_callbacks#ASuperExternCall#verify_and_collect for (self: Object, AExternPropdef, ForeignCallbackSet, ToolContext) */
2875 void VIRTUAL_nitni_callbacks__ASuperExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
2876 nitni_callbacks__ASuperExternCall__verify_and_collect(self, p0, p1, p2);
2877 RET_LABEL:;
2878 }
2879 /* method nitni_callbacks#ACastExternCall#from_mtype for (self: ACastExternCall): MType */
2880 val* nitni_callbacks__ACastExternCall__from_mtype(val* self) {
2881 val* var /* : MType */;
2882 const char* var_class_name;
2883 var_class_name = self == NULL ? "null" : self->type->name;
2884 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "from_mtype", var_class_name);
2885 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 370);
2886 show_backtrace(1);
2887 RET_LABEL:;
2888 return var;
2889 }
2890 /* method nitni_callbacks#ACastExternCall#from_mtype for (self: Object): MType */
2891 val* VIRTUAL_nitni_callbacks__ACastExternCall__from_mtype(val* self) {
2892 val* var /* : MType */;
2893 val* var1 /* : MType */;
2894 var1 = nitni_callbacks__ACastExternCall__from_mtype(self);
2895 var = var1;
2896 RET_LABEL:;
2897 return var;
2898 }
2899 /* method nitni_callbacks#ACastExternCall#to_mtype for (self: ACastExternCall): MType */
2900 val* nitni_callbacks__ACastExternCall__to_mtype(val* self) {
2901 val* var /* : MType */;
2902 const char* var_class_name;
2903 var_class_name = self == NULL ? "null" : self->type->name;
2904 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "to_mtype", var_class_name);
2905 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 371);
2906 show_backtrace(1);
2907 RET_LABEL:;
2908 return var;
2909 }
2910 /* method nitni_callbacks#ACastExternCall#to_mtype for (self: Object): MType */
2911 val* VIRTUAL_nitni_callbacks__ACastExternCall__to_mtype(val* self) {
2912 val* var /* : MType */;
2913 val* var1 /* : MType */;
2914 var1 = nitni_callbacks__ACastExternCall__to_mtype(self);
2915 var = var1;
2916 RET_LABEL:;
2917 return var;
2918 }
2919 /* method nitni_callbacks#ACastExternCall#verify_and_collect for (self: ACastExternCall, AExternPropdef, ForeignCallbackSet, ToolContext) */
2920 void nitni_callbacks__ACastExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
2921 val* var_npropdef /* var npropdef: AExternPropdef */;
2922 val* var_callback_set /* var callback_set: ForeignCallbackSet */;
2923 val* var_toolcontext /* var toolcontext: ToolContext */;
2924 val* var /* : MType */;
2925 val* var_from /* var from: MType */;
2926 val* var1 /* : MType */;
2927 val* var_to /* var to: MType */;
2928 val* var2 /* : Set[MType] */;
2929 val* var3 /* : Set[MType] */;
2930 val* var4 /* : Set[MExplicitCast] */;
2931 val* var5 /* : MExplicitCast */;
2932 var_npropdef = p0;
2933 var_callback_set = p1;
2934 var_toolcontext = p2;
2935 var = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__ACastExternCall__from_mtype]))(self) /* from_mtype on <self:ACastExternCall>*/;
2936 var_from = var;
2937 var1 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_callbacks__ACastExternCall__to_mtype]))(self) /* to_mtype on <self:ACastExternCall>*/;
2938 var_to = var1;
2939 var2 = ((val* (*)(val*))(var_callback_set->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__types]))(var_callback_set) /* types on <var_callback_set:ForeignCallbackSet>*/;
2940 ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var2, var_from) /* add on <var2:Set[MType]>*/;
2941 var3 = ((val* (*)(val*))(var_callback_set->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__types]))(var_callback_set) /* types on <var_callback_set:ForeignCallbackSet>*/;
2942 ((void (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var3, var_to) /* add on <var3:Set[MType]>*/;
2943 var4 = ((val* (*)(val*))(var_callback_set->class->vft[COLOR_nitni_callbacks__ForeignCallbackSet__casts]))(var_callback_set) /* casts on <var_callback_set:ForeignCallbackSet>*/;
2944 var5 = NEW_nitni_callbacks__MExplicitCast(&type_nitni_callbacks__MExplicitCast);
2945 ((void (*)(val*, val*, val*))(var5->class->vft[COLOR_nitni_callbacks__MExplicitCast__init]))(var5, var_from, var_to) /* init on <var5:MExplicitCast>*/;
2946 ((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var4, var5) /* add on <var4:Set[MExplicitCast]>*/;
2947 RET_LABEL:;
2948 }
2949 /* method nitni_callbacks#ACastExternCall#verify_and_collect for (self: Object, AExternPropdef, ForeignCallbackSet, ToolContext) */
2950 void VIRTUAL_nitni_callbacks__ACastExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
2951 nitni_callbacks__ACastExternCall__verify_and_collect(self, p0, p1, p2);
2952 RET_LABEL:;
2953 }
2954 /* method nitni_callbacks#ACastAsExternCall#from_mtype for (self: ACastAsExternCall): MType */
2955 val* nitni_callbacks__ACastAsExternCall__from_mtype(val* self) {
2956 val* var /* : MType */;
2957 val* var1 /* : AType */;
2958 val* var2 /* : nullable MType */;
2959 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACastAsExternCall__n_from_type]))(self) /* n_from_type on <self:ACastAsExternCall>*/;
2960 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_modelize_class__AType__mtype]))(var1) /* mtype on <var1:AType>*/;
2961 if (var2 == NULL) {
2962 fprintf(stderr, "Runtime error: %s", "Cast failed");
2963 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 386);
2964 show_backtrace(1);
2965 }
2966 var = var2;
2967 goto RET_LABEL;
2968 RET_LABEL:;
2969 return var;
2970 }
2971 /* method nitni_callbacks#ACastAsExternCall#from_mtype for (self: Object): MType */
2972 val* VIRTUAL_nitni_callbacks__ACastAsExternCall__from_mtype(val* self) {
2973 val* var /* : MType */;
2974 val* var1 /* : MType */;
2975 var1 = nitni_callbacks__ACastAsExternCall__from_mtype(self);
2976 var = var1;
2977 RET_LABEL:;
2978 return var;
2979 }
2980 /* method nitni_callbacks#ACastAsExternCall#to_mtype for (self: ACastAsExternCall): MType */
2981 val* nitni_callbacks__ACastAsExternCall__to_mtype(val* self) {
2982 val* var /* : MType */;
2983 val* var1 /* : AType */;
2984 val* var2 /* : nullable MType */;
2985 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACastAsExternCall__n_to_type]))(self) /* n_to_type on <self:ACastAsExternCall>*/;
2986 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_modelize_class__AType__mtype]))(var1) /* mtype on <var1:AType>*/;
2987 if (var2 == NULL) {
2988 fprintf(stderr, "Runtime error: %s", "Cast failed");
2989 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 387);
2990 show_backtrace(1);
2991 }
2992 var = var2;
2993 goto RET_LABEL;
2994 RET_LABEL:;
2995 return var;
2996 }
2997 /* method nitni_callbacks#ACastAsExternCall#to_mtype for (self: Object): MType */
2998 val* VIRTUAL_nitni_callbacks__ACastAsExternCall__to_mtype(val* self) {
2999 val* var /* : MType */;
3000 val* var1 /* : MType */;
3001 var1 = nitni_callbacks__ACastAsExternCall__to_mtype(self);
3002 var = var1;
3003 RET_LABEL:;
3004 return var;
3005 }
3006 /* method nitni_callbacks#ACastAsExternCall#verify_and_collect for (self: ACastAsExternCall, AExternPropdef, ForeignCallbackSet, ToolContext) */
3007 void nitni_callbacks__ACastAsExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
3008 val* var_npropdef /* var npropdef: AExternPropdef */;
3009 val* var_callback_set /* var callback_set: ForeignCallbackSet */;
3010 val* var_toolcontext /* var toolcontext: ToolContext */;
3011 val* var /* : nullable ANode */;
3012 short int var1 /* : Bool */;
3013 int cltype;
3014 int idtype;
3015 const char* var_class_name;
3016 val* var_parent_aclassdef /* var parent_aclassdef: AClassdef */;
3017 val* var2 /* : ModelBuilder */;
3018 val* var3 /* : AType */;
3019 short int var4 /* : Bool */;
3020 val* var5 /* : nullable MType */;
3021 val* var6 /* : ModelBuilder */;
3022 val* var7 /* : AType */;
3023 short int var8 /* : Bool */;
3024 val* var9 /* : nullable MType */;
3025 var_npropdef = p0;
3026 var_callback_set = p1;
3027 var_toolcontext = p2;
3028 var = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_parser_nodes__ANode__parent]))(var_npropdef) /* parent on <var_npropdef:AExternPropdef>*/;
3029 /* <var:nullable ANode> isa AClassdef */
3030 cltype = type_parser_nodes__AClassdef.color;
3031 idtype = type_parser_nodes__AClassdef.id;
3032 if(var == NULL) {
3033 var1 = 0;
3034 } else {
3035 if(cltype >= var->type->table_size) {
3036 var1 = 0;
3037 } else {
3038 var1 = var->type->type_table[cltype] == idtype;
3039 }
3040 }
3041 if (!var1) {
3042 var_class_name = var == NULL ? "null" : var->type->name;
3043 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name);
3044 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 391);
3045 show_backtrace(1);
3046 }
3047 var_parent_aclassdef = var;
3048 var2 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var_toolcontext) /* modelbuilder on <var_toolcontext:ToolContext>*/;
3049 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACastAsExternCall__n_from_type]))(self) /* n_from_type on <self:ACastAsExternCall>*/;
3050 var4 = 1;
3051 var5 = ((val* (*)(val*, val*, val*, short int))(var2->class->vft[COLOR_modelize_class__ModelBuilder__resolve_mtype_unchecked]))(var2, var_parent_aclassdef, var3, var4) /* resolve_mtype_unchecked on <var2:ModelBuilder>*/;
3052 var5;
3053 var6 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var_toolcontext) /* modelbuilder on <var_toolcontext:ToolContext>*/;
3054 var7 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACastAsExternCall__n_to_type]))(self) /* n_to_type on <self:ACastAsExternCall>*/;
3055 var8 = 1;
3056 var9 = ((val* (*)(val*, val*, val*, short int))(var6->class->vft[COLOR_modelize_class__ModelBuilder__resolve_mtype_unchecked]))(var6, var_parent_aclassdef, var7, var8) /* resolve_mtype_unchecked on <var6:ModelBuilder>*/;
3057 var9;
3058 ((void (*)(val*, val*, val*, val*))(self->class->vft[COLOR_nitni_callbacks__ACastAsExternCall__verify_and_collect]))(self, p0, p1, p2) /* verify_and_collect on <self:ACastAsExternCall>*/;
3059 RET_LABEL:;
3060 }
3061 /* method nitni_callbacks#ACastAsExternCall#verify_and_collect for (self: Object, AExternPropdef, ForeignCallbackSet, ToolContext) */
3062 void VIRTUAL_nitni_callbacks__ACastAsExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
3063 nitni_callbacks__ACastAsExternCall__verify_and_collect(self, p0, p1, p2);
3064 RET_LABEL:;
3065 }
3066 /* method nitni_callbacks#AAsNullableExternCall#from_mtype for (self: AAsNullableExternCall): MType */
3067 val* nitni_callbacks__AAsNullableExternCall__from_mtype(val* self) {
3068 val* var /* : MType */;
3069 val* var1 /* : AType */;
3070 val* var2 /* : nullable MType */;
3071 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAsNullableExternCall__n_type]))(self) /* n_type on <self:AAsNullableExternCall>*/;
3072 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_modelize_class__AType__mtype]))(var1) /* mtype on <var1:AType>*/;
3073 if (var2 == NULL) {
3074 fprintf(stderr, "Runtime error: %s", "Cast failed");
3075 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 399);
3076 show_backtrace(1);
3077 }
3078 var = var2;
3079 goto RET_LABEL;
3080 RET_LABEL:;
3081 return var;
3082 }
3083 /* method nitni_callbacks#AAsNullableExternCall#from_mtype for (self: Object): MType */
3084 val* VIRTUAL_nitni_callbacks__AAsNullableExternCall__from_mtype(val* self) {
3085 val* var /* : MType */;
3086 val* var1 /* : MType */;
3087 var1 = nitni_callbacks__AAsNullableExternCall__from_mtype(self);
3088 var = var1;
3089 RET_LABEL:;
3090 return var;
3091 }
3092 /* method nitni_callbacks#AAsNullableExternCall#to_mtype for (self: AAsNullableExternCall): MType */
3093 val* nitni_callbacks__AAsNullableExternCall__to_mtype(val* self) {
3094 val* var /* : MType */;
3095 val* var1 /* : AType */;
3096 val* var2 /* : nullable MType */;
3097 val* var3 /* : MType */;
3098 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAsNullableExternCall__n_type]))(self) /* n_type on <self:AAsNullableExternCall>*/;
3099 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_modelize_class__AType__mtype]))(var1) /* mtype on <var1:AType>*/;
3100 if (var2 == NULL) {
3101 fprintf(stderr, "Runtime error: %s", "Receiver is null");
3102 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 400);
3103 show_backtrace(1);
3104 } else {
3105 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_model__MType__as_nullable]))(var2) /* as_nullable on <var2:nullable MType>*/;
3106 }
3107 var = var3;
3108 goto RET_LABEL;
3109 RET_LABEL:;
3110 return var;
3111 }
3112 /* method nitni_callbacks#AAsNullableExternCall#to_mtype for (self: Object): MType */
3113 val* VIRTUAL_nitni_callbacks__AAsNullableExternCall__to_mtype(val* self) {
3114 val* var /* : MType */;
3115 val* var1 /* : MType */;
3116 var1 = nitni_callbacks__AAsNullableExternCall__to_mtype(self);
3117 var = var1;
3118 RET_LABEL:;
3119 return var;
3120 }
3121 /* method nitni_callbacks#AAsNullableExternCall#verify_and_collect for (self: AAsNullableExternCall, AExternPropdef, ForeignCallbackSet, ToolContext) */
3122 void nitni_callbacks__AAsNullableExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
3123 val* var_npropdef /* var npropdef: AExternPropdef */;
3124 val* var_callback_set /* var callback_set: ForeignCallbackSet */;
3125 val* var_toolcontext /* var toolcontext: ToolContext */;
3126 val* var /* : nullable ANode */;
3127 short int var1 /* : Bool */;
3128 int cltype;
3129 int idtype;
3130 const char* var_class_name;
3131 val* var_parent_aclassdef /* var parent_aclassdef: AClassdef */;
3132 val* var2 /* : ModelBuilder */;
3133 val* var3 /* : AType */;
3134 short int var4 /* : Bool */;
3135 val* var5 /* : nullable MType */;
3136 var_npropdef = p0;
3137 var_callback_set = p1;
3138 var_toolcontext = p2;
3139 var = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_parser_nodes__ANode__parent]))(var_npropdef) /* parent on <var_npropdef:AExternPropdef>*/;
3140 /* <var:nullable ANode> isa AClassdef */
3141 cltype = type_parser_nodes__AClassdef.color;
3142 idtype = type_parser_nodes__AClassdef.id;
3143 if(var == NULL) {
3144 var1 = 0;
3145 } else {
3146 if(cltype >= var->type->table_size) {
3147 var1 = 0;
3148 } else {
3149 var1 = var->type->type_table[cltype] == idtype;
3150 }
3151 }
3152 if (!var1) {
3153 var_class_name = var == NULL ? "null" : var->type->name;
3154 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name);
3155 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 404);
3156 show_backtrace(1);
3157 }
3158 var_parent_aclassdef = var;
3159 var2 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var_toolcontext) /* modelbuilder on <var_toolcontext:ToolContext>*/;
3160 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAsNullableExternCall__n_type]))(self) /* n_type on <self:AAsNullableExternCall>*/;
3161 var4 = 1;
3162 var5 = ((val* (*)(val*, val*, val*, short int))(var2->class->vft[COLOR_modelize_class__ModelBuilder__resolve_mtype_unchecked]))(var2, var_parent_aclassdef, var3, var4) /* resolve_mtype_unchecked on <var2:ModelBuilder>*/;
3163 var5;
3164 ((void (*)(val*, val*, val*, val*))(self->class->vft[COLOR_nitni_callbacks__AAsNullableExternCall__verify_and_collect]))(self, p0, p1, p2) /* verify_and_collect on <self:AAsNullableExternCall>*/;
3165 RET_LABEL:;
3166 }
3167 /* method nitni_callbacks#AAsNullableExternCall#verify_and_collect for (self: Object, AExternPropdef, ForeignCallbackSet, ToolContext) */
3168 void VIRTUAL_nitni_callbacks__AAsNullableExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
3169 nitni_callbacks__AAsNullableExternCall__verify_and_collect(self, p0, p1, p2);
3170 RET_LABEL:;
3171 }
3172 /* method nitni_callbacks#AAsNotNullableExternCall#from_mtype for (self: AAsNotNullableExternCall): MType */
3173 val* nitni_callbacks__AAsNotNullableExternCall__from_mtype(val* self) {
3174 val* var /* : MType */;
3175 val* var1 /* : AType */;
3176 val* var2 /* : nullable MType */;
3177 val* var3 /* : MType */;
3178 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAsNotNullableExternCall__n_type]))(self) /* n_type on <self:AAsNotNullableExternCall>*/;
3179 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_modelize_class__AType__mtype]))(var1) /* mtype on <var1:AType>*/;
3180 if (var2 == NULL) {
3181 fprintf(stderr, "Runtime error: %s", "Receiver is null");
3182 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 411);
3183 show_backtrace(1);
3184 } else {
3185 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_model__MType__as_nullable]))(var2) /* as_nullable on <var2:nullable MType>*/;
3186 }
3187 var = var3;
3188 goto RET_LABEL;
3189 RET_LABEL:;
3190 return var;
3191 }
3192 /* method nitni_callbacks#AAsNotNullableExternCall#from_mtype for (self: Object): MType */
3193 val* VIRTUAL_nitni_callbacks__AAsNotNullableExternCall__from_mtype(val* self) {
3194 val* var /* : MType */;
3195 val* var1 /* : MType */;
3196 var1 = nitni_callbacks__AAsNotNullableExternCall__from_mtype(self);
3197 var = var1;
3198 RET_LABEL:;
3199 return var;
3200 }
3201 /* method nitni_callbacks#AAsNotNullableExternCall#to_mtype for (self: AAsNotNullableExternCall): MType */
3202 val* nitni_callbacks__AAsNotNullableExternCall__to_mtype(val* self) {
3203 val* var /* : MType */;
3204 val* var1 /* : AType */;
3205 val* var2 /* : nullable MType */;
3206 val* var_mtype /* var mtype: MType */;
3207 short int var3 /* : Bool */;
3208 int cltype;
3209 int idtype;
3210 val* var4 /* : MType */;
3211 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAsNotNullableExternCall__n_type]))(self) /* n_type on <self:AAsNotNullableExternCall>*/;
3212 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_modelize_class__AType__mtype]))(var1) /* mtype on <var1:AType>*/;
3213 if (var2 == NULL) {
3214 fprintf(stderr, "Runtime error: %s", "Cast failed");
3215 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 413);
3216 show_backtrace(1);
3217 }
3218 var_mtype = var2;
3219 /* <var_mtype:MType> isa MNullableType */
3220 cltype = type_model__MNullableType.color;
3221 idtype = type_model__MNullableType.id;
3222 if(cltype >= var_mtype->type->table_size) {
3223 var3 = 0;
3224 } else {
3225 var3 = var_mtype->type->type_table[cltype] == idtype;
3226 }
3227 if (var3){
3228 var4 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MNullableType__mtype]))(var_mtype) /* mtype on <var_mtype:MType(MNullableType)>*/;
3229 var = var4;
3230 goto RET_LABEL;
3231 } else {
3232 }
3233 var = var_mtype;
3234 goto RET_LABEL;
3235 RET_LABEL:;
3236 return var;
3237 }
3238 /* method nitni_callbacks#AAsNotNullableExternCall#to_mtype for (self: Object): MType */
3239 val* VIRTUAL_nitni_callbacks__AAsNotNullableExternCall__to_mtype(val* self) {
3240 val* var /* : MType */;
3241 val* var1 /* : MType */;
3242 var1 = nitni_callbacks__AAsNotNullableExternCall__to_mtype(self);
3243 var = var1;
3244 RET_LABEL:;
3245 return var;
3246 }
3247 /* method nitni_callbacks#AAsNotNullableExternCall#verify_and_collect for (self: AAsNotNullableExternCall, AExternPropdef, ForeignCallbackSet, ToolContext) */
3248 void nitni_callbacks__AAsNotNullableExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
3249 val* var_npropdef /* var npropdef: AExternPropdef */;
3250 val* var_callback_set /* var callback_set: ForeignCallbackSet */;
3251 val* var_toolcontext /* var toolcontext: ToolContext */;
3252 val* var /* : nullable ANode */;
3253 short int var1 /* : Bool */;
3254 int cltype;
3255 int idtype;
3256 const char* var_class_name;
3257 val* var_parent_aclassdef /* var parent_aclassdef: AClassdef */;
3258 val* var2 /* : ModelBuilder */;
3259 val* var3 /* : AType */;
3260 short int var4 /* : Bool */;
3261 val* var5 /* : nullable MType */;
3262 var_npropdef = p0;
3263 var_callback_set = p1;
3264 var_toolcontext = p2;
3265 var = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_parser_nodes__ANode__parent]))(var_npropdef) /* parent on <var_npropdef:AExternPropdef>*/;
3266 /* <var:nullable ANode> isa AClassdef */
3267 cltype = type_parser_nodes__AClassdef.color;
3268 idtype = type_parser_nodes__AClassdef.id;
3269 if(var == NULL) {
3270 var1 = 0;
3271 } else {
3272 if(cltype >= var->type->table_size) {
3273 var1 = 0;
3274 } else {
3275 var1 = var->type->type_table[cltype] == idtype;
3276 }
3277 }
3278 if (!var1) {
3279 var_class_name = var == NULL ? "null" : var->type->name;
3280 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name);
3281 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_callbacks.nit", 420);
3282 show_backtrace(1);
3283 }
3284 var_parent_aclassdef = var;
3285 var2 = ((val* (*)(val*))(var_toolcontext->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var_toolcontext) /* modelbuilder on <var_toolcontext:ToolContext>*/;
3286 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAsNotNullableExternCall__n_type]))(self) /* n_type on <self:AAsNotNullableExternCall>*/;
3287 var4 = 1;
3288 var5 = ((val* (*)(val*, val*, val*, short int))(var2->class->vft[COLOR_modelize_class__ModelBuilder__resolve_mtype_unchecked]))(var2, var_parent_aclassdef, var3, var4) /* resolve_mtype_unchecked on <var2:ModelBuilder>*/;
3289 var5;
3290 ((void (*)(val*, val*, val*, val*))(self->class->vft[COLOR_nitni_callbacks__AAsNotNullableExternCall__verify_and_collect]))(self, p0, p1, p2) /* verify_and_collect on <self:AAsNotNullableExternCall>*/;
3291 RET_LABEL:;
3292 }
3293 /* method nitni_callbacks#AAsNotNullableExternCall#verify_and_collect for (self: Object, AExternPropdef, ForeignCallbackSet, ToolContext) */
3294 void VIRTUAL_nitni_callbacks__AAsNotNullableExternCall__verify_and_collect(val* self, val* p0, val* p1, val* p2) {
3295 nitni_callbacks__AAsNotNullableExternCall__verify_and_collect(self, p0, p1, p2);
3296 RET_LABEL:;
3297 }