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> */
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);
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
);
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> */
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
);
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> */
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);
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
);
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> */
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
);
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 */;
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 */;
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 */;
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
) {
100 var
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
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
;
110 if (var_code_block
== NULL
) {
111 var4
= 1; /* is null */
113 var4
= 0; /* arg is null but recv is not */
119 var5
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_parser_nodes__AStdClassdef__n_kwredef
]))(var_nclassdef
) /* n_kwredef on <var_nclassdef:AClassdef(AStdClassdef)>*/;
122 var7
= 0; /* is null */
124 var7
= 1; /* arg is null and recv is not */
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)>*/;
132 var11
= "Only the introduction of a class can specify an extern type.";
134 var13
= string__NativeString__to_s_with_length(var11
, var12
);
138 ((void (*)(val
*, val
*, val
*))(var8
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var8
, var9
, var10
) /* error on <var8:ToolContext>*/;
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)>*/;
144 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
145 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/extern_classes.nit", 45);
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>*/;
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)>*/;
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)>*/;
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
);
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> */
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
);
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> */
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
);
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> */
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
);
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> */
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
);
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>*/;
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
);
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 */;
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 */;
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
) {
260 var
= var_nclassdef
->type
->type_table
[cltype
] == idtype
;
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)>*/;
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);
276 var4
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro
]))(var_mclass
) /* intro on <var_mclass:nullable MClass>*/;
278 var5
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var4
, var_mclassdef
) /* != on <var4:MClassDef>*/;
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);
288 var6
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__kind
]))(var_mclass
) /* kind on <var_mclass:nullable MClass>*/;
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>*/;
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);
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>*/;
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
);
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> */
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
);
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> */
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
);
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> */
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
);
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> */
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
);
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>*/;
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
);
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>*/;
393 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
394 fprintf(stderr
, " (%s:%d)\n", "src/common_ffi/extern_classes.nit", 88);
397 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_ffi_base__ForeignType__ctype
]))(var1
) /* ctype on <var1:nullable ForeignType>*/;
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
);
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 */;
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 */;
474 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_extern_classes__MClass__ftype_computed
]))(self
) /* ftype_computed on <self:MClass>*/;
476 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_extern_classes__MClass__ftype_cache
]))(self
) /* ftype_cache on <self:MClass>*/;
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>*/;
490 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__name
]))(self
) /* name on <self:MClass>*/;
496 var11
= string__NativeString__to_s_with_length(var9
, var10
);
500 var12
= ((short int (*)(val
*, val
*))(var7
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var7
, var8
) /* == on <var7:String>*/;
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>*/;
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>*/;
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>*/;
521 if (var_ftype
== NULL
) {
522 var23
= 1; /* is null */
524 var23
= 0; /* arg is null but recv is not */
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])>*/;
535 var30
= ((short int (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var29
) /* is_ok on <var29:Iterator[nullable Object]>*/;
537 var31
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var29
) /* item on <var29:Iterator[nullable Object]>*/;
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
;
542 if (var_super_ftype
== NULL
) {
543 var34
= 0; /* is null */
545 var34
= 1; /* arg is null and recv is not */
549 if (var_ftype_b
== NULL
) {
550 var36
= 1; /* is null */
552 var36
= 0; /* arg is null but recv is not */
555 var_ftype_b
= var_super_ftype
;
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)>*/;
560 var38
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_phase__Phase__toolcontext
]))(var_v
) /* toolcontext on <var_v:ExternClassesTypingPhaseModel>*/;
565 var42
= "Extern type conflict in ";
567 var44
= string__NativeString__to_s_with_length(var42
, var43
);
571 var45
= NEW_array__Array(&type_array__Arraykernel__Object
);
572 { /* var45 = array_instance Array[Object] */
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]>*/;
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>*/;
589 CONTINUE_label
: (void)0;
590 ((void (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var29
) /* next on <var29:Iterator[nullable Object]>*/;
592 BREAK_label
: (void)0;
593 var_ftype
= var_ftype_b
;
596 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_extern_classes__MClass__ftype_cache_61d
]))(self
, var_ftype
) /* ftype_cache= on <self:MClass>*/;
598 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_extern_classes__MClass__ftype_computed_61d
]))(self
, var50
) /* ftype_computed= on <self:MClass>*/;
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
);