pep8analysis: intro the web interface
[nit.git] / c_src / extern_classes.sep.1.c
1 #include "extern_classes.sep.0.h"
2 /* method extern_classes#ToolContext#extern_classes_typing_phase_ast for (self: ToolContext): Phase */
3 val* extern_classes__ToolContext__extern_classes_typing_phase_ast(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_extern_classes__ToolContext___64dextern_classes_typing_phase_ast].val; /* @extern_classes_typing_phase_ast on <self:ToolContext> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @extern_classes_typing_phase_ast");
9 fprintf(stderr, " (%s:%d)\n", "src/common_ffi/extern_classes.nit", 23);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method extern_classes#ToolContext#extern_classes_typing_phase_ast for (self: Object): Phase */
17 val* VIRTUAL_extern_classes__ToolContext__extern_classes_typing_phase_ast(val* self) {
18 val* var /* : Phase */;
19 val* var1 /* : Phase */;
20 var1 = extern_classes__ToolContext__extern_classes_typing_phase_ast(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method extern_classes#ToolContext#extern_classes_typing_phase_ast= for (self: ToolContext, Phase) */
26 void extern_classes__ToolContext__extern_classes_typing_phase_ast_61d(val* self, val* p0) {
27 self->attrs[COLOR_extern_classes__ToolContext___64dextern_classes_typing_phase_ast].val = p0; /* @extern_classes_typing_phase_ast on <self:ToolContext> */
28 RET_LABEL:;
29 }
30 /* method extern_classes#ToolContext#extern_classes_typing_phase_ast= for (self: Object, Phase) */
31 void VIRTUAL_extern_classes__ToolContext__extern_classes_typing_phase_ast_61d(val* self, val* p0) {
32 extern_classes__ToolContext__extern_classes_typing_phase_ast_61d(self, p0);
33 RET_LABEL:;
34 }
35 /* method extern_classes#ToolContext#extern_classes_typing_phase_model for (self: ToolContext): Phase */
36 val* extern_classes__ToolContext__extern_classes_typing_phase_model(val* self) {
37 val* var /* : Phase */;
38 val* var1 /* : Phase */;
39 var1 = self->attrs[COLOR_extern_classes__ToolContext___64dextern_classes_typing_phase_model].val; /* @extern_classes_typing_phase_model on <self:ToolContext> */
40 if (var1 == NULL) {
41 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @extern_classes_typing_phase_model");
42 fprintf(stderr, " (%s:%d)\n", "src/common_ffi/extern_classes.nit", 25);
43 show_backtrace(1);
44 }
45 var = var1;
46 RET_LABEL:;
47 return var;
48 }
49 /* method extern_classes#ToolContext#extern_classes_typing_phase_model for (self: Object): Phase */
50 val* VIRTUAL_extern_classes__ToolContext__extern_classes_typing_phase_model(val* self) {
51 val* var /* : Phase */;
52 val* var1 /* : Phase */;
53 var1 = extern_classes__ToolContext__extern_classes_typing_phase_model(self);
54 var = var1;
55 RET_LABEL:;
56 return var;
57 }
58 /* method extern_classes#ToolContext#extern_classes_typing_phase_model= for (self: ToolContext, Phase) */
59 void extern_classes__ToolContext__extern_classes_typing_phase_model_61d(val* self, val* p0) {
60 self->attrs[COLOR_extern_classes__ToolContext___64dextern_classes_typing_phase_model].val = p0; /* @extern_classes_typing_phase_model on <self:ToolContext> */
61 RET_LABEL:;
62 }
63 /* method extern_classes#ToolContext#extern_classes_typing_phase_model= for (self: Object, Phase) */
64 void VIRTUAL_extern_classes__ToolContext__extern_classes_typing_phase_model_61d(val* self, val* p0) {
65 extern_classes__ToolContext__extern_classes_typing_phase_model_61d(self, p0);
66 RET_LABEL:;
67 }
68 /* method extern_classes#ExternClassesTypingPhaseAst#process_nclassdef for (self: ExternClassesTypingPhaseAst, AClassdef) */
69 void extern_classes__ExternClassesTypingPhaseAst__process_nclassdef(val* self, val* p0) {
70 val* var_nclassdef /* var nclassdef: AClassdef */;
71 short int var /* : Bool */;
72 int cltype;
73 int idtype;
74 short int var1 /* : Bool */;
75 val* var2 /* : nullable AExternCodeBlock */;
76 val* var_code_block /* var code_block: nullable AExternCodeBlock */;
77 val* var3 /* : null */;
78 short int var4 /* : Bool */;
79 val* var5 /* : nullable TKwredef */;
80 val* var6 /* : null */;
81 short int var7 /* : Bool */;
82 val* var8 /* : ToolContext */;
83 val* var9 /* : Location */;
84 static val* varonce;
85 val* var10 /* : String */;
86 char* var11 /* : NativeString */;
87 long var12 /* : Int */;
88 val* var13 /* : String */;
89 val* var14 /* : nullable FFILanguage */;
90 val* var15 /* : ForeignType */;
91 val* var_ftype /* var ftype: ForeignType */;
92 short int var16 /* : Bool */;
93 var_nclassdef = p0;
94 /* <var_nclassdef:AClassdef> isa AStdClassdef */
95 cltype = type_parser_nodes__AStdClassdef.color;
96 idtype = type_parser_nodes__AStdClassdef.id;
97 if(cltype >= var_nclassdef->type->table_size) {
98 var = 0;
99 } else {
100 var = var_nclassdef->type->type_table[cltype] == idtype;
101 }
102 var1 = !var;
103 if (var1){
104 goto RET_LABEL;
105 } else {
106 }
107 var2 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_parser_nodes__AStdClassdef__n_extern_code_block]))(var_nclassdef) /* n_extern_code_block on <var_nclassdef:AClassdef(AStdClassdef)>*/;
108 var_code_block = var2;
109 var3 = NULL;
110 if (var_code_block == NULL) {
111 var4 = 1; /* is null */
112 } else {
113 var4 = 0; /* arg is null but recv is not */
114 }
115 if (var4){
116 goto RET_LABEL;
117 } else {
118 }
119 var5 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_parser_nodes__AStdClassdef__n_kwredef]))(var_nclassdef) /* n_kwredef on <var_nclassdef:AClassdef(AStdClassdef)>*/;
120 var6 = NULL;
121 if (var5 == NULL) {
122 var7 = 0; /* is null */
123 } else {
124 var7 = 1; /* arg is null and recv is not */
125 }
126 if (var7){
127 var8 = ((val* (*)(val*))(self->class->vft[COLOR_phase__Phase__toolcontext]))(self) /* toolcontext on <self:ExternClassesTypingPhaseAst>*/;
128 var9 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_parser_nodes__ANode__location]))(var_nclassdef) /* location on <var_nclassdef:AClassdef(AStdClassdef)>*/;
129 if (varonce) {
130 var10 = varonce;
131 } else {
132 var11 = "Only the introduction of a class can specify an extern type.";
133 var12 = 60;
134 var13 = string__NativeString__to_s_with_length(var11, var12);
135 var10 = var13;
136 varonce = var10;
137 }
138 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_toolcontext__ToolContext__error]))(var8, var9, var10) /* error on <var8:ToolContext>*/;
139 goto RET_LABEL;
140 } else {
141 }
142 var14 = ((val* (*)(val*))(var_code_block->class->vft[COLOR_ffi_base__AExternCodeBlock__language]))(var_code_block) /* language on <var_code_block:nullable AExternCodeBlock(AExternCodeBlock)>*/;
143 if (var14 == NULL) {
144 fprintf(stderr, "Runtime error: %s", "Receiver is null");
145 fprintf(stderr, " (%s:%d)\n", "src/common_ffi/extern_classes.nit", 45);
146 show_backtrace(1);
147 } else {
148 var15 = ((val* (*)(val*, val*, val*))(var14->class->vft[COLOR_ffi_base__FFILanguage__get_ftype]))(var14, var_code_block, var_nclassdef) /* get_ftype on <var14:nullable FFILanguage>*/;
149 }
150 var_ftype = var15;
151 ((void (*)(val*, val*))(var_nclassdef->class->vft[COLOR_extern_classes__AClassdef__ftype_cache_61d]))(var_nclassdef, var_ftype) /* ftype_cache= on <var_nclassdef:AClassdef(AStdClassdef)>*/;
152 var16 = 1;
153 ((void (*)(val*, short int))(var_nclassdef->class->vft[COLOR_extern_classes__AClassdef__ftype_computed_61d]))(var_nclassdef, var16) /* ftype_computed= on <var_nclassdef:AClassdef(AStdClassdef)>*/;
154 RET_LABEL:;
155 }
156 /* method extern_classes#ExternClassesTypingPhaseAst#process_nclassdef for (self: Object, AClassdef) */
157 void VIRTUAL_extern_classes__ExternClassesTypingPhaseAst__process_nclassdef(val* self, val* p0) {
158 extern_classes__ExternClassesTypingPhaseAst__process_nclassdef(self, p0);
159 RET_LABEL:;
160 }
161 /* method extern_classes#AClassdef#ftype_cache for (self: AClassdef): nullable ForeignType */
162 val* extern_classes__AClassdef__ftype_cache(val* self) {
163 val* var /* : nullable ForeignType */;
164 val* var1 /* : nullable ForeignType */;
165 var1 = self->attrs[COLOR_extern_classes__AClassdef___64dftype_cache].val; /* @ftype_cache on <self:AClassdef> */
166 var = var1;
167 RET_LABEL:;
168 return var;
169 }
170 /* method extern_classes#AClassdef#ftype_cache for (self: Object): nullable ForeignType */
171 val* VIRTUAL_extern_classes__AClassdef__ftype_cache(val* self) {
172 val* var /* : nullable ForeignType */;
173 val* var1 /* : nullable ForeignType */;
174 var1 = extern_classes__AClassdef__ftype_cache(self);
175 var = var1;
176 RET_LABEL:;
177 return var;
178 }
179 /* method extern_classes#AClassdef#ftype_cache= for (self: AClassdef, nullable ForeignType) */
180 void extern_classes__AClassdef__ftype_cache_61d(val* self, val* p0) {
181 self->attrs[COLOR_extern_classes__AClassdef___64dftype_cache].val = p0; /* @ftype_cache on <self:AClassdef> */
182 RET_LABEL:;
183 }
184 /* method extern_classes#AClassdef#ftype_cache= for (self: Object, nullable ForeignType) */
185 void VIRTUAL_extern_classes__AClassdef__ftype_cache_61d(val* self, val* p0) {
186 extern_classes__AClassdef__ftype_cache_61d(self, p0);
187 RET_LABEL:;
188 }
189 /* method extern_classes#AClassdef#ftype_computed for (self: AClassdef): Bool */
190 short int extern_classes__AClassdef__ftype_computed(val* self) {
191 short int var /* : Bool */;
192 short int var1 /* : Bool */;
193 var1 = self->attrs[COLOR_extern_classes__AClassdef___64dftype_computed].s; /* @ftype_computed on <self:AClassdef> */
194 var = var1;
195 RET_LABEL:;
196 return var;
197 }
198 /* method extern_classes#AClassdef#ftype_computed for (self: Object): Bool */
199 short int VIRTUAL_extern_classes__AClassdef__ftype_computed(val* self) {
200 short int var /* : Bool */;
201 short int var1 /* : Bool */;
202 var1 = extern_classes__AClassdef__ftype_computed(self);
203 var = var1;
204 RET_LABEL:;
205 return var;
206 }
207 /* method extern_classes#AClassdef#ftype_computed= for (self: AClassdef, Bool) */
208 void extern_classes__AClassdef__ftype_computed_61d(val* self, short int p0) {
209 self->attrs[COLOR_extern_classes__AClassdef___64dftype_computed].s = p0; /* @ftype_computed on <self:AClassdef> */
210 RET_LABEL:;
211 }
212 /* method extern_classes#AClassdef#ftype_computed= for (self: Object, Bool) */
213 void VIRTUAL_extern_classes__AClassdef__ftype_computed_61d(val* self, short int p0) {
214 extern_classes__AClassdef__ftype_computed_61d(self, p0);
215 RET_LABEL:;
216 }
217 /* method extern_classes#AClassdef#ftype for (self: AClassdef): nullable ForeignType */
218 val* extern_classes__AClassdef__ftype(val* self) {
219 val* var /* : nullable ForeignType */;
220 val* var1 /* : nullable ForeignType */;
221 var1 = ((val* (*)(val*))(self->class->vft[COLOR_extern_classes__AClassdef__ftype_cache]))(self) /* ftype_cache on <self:AClassdef>*/;
222 var = var1;
223 goto RET_LABEL;
224 RET_LABEL:;
225 return var;
226 }
227 /* method extern_classes#AClassdef#ftype for (self: Object): nullable ForeignType */
228 val* VIRTUAL_extern_classes__AClassdef__ftype(val* self) {
229 val* var /* : nullable ForeignType */;
230 val* var1 /* : nullable ForeignType */;
231 var1 = extern_classes__AClassdef__ftype(self);
232 var = var1;
233 RET_LABEL:;
234 return var;
235 }
236 /* method extern_classes#ExternClassesTypingPhaseModel#process_nclassdef for (self: ExternClassesTypingPhaseModel, AClassdef) */
237 void extern_classes__ExternClassesTypingPhaseModel__process_nclassdef(val* self, val* p0) {
238 val* var_nclassdef /* var nclassdef: AClassdef */;
239 short int var /* : Bool */;
240 int cltype;
241 int idtype;
242 short int var1 /* : Bool */;
243 val* var2 /* : nullable MClassDef */;
244 val* var_mclassdef /* var mclassdef: nullable MClassDef */;
245 val* var3 /* : nullable MClass */;
246 val* var_mclass /* var mclass: nullable MClass */;
247 val* var4 /* : MClassDef */;
248 short int var5 /* : Bool */;
249 val* var6 /* : MClassKind */;
250 val* var7 /* : MClassKind */;
251 short int var8 /* : Bool */;
252 val* var9 /* : nullable ForeignType */;
253 var_nclassdef = p0;
254 /* <var_nclassdef:AClassdef> isa AStdClassdef */
255 cltype = type_parser_nodes__AStdClassdef.color;
256 idtype = type_parser_nodes__AStdClassdef.id;
257 if(cltype >= var_nclassdef->type->table_size) {
258 var = 0;
259 } else {
260 var = var_nclassdef->type->type_table[cltype] == idtype;
261 }
262 var1 = !var;
263 if (var1){
264 goto RET_LABEL;
265 } else {
266 }
267 var2 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on <var_nclassdef:AClassdef(AStdClassdef)>*/;
268 var_mclassdef = var2;
269 var3 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclass]))(var_nclassdef) /* mclass on <var_nclassdef:AClassdef(AStdClassdef)>*/;
270 var_mclass = var3;
271 if (var_mclass == NULL) {
272 fprintf(stderr, "Runtime error: %s", "Receiver is null");
273 fprintf(stderr, " (%s:%d)\n", "src/common_ffi/extern_classes.nit", 73);
274 show_backtrace(1);
275 } else {
276 var4 = ((val* (*)(val*))(var_mclass->class->vft[COLOR_model__MClass__intro]))(var_mclass) /* intro on <var_mclass:nullable MClass>*/;
277 }
278 var5 = ((short int (*)(val*, val*))(var4->class->vft[COLOR_kernel__Object___33d_61d]))(var4, var_mclassdef) /* != on <var4:MClassDef>*/;
279 if (var5){
280 goto RET_LABEL;
281 } else {
282 }
283 if (var_mclass == NULL) {
284 fprintf(stderr, "Runtime error: %s", "Receiver is null");
285 fprintf(stderr, " (%s:%d)\n", "src/common_ffi/extern_classes.nit", 75);
286 show_backtrace(1);
287 } else {
288 var6 = ((val* (*)(val*))(var_mclass->class->vft[COLOR_model__MClass__kind]))(var_mclass) /* kind on <var_mclass:nullable MClass>*/;
289 }
290 var7 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__extern_kind]))(self) /* extern_kind on <self:ExternClassesTypingPhaseModel>*/;
291 var8 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___33d_61d]))(var6, var7) /* != on <var6:MClassKind>*/;
292 if (var8){
293 goto RET_LABEL;
294 } else {
295 }
296 if (var_mclass == NULL) {
297 fprintf(stderr, "Runtime error: %s", "Receiver is null");
298 fprintf(stderr, " (%s:%d)\n", "src/common_ffi/extern_classes.nit", 77);
299 show_backtrace(1);
300 } else {
301 var9 = ((val* (*)(val*, val*))(var_mclass->class->vft[COLOR_extern_classes__MClass__compute_ftype]))(var_mclass, self) /* compute_ftype on <var_mclass:nullable MClass>*/;
302 }
303 var9;
304 RET_LABEL:;
305 }
306 /* method extern_classes#ExternClassesTypingPhaseModel#process_nclassdef for (self: Object, AClassdef) */
307 void VIRTUAL_extern_classes__ExternClassesTypingPhaseModel__process_nclassdef(val* self, val* p0) {
308 extern_classes__ExternClassesTypingPhaseModel__process_nclassdef(self, p0);
309 RET_LABEL:;
310 }
311 /* method extern_classes#MClass#ftype_cache for (self: MClass): nullable ForeignType */
312 val* extern_classes__MClass__ftype_cache(val* self) {
313 val* var /* : nullable ForeignType */;
314 val* var1 /* : nullable ForeignType */;
315 var1 = self->attrs[COLOR_extern_classes__MClass___64dftype_cache].val; /* @ftype_cache on <self:MClass> */
316 var = var1;
317 RET_LABEL:;
318 return var;
319 }
320 /* method extern_classes#MClass#ftype_cache for (self: Object): nullable ForeignType */
321 val* VIRTUAL_extern_classes__MClass__ftype_cache(val* self) {
322 val* var /* : nullable ForeignType */;
323 val* var1 /* : nullable ForeignType */;
324 var1 = extern_classes__MClass__ftype_cache(self);
325 var = var1;
326 RET_LABEL:;
327 return var;
328 }
329 /* method extern_classes#MClass#ftype_cache= for (self: MClass, nullable ForeignType) */
330 void extern_classes__MClass__ftype_cache_61d(val* self, val* p0) {
331 self->attrs[COLOR_extern_classes__MClass___64dftype_cache].val = p0; /* @ftype_cache on <self:MClass> */
332 RET_LABEL:;
333 }
334 /* method extern_classes#MClass#ftype_cache= for (self: Object, nullable ForeignType) */
335 void VIRTUAL_extern_classes__MClass__ftype_cache_61d(val* self, val* p0) {
336 extern_classes__MClass__ftype_cache_61d(self, p0);
337 RET_LABEL:;
338 }
339 /* method extern_classes#MClass#ftype_computed for (self: MClass): Bool */
340 short int extern_classes__MClass__ftype_computed(val* self) {
341 short int var /* : Bool */;
342 short int var1 /* : Bool */;
343 var1 = self->attrs[COLOR_extern_classes__MClass___64dftype_computed].s; /* @ftype_computed on <self:MClass> */
344 var = var1;
345 RET_LABEL:;
346 return var;
347 }
348 /* method extern_classes#MClass#ftype_computed for (self: Object): Bool */
349 short int VIRTUAL_extern_classes__MClass__ftype_computed(val* self) {
350 short int var /* : Bool */;
351 short int var1 /* : Bool */;
352 var1 = extern_classes__MClass__ftype_computed(self);
353 var = var1;
354 RET_LABEL:;
355 return var;
356 }
357 /* method extern_classes#MClass#ftype_computed= for (self: MClass, Bool) */
358 void extern_classes__MClass__ftype_computed_61d(val* self, short int p0) {
359 self->attrs[COLOR_extern_classes__MClass___64dftype_computed].s = p0; /* @ftype_computed on <self:MClass> */
360 RET_LABEL:;
361 }
362 /* method extern_classes#MClass#ftype_computed= for (self: Object, Bool) */
363 void VIRTUAL_extern_classes__MClass__ftype_computed_61d(val* self, short int p0) {
364 extern_classes__MClass__ftype_computed_61d(self, p0);
365 RET_LABEL:;
366 }
367 /* method extern_classes#MClass#ftype for (self: MClass): nullable ForeignType */
368 val* extern_classes__MClass__ftype(val* self) {
369 val* var /* : nullable ForeignType */;
370 val* var1 /* : nullable ForeignType */;
371 var1 = ((val* (*)(val*))(self->class->vft[COLOR_extern_classes__MClass__ftype_cache]))(self) /* ftype_cache on <self:MClass>*/;
372 var = var1;
373 goto RET_LABEL;
374 RET_LABEL:;
375 return var;
376 }
377 /* method extern_classes#MClass#ftype for (self: Object): nullable ForeignType */
378 val* VIRTUAL_extern_classes__MClass__ftype(val* self) {
379 val* var /* : nullable ForeignType */;
380 val* var1 /* : nullable ForeignType */;
381 var1 = extern_classes__MClass__ftype(self);
382 var = var1;
383 RET_LABEL:;
384 return var;
385 }
386 /* method extern_classes#MClass#ctype for (self: MClass): nullable String */
387 val* extern_classes__MClass__ctype(val* self) {
388 val* var /* : nullable String */;
389 val* var1 /* : nullable ForeignType */;
390 val* var2 /* : String */;
391 var1 = ((val* (*)(val*))(self->class->vft[COLOR_extern_classes__MClass__ftype_cache]))(self) /* ftype_cache on <self:MClass>*/;
392 if (var1 == NULL) {
393 fprintf(stderr, "Runtime error: %s", "Receiver is null");
394 fprintf(stderr, " (%s:%d)\n", "src/common_ffi/extern_classes.nit", 88);
395 show_backtrace(1);
396 } else {
397 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_ffi_base__ForeignType__ctype]))(var1) /* ctype on <var1:nullable ForeignType>*/;
398 }
399 var = var2;
400 goto RET_LABEL;
401 RET_LABEL:;
402 return var;
403 }
404 /* method extern_classes#MClass#ctype for (self: Object): nullable String */
405 val* VIRTUAL_extern_classes__MClass__ctype(val* self) {
406 val* var /* : nullable String */;
407 val* var1 /* : nullable String */;
408 var1 = extern_classes__MClass__ctype(self);
409 var = var1;
410 RET_LABEL:;
411 return var;
412 }
413 /* method extern_classes#MClass#compute_ftype for (self: MClass, ExternClassesTypingPhaseModel): nullable ForeignType */
414 val* extern_classes__MClass__compute_ftype(val* self, val* p0) {
415 val* var /* : nullable ForeignType */;
416 val* var_v /* var v: ExternClassesTypingPhaseModel */;
417 short int var1 /* : Bool */;
418 val* var2 /* : nullable ForeignType */;
419 val* var3 /* : MClassKind */;
420 val* var4 /* : MClassKind */;
421 short int var5 /* : Bool */;
422 val* var6 /* : null */;
423 val* var7 /* : String */;
424 static val* varonce;
425 val* var8 /* : String */;
426 char* var9 /* : NativeString */;
427 long var10 /* : Int */;
428 val* var11 /* : String */;
429 short int var12 /* : Bool */;
430 val* var13 /* : ForeignType */;
431 short int var14 /* : Bool */;
432 val* var15 /* : nullable ForeignType */;
433 val* var16 /* : ToolContext */;
434 val* var17 /* : ModelBuilder */;
435 val* var18 /* : HashMap[MClassDef, AClassdef] */;
436 val* var19 /* : MClassDef */;
437 val* var20 /* : nullable Object */;
438 val* var_intro_nclassdef /* var intro_nclassdef: AClassdef */;
439 val* var21 /* : nullable ForeignType */;
440 val* var_ftype /* var ftype: nullable ForeignType */;
441 val* var22 /* : null */;
442 short int var23 /* : Bool */;
443 val* var24 /* : null */;
444 val* var_ftype_b /* var ftype_b: nullable ForeignType */;
445 val* var25 /* : MClassDef */;
446 val* var26 /* : MModule */;
447 val* var27 /* : POSetElement[MClass] */;
448 val* var28 /* : Collection[Object] */;
449 val* var29 /* : Iterator[nullable Object] */;
450 short int var30 /* : Bool */;
451 val* var31 /* : nullable Object */;
452 val* var_s /* var s: MClass */;
453 val* var32 /* : nullable ForeignType */;
454 val* var_super_ftype /* var super_ftype: nullable ForeignType */;
455 val* var33 /* : null */;
456 short int var34 /* : Bool */;
457 val* var35 /* : null */;
458 short int var36 /* : Bool */;
459 short int var37 /* : Bool */;
460 val* var38 /* : ToolContext */;
461 val* var39 /* : null */;
462 static val* varonce40;
463 val* var41 /* : String */;
464 char* var42 /* : NativeString */;
465 long var43 /* : Int */;
466 val* var44 /* : String */;
467 val* var45 /* : Array[Object] */;
468 long var46 /* : Int */;
469 val* var47 /* : NativeArray[Object] */;
470 val* var48 /* : String */;
471 val* var49 /* : null */;
472 short int var50 /* : Bool */;
473 var_v = p0;
474 var1 = ((short int (*)(val*))(self->class->vft[COLOR_extern_classes__MClass__ftype_computed]))(self) /* ftype_computed on <self:MClass>*/;
475 if (var1){
476 var2 = ((val* (*)(val*))(self->class->vft[COLOR_extern_classes__MClass__ftype_cache]))(self) /* ftype_cache on <self:MClass>*/;
477 var = var2;
478 goto RET_LABEL;
479 } else {
480 }
481 var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__kind]))(self) /* kind on <self:MClass>*/;
482 var4 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__extern_kind]))(self) /* extern_kind on <self:MClass>*/;
483 var5 = ((short int (*)(val*, val*))(var3->class->vft[COLOR_kernel__Object___33d_61d]))(var3, var4) /* != on <var3:MClassKind>*/;
484 if (var5){
485 var6 = NULL;
486 var = var6;
487 goto RET_LABEL;
488 } else {
489 }
490 var7 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__name]))(self) /* name on <self:MClass>*/;
491 if (varonce) {
492 var8 = varonce;
493 } else {
494 var9 = "Pointer";
495 var10 = 7;
496 var11 = string__NativeString__to_s_with_length(var9, var10);
497 var8 = var11;
498 varonce = var8;
499 }
500 var12 = ((short int (*)(val*, val*))(var7->class->vft[COLOR_kernel__Object___61d_61d]))(var7, var8) /* == on <var7:String>*/;
501 if (var12){
502 var13 = NEW_ffi_base__ForeignType(&type_ffi_base__ForeignType);
503 ((void (*)(val*))(var13->class->vft[COLOR_ffi_base__ForeignType__init]))(var13) /* init on <var13:ForeignType>*/;
504 ((void (*)(val*, val*))(self->class->vft[COLOR_extern_classes__MClass__ftype_cache_61d]))(self, var13) /* ftype_cache= on <self:MClass>*/;
505 var14 = 1;
506 ((void (*)(val*, short int))(self->class->vft[COLOR_extern_classes__MClass__ftype_computed_61d]))(self, var14) /* ftype_computed= on <self:MClass>*/;
507 var15 = ((val* (*)(val*))(self->class->vft[COLOR_extern_classes__MClass__ftype_cache]))(self) /* ftype_cache on <self:MClass>*/;
508 var = var15;
509 goto RET_LABEL;
510 } else {
511 }
512 var16 = ((val* (*)(val*))(var_v->class->vft[COLOR_phase__Phase__toolcontext]))(var_v) /* toolcontext on <var_v:ExternClassesTypingPhaseModel>*/;
513 var17 = ((val* (*)(val*))(var16->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var16) /* modelbuilder on <var16:ToolContext>*/;
514 var18 = ((val* (*)(val*))(var17->class->vft[COLOR_modelize_class__ModelBuilder__mclassdef2nclassdef]))(var17) /* mclassdef2nclassdef on <var17:ModelBuilder>*/;
515 var19 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__intro]))(self) /* intro on <self:MClass>*/;
516 var20 = ((val* (*)(val*, val*))(var18->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var18, var19) /* [] on <var18:HashMap[MClassDef, AClassdef]>*/;
517 var_intro_nclassdef = var20;
518 var21 = ((val* (*)(val*))(var_intro_nclassdef->class->vft[COLOR_extern_classes__AClassdef__ftype]))(var_intro_nclassdef) /* ftype on <var_intro_nclassdef:AClassdef>*/;
519 var_ftype = var21;
520 var22 = NULL;
521 if (var_ftype == NULL) {
522 var23 = 1; /* is null */
523 } else {
524 var23 = 0; /* arg is null but recv is not */
525 }
526 if (var23){
527 var24 = NULL;
528 var_ftype_b = var24;
529 var25 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__intro]))(self) /* intro on <self:MClass>*/;
530 var26 = ((val* (*)(val*))(var25->class->vft[COLOR_model__MClassDef__mmodule]))(var25) /* mmodule on <var25:MClassDef>*/;
531 var27 = ((val* (*)(val*, val*))(self->class->vft[COLOR_model__MClass__in_hierarchy]))(self, var26) /* in_hierarchy on <self:MClass>*/;
532 var28 = ((val* (*)(val*))(var27->class->vft[COLOR_poset__POSetElement__direct_greaters]))(var27) /* direct_greaters on <var27:POSetElement[MClass]>*/;
533 var29 = ((val* (*)(val*))(var28->class->vft[COLOR_abstract_collection__Collection__iterator]))(var28) /* iterator on <var28:Collection[Object](Collection[MClass])>*/;
534 for(;;) {
535 var30 = ((short int (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var29) /* is_ok on <var29:Iterator[nullable Object]>*/;
536 if(!var30) break;
537 var31 = ((val* (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__item]))(var29) /* item on <var29:Iterator[nullable Object]>*/;
538 var_s = var31;
539 var32 = ((val* (*)(val*, val*))(var_s->class->vft[COLOR_extern_classes__MClass__compute_ftype]))(var_s, var_v) /* compute_ftype on <var_s:MClass>*/;
540 var_super_ftype = var32;
541 var33 = NULL;
542 if (var_super_ftype == NULL) {
543 var34 = 0; /* is null */
544 } else {
545 var34 = 1; /* arg is null and recv is not */
546 }
547 if (var34){
548 var35 = NULL;
549 if (var_ftype_b == NULL) {
550 var36 = 1; /* is null */
551 } else {
552 var36 = 0; /* arg is null but recv is not */
553 }
554 if (var36){
555 var_ftype_b = var_super_ftype;
556 goto CONTINUE_label;
557 } else {
558 var37 = ((short int (*)(val*, val*))(var_super_ftype->class->vft[COLOR_kernel__Object___33d_61d]))(var_super_ftype, var_ftype_b) /* != on <var_super_ftype:nullable ForeignType(ForeignType)>*/;
559 if (var37){
560 var38 = ((val* (*)(val*))(var_v->class->vft[COLOR_phase__Phase__toolcontext]))(var_v) /* toolcontext on <var_v:ExternClassesTypingPhaseModel>*/;
561 var39 = NULL;
562 if (varonce40) {
563 var41 = varonce40;
564 } else {
565 var42 = "Extern type conflict in ";
566 var43 = 24;
567 var44 = string__NativeString__to_s_with_length(var42, var43);
568 var41 = var44;
569 varonce40 = var41;
570 }
571 var45 = NEW_array__Array(&type_array__Arraykernel__Object);
572 { /* var45 = array_instance Array[Object] */
573 var46 = 2;
574 var47 = NEW_array__NativeArray(var46, &type_array__NativeArraykernel__Object);
575 ((struct instance_array__NativeArray*)var47)->values[0] = (val*) var41;
576 ((struct instance_array__NativeArray*)var47)->values[1] = (val*) self;
577 ((void (*)(val*, val*, long))(var45->class->vft[COLOR_array__Array__with_native]))(var45, var47, var46) /* with_native on <var45:Array[Object]>*/;
578 }
579 var48 = ((val* (*)(val*))(var45->class->vft[COLOR_string__Object__to_s]))(var45) /* to_s on <var45:Array[Object]>*/;
580 ((void (*)(val*, val*, val*))(var38->class->vft[COLOR_toolcontext__ToolContext__error]))(var38, var39, var48) /* error on <var38:ToolContext>*/;
581 var49 = NULL;
582 var = var49;
583 goto RET_LABEL;
584 } else {
585 }
586 }
587 } else {
588 }
589 CONTINUE_label: (void)0;
590 ((void (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__next]))(var29) /* next on <var29:Iterator[nullable Object]>*/;
591 }
592 BREAK_label: (void)0;
593 var_ftype = var_ftype_b;
594 } else {
595 }
596 ((void (*)(val*, val*))(self->class->vft[COLOR_extern_classes__MClass__ftype_cache_61d]))(self, var_ftype) /* ftype_cache= on <self:MClass>*/;
597 var50 = 1;
598 ((void (*)(val*, short int))(self->class->vft[COLOR_extern_classes__MClass__ftype_computed_61d]))(self, var50) /* ftype_computed= on <self:MClass>*/;
599 var = var_ftype;
600 goto RET_LABEL;
601 RET_LABEL:;
602 return var;
603 }
604 /* method extern_classes#MClass#compute_ftype for (self: Object, ExternClassesTypingPhaseModel): nullable ForeignType */
605 val* VIRTUAL_extern_classes__MClass__compute_ftype(val* self, val* p0) {
606 val* var /* : nullable ForeignType */;
607 val* var1 /* : nullable ForeignType */;
608 var1 = extern_classes__MClass__compute_ftype(self, p0);
609 var = var1;
610 RET_LABEL:;
611 return var;
612 }