1 #include "compiler_ffi.sep.0.h"
2 /* method compiler_ffi#AModule#foreign_callbacks for (self: AModule): ForeignCallbackSet */
3 val
* compiler_ffi__AModule__foreign_callbacks(val
* self
) {
4 val
* var
/* : ForeignCallbackSet */;
5 val
* var1
/* : ForeignCallbackSet */;
6 var1
= self
->attrs
[COLOR_compiler_ffi__AModule___64dforeign_callbacks
].val
; /* @foreign_callbacks on <self:AModule> */
8 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @foreign_callbacks");
9 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 25);
16 /* method compiler_ffi#AModule#foreign_callbacks for (self: Object): ForeignCallbackSet */
17 val
* VIRTUAL_compiler_ffi__AModule__foreign_callbacks(val
* self
) {
18 val
* var
/* : ForeignCallbackSet */;
19 val
* var1
/* : ForeignCallbackSet */;
20 var1
= compiler_ffi__AModule__foreign_callbacks(self
);
25 /* method compiler_ffi#AModule#foreign_callbacks= for (self: AModule, ForeignCallbackSet) */
26 void compiler_ffi__AModule__foreign_callbacks_61d(val
* self
, val
* p0
) {
27 self
->attrs
[COLOR_compiler_ffi__AModule___64dforeign_callbacks
].val
= p0
; /* @foreign_callbacks on <self:AModule> */
30 /* method compiler_ffi#AModule#foreign_callbacks= for (self: Object, ForeignCallbackSet) */
31 void VIRTUAL_compiler_ffi__AModule__foreign_callbacks_61d(val
* self
, val
* p0
) {
32 compiler_ffi__AModule__foreign_callbacks_61d(self
, p0
);
35 /* method compiler_ffi#AModule#nitni_ccu for (self: AModule): nullable CCompilationUnit */
36 val
* compiler_ffi__AModule__nitni_ccu(val
* self
) {
37 val
* var
/* : nullable CCompilationUnit */;
38 val
* var1
/* : nullable CCompilationUnit */;
39 var1
= self
->attrs
[COLOR_compiler_ffi__AModule___64dnitni_ccu
].val
; /* @nitni_ccu on <self:AModule> */
44 /* method compiler_ffi#AModule#nitni_ccu for (self: Object): nullable CCompilationUnit */
45 val
* VIRTUAL_compiler_ffi__AModule__nitni_ccu(val
* self
) {
46 val
* var
/* : nullable CCompilationUnit */;
47 val
* var1
/* : nullable CCompilationUnit */;
48 var1
= compiler_ffi__AModule__nitni_ccu(self
);
53 /* method compiler_ffi#AModule#nitni_ccu= for (self: AModule, nullable CCompilationUnit) */
54 void compiler_ffi__AModule__nitni_ccu_61d(val
* self
, val
* p0
) {
55 self
->attrs
[COLOR_compiler_ffi__AModule___64dnitni_ccu
].val
= p0
; /* @nitni_ccu on <self:AModule> */
58 /* method compiler_ffi#AModule#nitni_ccu= for (self: Object, nullable CCompilationUnit) */
59 void VIRTUAL_compiler_ffi__AModule__nitni_ccu_61d(val
* self
, val
* p0
) {
60 compiler_ffi__AModule__nitni_ccu_61d(self
, p0
);
63 /* method compiler_ffi#AModule#uses_legacy_ni for (self: AModule): Bool */
64 short int compiler_ffi__AModule__uses_legacy_ni(val
* self
) {
65 short int var
/* : Bool */;
66 short int var1
/* : Bool */;
67 var1
= self
->attrs
[COLOR_compiler_ffi__AModule___64duses_legacy_ni
].s
; /* @uses_legacy_ni on <self:AModule> */
72 /* method compiler_ffi#AModule#uses_legacy_ni for (self: Object): Bool */
73 short int VIRTUAL_compiler_ffi__AModule__uses_legacy_ni(val
* self
) {
74 short int var
/* : Bool */;
75 short int var1
/* : Bool */;
76 var1
= compiler_ffi__AModule__uses_legacy_ni(self
);
81 /* method compiler_ffi#AModule#uses_legacy_ni= for (self: AModule, Bool) */
82 void compiler_ffi__AModule__uses_legacy_ni_61d(val
* self
, short int p0
) {
83 self
->attrs
[COLOR_compiler_ffi__AModule___64duses_legacy_ni
].s
= p0
; /* @uses_legacy_ni on <self:AModule> */
86 /* method compiler_ffi#AModule#uses_legacy_ni= for (self: Object, Bool) */
87 void VIRTUAL_compiler_ffi__AModule__uses_legacy_ni_61d(val
* self
, short int p0
) {
88 compiler_ffi__AModule__uses_legacy_ni_61d(self
, p0
);
91 /* method compiler_ffi#AModule#finalize_ffi for (self: AModule, AbstractCompilerVisitor, ModelBuilder) */
92 void compiler_ffi__AModule__finalize_ffi(val
* self
, val
* p0
, val
* p1
) {
93 val
* var_v
/* var v: AbstractCompilerVisitor */;
94 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
95 val
* var
/* : AbstractCompiler */;
96 val
* var1
/* : ModelBuilder */;
97 val
* var2
/* : String */;
98 val
* var3
/* : AbstractCompiler */;
99 val
* var4
/* : MModule */;
100 val
* var5
/* : Array[ExternFile] */;
101 val
* var6
/* : Iterator[nullable Object] */;
102 short int var7
/* : Bool */;
103 val
* var8
/* : nullable Object */;
104 val
* var_file
/* var file: ExternFile */;
105 val
* var9
/* : AbstractCompiler */;
106 val
* var10
/* : Array[ExternFile] */;
108 var_modelbuilder
= p1
;
109 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
110 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var
) /* modelbuilder on <var:AbstractCompiler>*/;
111 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_compiler__ModelBuilder__compile_dir
]))(var1
) /* compile_dir on <var1:ModelBuilder>*/;
112 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
113 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var3
) /* mainmodule on <var3:AbstractCompiler>*/;
114 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_common_ffi__AModule__finalize_ffi_wrapper
]))(self
, var2
, var4
) /* finalize_ffi_wrapper on <self:AModule>*/;
115 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_ffi_base__AModule__ffi_files
]))(self
) /* ffi_files on <self:AModule>*/;
116 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var5
) /* iterator on <var5:Array[ExternFile]>*/;
118 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[nullable Object]>*/;
120 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[nullable Object]>*/;
122 var9
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
123 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__extern_bodies
]))(var9
) /* extern_bodies on <var9:AbstractCompiler>*/;
124 ((void (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var10
, var_file
) /* add on <var10:Array[ExternFile]>*/;
125 CONTINUE_label
: (void)0;
126 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[nullable Object]>*/;
128 BREAK_label
: (void)0;
131 /* method compiler_ffi#AModule#finalize_ffi for (self: Object, AbstractCompilerVisitor, ModelBuilder) */
132 void VIRTUAL_compiler_ffi__AModule__finalize_ffi(val
* self
, val
* p0
, val
* p1
) {
133 compiler_ffi__AModule__finalize_ffi(self
, p0
, p1
);
136 /* method compiler_ffi#AModule#ensure_compile_nitni_base for (self: AModule, AbstractCompilerVisitor) */
137 void compiler_ffi__AModule__ensure_compile_nitni_base(val
* self
, val
* p0
) {
138 val
* var_v
/* var v: AbstractCompilerVisitor */;
139 val
* var
/* : nullable CCompilationUnit */;
140 val
* var1
/* : null */;
141 short int var2
/* : Bool */;
142 val
* var3
/* : CCompilationUnit */;
144 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_compiler_ffi__AModule__nitni_ccu
]))(self
) /* nitni_ccu on <self:AModule>*/;
147 var2
= 0; /* is null */
149 var2
= 1; /* arg is null and recv is not */
155 var3
= NEW_c_tools__CCompilationUnit(&type_c_tools__CCompilationUnit
);
156 ((void (*)(val
*))(var3
->class->vft
[COLOR_c_tools__CCompilationUnit__init
]))(var3
) /* init on <var3:CCompilationUnit>*/;
157 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_compiler_ffi__AModule__nitni_ccu_61d
]))(self
, var3
) /* nitni_ccu= on <self:AModule>*/;
160 /* method compiler_ffi#AModule#ensure_compile_nitni_base for (self: Object, AbstractCompilerVisitor) */
161 void VIRTUAL_compiler_ffi__AModule__ensure_compile_nitni_base(val
* self
, val
* p0
) {
162 compiler_ffi__AModule__ensure_compile_nitni_base(self
, p0
);
165 /* method compiler_ffi#AModule#finalize_nitni for (self: AModule, AbstractCompilerVisitor) */
166 void compiler_ffi__AModule__finalize_nitni(val
* self
, val
* p0
) {
167 val
* var_v
/* var v: AbstractCompilerVisitor */;
168 val
* var
/* : nullable CCompilationUnit */;
169 val
* var1
/* : Template */;
171 val
* var2
/* : String */;
172 char* var3
/* : NativeString */;
173 long var4
/* : Int */;
174 val
* var5
/* : String */;
175 val
* var6
/* : nullable MModule */;
176 val
* var7
/* : String */;
177 static val
* varonce8
;
178 val
* var9
/* : String */;
179 char* var10
/* : NativeString */;
180 long var11
/* : Int */;
181 val
* var12
/* : String */;
182 val
* var13
/* : Array[Object] */;
183 long var14
/* : Int */;
184 val
* var15
/* : NativeArray[Object] */;
185 val
* var16
/* : String */;
186 val
* var17
/* : nullable CCompilationUnit */;
187 val
* var18
/* : AbstractCompiler */;
188 val
* var19
/* : ModelBuilder */;
189 val
* var20
/* : String */;
190 val
* var21
/* : nullable CCompilationUnit */;
191 val
* var22
/* : Array[String] */;
192 val
* var23
/* : Iterator[nullable Object] */;
193 short int var24
/* : Bool */;
194 val
* var25
/* : nullable Object */;
195 val
* var_file
/* var file: String */;
196 val
* var26
/* : AbstractCompiler */;
197 val
* var27
/* : Array[ExternFile] */;
198 val
* var28
/* : ExternCFile */;
199 val
* var29
/* : String */;
201 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_compiler_ffi__AModule__ensure_compile_nitni_base
]))(self
, var_v
) /* ensure_compile_nitni_base on <self:AModule>*/;
202 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_compiler_ffi__AModule__nitni_ccu
]))(self
) /* nitni_ccu on <self:AModule>*/;
204 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
205 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 47);
208 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_c_tools__CCompilationUnit__header_c_types
]))(var
) /* header_c_types on <var:nullable CCompilationUnit>*/;
213 var3
= "#include \"";
215 var5
= string__NativeString__to_s_with_length(var3
, var4
);
219 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(self
) /* mmodule on <self:AModule>*/;
221 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
222 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 47);
225 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_mmodule__MModule__name
]))(var6
) /* name on <var6:nullable MModule>*/;
230 var10
= "._ffi.h\"\n";
232 var12
= string__NativeString__to_s_with_length(var10
, var11
);
236 var13
= NEW_array__Array(&type_array__Arraykernel__Object
);
237 { /* var13 = array_instance Array[Object] */
239 var15
= NEW_array__NativeArray(var14
, &type_array__NativeArraykernel__Object
);
240 ((struct instance_array__NativeArray
*)var15
)->values
[0] = (val
*) var2
;
241 ((struct instance_array__NativeArray
*)var15
)->values
[1] = (val
*) var7
;
242 ((struct instance_array__NativeArray
*)var15
)->values
[2] = (val
*) var9
;
243 ((void (*)(val
*, val
*, long))(var13
->class->vft
[COLOR_array__Array__with_native
]))(var13
, var15
, var14
) /* with_native on <var13:Array[Object]>*/;
245 var16
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_string__Object__to_s
]))(var13
) /* to_s on <var13:Array[Object]>*/;
246 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_template__Template__add
]))(var1
, var16
) /* add on <var1:Template>*/;
247 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_compiler_ffi__AModule__nitni_ccu
]))(self
) /* nitni_ccu on <self:AModule>*/;
248 var18
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
249 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var18
) /* modelbuilder on <var18:AbstractCompiler>*/;
250 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_abstract_compiler__ModelBuilder__compile_dir
]))(var19
) /* compile_dir on <var19:ModelBuilder>*/;
252 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
253 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 49);
256 ((void (*)(val
*, val
*, val
*))(var17
->class->vft
[COLOR_compiler_ffi__CCompilationUnit__write_as_nitni
]))(var17
, self
, var20
) /* write_as_nitni on <var17:nullable CCompilationUnit>*/;
258 var21
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_compiler_ffi__AModule__nitni_ccu
]))(self
) /* nitni_ccu on <self:AModule>*/;
260 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
261 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 51);
264 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_c_tools__CCompilationUnit__files
]))(var21
) /* files on <var21:nullable CCompilationUnit>*/;
266 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var22
) /* iterator on <var22:Array[String]>*/;
268 var24
= ((short int (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var23
) /* is_ok on <var23:Iterator[nullable Object]>*/;
270 var25
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var23
) /* item on <var23:Iterator[nullable Object]>*/;
272 var26
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
273 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__extern_bodies
]))(var26
) /* extern_bodies on <var26:AbstractCompiler>*/;
274 var28
= NEW_c__ExternCFile(&type_c__ExternCFile
);
275 var29
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_c__AModule__c_compiler_options
]))(self
) /* c_compiler_options on <self:AModule>*/;
276 ((void (*)(val
*, val
*, val
*))(var28
->class->vft
[COLOR_c__ExternCFile__init
]))(var28
, var_file
, var29
) /* init on <var28:ExternCFile>*/;
277 ((void (*)(val
*, val
*))(var27
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var27
, var28
) /* add on <var27:Array[ExternFile]>*/;
278 CONTINUE_label
: (void)0;
279 ((void (*)(val
*))(var23
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var23
) /* next on <var23:Iterator[nullable Object]>*/;
281 BREAK_label
: (void)0;
284 /* method compiler_ffi#AModule#finalize_nitni for (self: Object, AbstractCompilerVisitor) */
285 void VIRTUAL_compiler_ffi__AModule__finalize_nitni(val
* self
, val
* p0
) {
286 compiler_ffi__AModule__finalize_nitni(self
, p0
);
289 /* method compiler_ffi#AModule#compiled_callbacks for (self: AModule): Array[NitniCallback] */
290 val
* compiler_ffi__AModule__compiled_callbacks(val
* self
) {
291 val
* var
/* : Array[NitniCallback] */;
292 val
* var1
/* : Array[NitniCallback] */;
293 var1
= self
->attrs
[COLOR_compiler_ffi__AModule___64dcompiled_callbacks
].val
; /* @compiled_callbacks on <self:AModule> */
295 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @compiled_callbacks");
296 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 56);
303 /* method compiler_ffi#AModule#compiled_callbacks for (self: Object): Array[NitniCallback] */
304 val
* VIRTUAL_compiler_ffi__AModule__compiled_callbacks(val
* self
) {
305 val
* var
/* : Array[NitniCallback] */;
306 val
* var1
/* : Array[NitniCallback] */;
307 var1
= compiler_ffi__AModule__compiled_callbacks(self
);
312 /* method compiler_ffi#AModule#compiled_callbacks= for (self: AModule, Array[NitniCallback]) */
313 void compiler_ffi__AModule__compiled_callbacks_61d(val
* self
, val
* p0
) {
314 self
->attrs
[COLOR_compiler_ffi__AModule___64dcompiled_callbacks
].val
= p0
; /* @compiled_callbacks on <self:AModule> */
317 /* method compiler_ffi#AModule#compiled_callbacks= for (self: Object, Array[NitniCallback]) */
318 void VIRTUAL_compiler_ffi__AModule__compiled_callbacks_61d(val
* self
, val
* p0
) {
319 compiler_ffi__AModule__compiled_callbacks_61d(self
, p0
);
322 /* method compiler_ffi#AModule#check_callback_compilation for (self: AModule, NitniCallback): Bool */
323 short int compiler_ffi__AModule__check_callback_compilation(val
* self
, val
* p0
) {
324 short int var
/* : Bool */;
325 val
* var_cb
/* var cb: NitniCallback */;
326 val
* var1
/* : Array[NitniCallback] */;
327 short int var2
/* : Bool */;
328 short int var_compiled
/* var compiled: Bool */;
329 short int var3
/* : Bool */;
330 val
* var4
/* : Array[NitniCallback] */;
331 short int var5
/* : Bool */;
333 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_compiler_ffi__AModule__compiled_callbacks
]))(self
) /* compiled_callbacks on <self:AModule>*/;
334 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var1
, var_cb
) /* has on <var1:Array[NitniCallback]>*/;
336 var3
= !var_compiled
;
338 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_compiler_ffi__AModule__compiled_callbacks
]))(self
) /* compiled_callbacks on <self:AModule>*/;
339 ((void (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var4
, var_cb
) /* add on <var4:Array[NitniCallback]>*/;
342 var5
= !var_compiled
;
348 /* method compiler_ffi#AModule#check_callback_compilation for (self: Object, NitniCallback): Bool */
349 short int VIRTUAL_compiler_ffi__AModule__check_callback_compilation(val
* self
, val
* p0
) {
350 short int var
/* : Bool */;
351 short int var1
/* : Bool */;
352 var1
= compiler_ffi__AModule__check_callback_compilation(self
, p0
);
357 /* method compiler_ffi#AExternPropdef#compile_ffi_support_to_c for (self: AExternPropdef, AbstractCompilerVisitor) */
358 void compiler_ffi__AExternPropdef__compile_ffi_support_to_c(val
* self
, val
* p0
) {
359 val
* var_v
/* var v: AbstractCompilerVisitor */;
360 val
* var
/* : nullable MPropDef */;
361 val
* var1
/* : MClassDef */;
362 val
* var2
/* : MModule */;
363 val
* var_mmodule
/* var mmodule: MModule */;
364 val
* var3
/* : AbstractCompiler */;
365 val
* var4
/* : ModelBuilder */;
366 val
* var5
/* : HashMap[MModule, AModule] */;
367 val
* var6
/* : AbstractCompiler */;
368 val
* var7
/* : MModule */;
369 val
* var8
/* : nullable Object */;
370 val
* var_amainmodule
/* var amainmodule: AModule */;
371 val
* var9
/* : AbstractCompiler */;
372 val
* var10
/* : ModelBuilder */;
373 val
* var11
/* : HashMap[MModule, AModule] */;
374 val
* var12
/* : nullable Object */;
375 val
* var_amodule
/* var amodule: AModule */;
376 val
* var13
/* : nullable MPropDef */;
377 val
* var14
/* : MClassDef */;
378 val
* var15
/* : MClassType */;
379 val
* var_mclass_type
/* var mclass_type: MClassType */;
380 val
* var16
/* : nullable MPropDef */;
381 val
* var17
/* : MProperty */;
383 val
* var18
/* : String */;
384 char* var19
/* : NativeString */;
385 long var20
/* : Int */;
386 val
* var21
/* : String */;
387 val
* var22
/* : SignatureLength */;
388 val
* var23
/* : CallContext */;
389 val
* var24
/* : String */;
390 val
* var_csignature
/* var csignature: String */;
391 static val
* varonce25
;
392 val
* var26
/* : String */;
393 char* var27
/* : NativeString */;
394 long var28
/* : Int */;
395 val
* var29
/* : String */;
396 val
* var30
/* : Array[Object] */;
397 long var31
/* : Int */;
398 val
* var32
/* : NativeArray[Object] */;
399 val
* var33
/* : String */;
400 val
* var34
/* : nullable CCompilationUnit */;
401 val
* var_ccu
/* var ccu: CCompilationUnit */;
402 val
* var35
/* : ForeignCallbackSet */;
403 val
* var36
/* : Set[MType] */;
404 val
* var37
/* : Iterator[nullable Object] */;
405 short int var38
/* : Bool */;
406 val
* var39
/* : nullable Object */;
407 val
* var_mtype
/* var mtype: MType */;
408 short int var40
/* : Bool */;
409 short int var41
/* : Bool */;
410 short int var42
/* : Bool */;
411 val
* var43
/* : ForeignCallbackSet */;
412 val
* var44
/* : Set[MExplicitCall] */;
413 val
* var45
/* : Iterator[nullable Object] */;
414 short int var46
/* : Bool */;
415 val
* var47
/* : nullable Object */;
416 val
* var_cb
/* var cb: MExplicitCall */;
417 short int var48
/* : Bool */;
418 val
* var50
/* : ForeignCallbackSet */;
419 val
* var51
/* : Set[MExplicitSuper] */;
420 val
* var52
/* : Iterator[nullable Object] */;
421 short int var53
/* : Bool */;
422 val
* var54
/* : nullable Object */;
423 val
* var_cb55
/* var cb: MExplicitSuper */;
424 short int var56
/* : Bool */;
425 val
* var58
/* : ForeignCallbackSet */;
426 val
* var59
/* : Set[MExplicitCast] */;
427 val
* var60
/* : Iterator[nullable Object] */;
428 short int var61
/* : Bool */;
429 val
* var62
/* : nullable Object */;
430 val
* var_cb63
/* var cb: MExplicitCast */;
431 short int var64
/* : Bool */;
432 val
* var66
/* : ForeignCallbackSet */;
433 val
* var67
/* : ForeignCallbackSet */;
435 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AExternPropdef>*/;
437 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
438 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 70);
441 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var
) /* mclassdef on <var:nullable MPropDef(nullable MMethodDef)>*/;
443 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var1
) /* mmodule on <var1:MClassDef>*/;
445 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
446 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var3
) /* modelbuilder on <var3:AbstractCompiler>*/;
447 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelbuilder__ModelBuilder__mmodule2nmodule
]))(var4
) /* mmodule2nmodule on <var4:ModelBuilder>*/;
448 var6
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
449 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var6
) /* mainmodule on <var6:AbstractCompiler>*/;
450 var8
= ((val
* (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var5
, var7
) /* [] on <var5:HashMap[MModule, AModule]>*/;
451 var_amainmodule
= var8
;
452 var9
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
453 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var9
) /* modelbuilder on <var9:AbstractCompiler>*/;
454 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_modelbuilder__ModelBuilder__mmodule2nmodule
]))(var10
) /* mmodule2nmodule on <var10:ModelBuilder>*/;
455 var12
= ((val
* (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var11
, var_mmodule
) /* [] on <var11:HashMap[MModule, AModule]>*/;
457 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AExternPropdef>*/;
459 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
460 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 73);
463 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var13
) /* mclassdef on <var13:nullable MPropDef(nullable MMethodDef)>*/;
465 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var14
) /* bound_mtype on <var14:MClassDef>*/;
466 var_mclass_type
= var15
;
467 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AExternPropdef>*/;
469 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
470 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 76);
473 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var16
) /* mproperty on <var16:nullable MPropDef(nullable MMethodDef)>*/;
480 var21
= string__NativeString__to_s_with_length(var19
, var20
);
484 var22
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_utilities__Object__long_signature
]))(self
) /* long_signature on <self:AExternPropdef>*/;
485 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_utilities__Object__internal_call_context
]))(self
) /* internal_call_context on <self:AExternPropdef>*/;
486 var24
= ((val
* (*)(val
*, val
*, val
*, val
*, val
*, val
*))(var17
->class->vft
[COLOR_nitni_utilities__MMethod__build_csignature
]))(var17
, var_mclass_type
, var_mmodule
, var18
, var22
, var23
) /* build_csignature on <var17:MProperty(MMethod)>*/;
487 var_csignature
= var24
;
493 var29
= string__NativeString__to_s_with_length(var27
, var28
);
497 var30
= NEW_array__Array(&type_array__Arraykernel__Object
);
498 { /* var30 = array_instance Array[Object] */
500 var32
= NEW_array__NativeArray(var31
, &type_array__NativeArraykernel__Object
);
501 ((struct instance_array__NativeArray
*)var32
)->values
[0] = (val
*) var_csignature
;
502 ((struct instance_array__NativeArray
*)var32
)->values
[1] = (val
*) var26
;
503 ((void (*)(val
*, val
*, long))(var30
->class->vft
[COLOR_array__Array__with_native
]))(var30
, var32
, var31
) /* with_native on <var30:Array[Object]>*/;
505 var33
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_string__Object__to_s
]))(var30
) /* to_s on <var30:Array[Object]>*/;
506 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__declare_once
]))(var_v
, var33
) /* declare_once on <var_v:AbstractCompilerVisitor>*/;
507 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_common_ffi__AExternPropdef__compile_ffi_method
]))(self
, var_amodule
) /* compile_ffi_method on <self:AExternPropdef>*/;
508 ((void (*)(val
*, val
*))(var_amodule
->class->vft
[COLOR_compiler_ffi__AModule__ensure_compile_nitni_base
]))(var_amodule
, var_v
) /* ensure_compile_nitni_base on <var_amodule:AModule>*/;
509 var34
= ((val
* (*)(val
*))(var_amodule
->class->vft
[COLOR_compiler_ffi__AModule__nitni_ccu
]))(var_amodule
) /* nitni_ccu on <var_amodule:AModule>*/;
511 fprintf(stderr
, "Runtime error: %s", "Cast failed");
512 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 84);
516 var35
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__AExternPropdef__foreign_callbacks
]))(self
) /* foreign_callbacks on <self:AExternPropdef>*/;
517 var36
= ((val
* (*)(val
*))(var35
->class->vft
[COLOR_nitni_callbacks__ForeignCallbackSet__types
]))(var35
) /* types on <var35:ForeignCallbackSet>*/;
518 var37
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var36
) /* iterator on <var36:Set[MType]>*/;
520 var38
= ((short int (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var37
) /* is_ok on <var37:Iterator[nullable Object]>*/;
522 var39
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var37
) /* item on <var37:Iterator[nullable Object]>*/;
524 var40
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_nitni_base__MType__is_cprimitive
]))(var_mtype
) /* is_cprimitive on <var_mtype:MType>*/;
527 ((void (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_compiler_ffi__MType__compile_extern_type
]))(var_mtype
, var_v
, var_ccu
) /* compile_extern_type on <var_mtype:MType>*/;
528 var42
= ((short int (*)(val
*, val
*))(var_amodule
->class->vft
[COLOR_compiler_ffi__AModule__check_callback_compilation
]))(var_amodule
, var_mtype
) /* check_callback_compilation on <var_amodule:AModule>*/;
530 ((void (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_compiler_ffi__MType__compile_extern_helper_functions
]))(var_mtype
, var_v
, var_ccu
) /* compile_extern_helper_functions on <var_mtype:MType>*/;
535 CONTINUE_label
: (void)0;
536 ((void (*)(val
*))(var37
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var37
) /* next on <var37:Iterator[nullable Object]>*/;
538 BREAK_label
: (void)0;
539 var43
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__AExternPropdef__foreign_callbacks
]))(self
) /* foreign_callbacks on <self:AExternPropdef>*/;
540 var44
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_nitni_callbacks__ForeignCallbackSet__callbacks
]))(var43
) /* callbacks on <var43:ForeignCallbackSet>*/;
541 var45
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var44
) /* iterator on <var44:Set[MExplicitCall]>*/;
543 var46
= ((short int (*)(val
*))(var45
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var45
) /* is_ok on <var45:Iterator[nullable Object]>*/;
545 var47
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var45
) /* item on <var45:Iterator[nullable Object]>*/;
547 var48
= ((short int (*)(val
*, val
*))(var_amainmodule
->class->vft
[COLOR_compiler_ffi__AModule__check_callback_compilation
]))(var_amainmodule
, var_cb
) /* check_callback_compilation on <var_amainmodule:AModule>*/;
549 ((void (*)(val
*, val
*, val
*))(var_cb
->class->vft
[COLOR_compiler_ffi__MExplicitCall__compile_extern_callback
]))(var_cb
, var_v
, var_ccu
) /* compile_extern_callback on <var_cb:MExplicitCall>*/;
552 CONTINUE_label49
: (void)0;
553 ((void (*)(val
*))(var45
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var45
) /* next on <var45:Iterator[nullable Object]>*/;
555 BREAK_label49
: (void)0;
556 var50
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__AExternPropdef__foreign_callbacks
]))(self
) /* foreign_callbacks on <self:AExternPropdef>*/;
557 var51
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_nitni_callbacks__ForeignCallbackSet__supers
]))(var50
) /* supers on <var50:ForeignCallbackSet>*/;
558 var52
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var51
) /* iterator on <var51:Set[MExplicitSuper]>*/;
560 var53
= ((short int (*)(val
*))(var52
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var52
) /* is_ok on <var52:Iterator[nullable Object]>*/;
562 var54
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var52
) /* item on <var52:Iterator[nullable Object]>*/;
564 var56
= ((short int (*)(val
*, val
*))(var_amainmodule
->class->vft
[COLOR_compiler_ffi__AModule__check_callback_compilation
]))(var_amainmodule
, var_cb55
) /* check_callback_compilation on <var_amainmodule:AModule>*/;
566 ((void (*)(val
*, val
*, val
*))(var_cb55
->class->vft
[COLOR_compiler_ffi__MExplicitSuper__compile_extern_callback
]))(var_cb55
, var_v
, var_ccu
) /* compile_extern_callback on <var_cb55:MExplicitSuper>*/;
569 CONTINUE_label57
: (void)0;
570 ((void (*)(val
*))(var52
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var52
) /* next on <var52:Iterator[nullable Object]>*/;
572 BREAK_label57
: (void)0;
573 var58
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__AExternPropdef__foreign_callbacks
]))(self
) /* foreign_callbacks on <self:AExternPropdef>*/;
574 var59
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_nitni_callbacks__ForeignCallbackSet__casts
]))(var58
) /* casts on <var58:ForeignCallbackSet>*/;
575 var60
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var59
) /* iterator on <var59:Set[MExplicitCast]>*/;
577 var61
= ((short int (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var60
) /* is_ok on <var60:Iterator[nullable Object]>*/;
579 var62
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var60
) /* item on <var60:Iterator[nullable Object]>*/;
581 var64
= ((short int (*)(val
*, val
*))(var_amainmodule
->class->vft
[COLOR_compiler_ffi__AModule__check_callback_compilation
]))(var_amainmodule
, var_cb63
) /* check_callback_compilation on <var_amainmodule:AModule>*/;
583 ((void (*)(val
*, val
*, val
*))(var_cb63
->class->vft
[COLOR_compiler_ffi__MExplicitCast__compile_extern_callbacks
]))(var_cb63
, var_v
, var_ccu
) /* compile_extern_callbacks on <var_cb63:MExplicitCast>*/;
586 CONTINUE_label65
: (void)0;
587 ((void (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var60
) /* next on <var60:Iterator[nullable Object]>*/;
589 BREAK_label65
: (void)0;
590 var66
= ((val
* (*)(val
*))(var_amodule
->class->vft
[COLOR_compiler_ffi__AModule__foreign_callbacks
]))(var_amodule
) /* foreign_callbacks on <var_amodule:AModule>*/;
591 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__AExternPropdef__foreign_callbacks
]))(self
) /* foreign_callbacks on <self:AExternPropdef>*/;
592 ((void (*)(val
*, val
*))(var66
->class->vft
[COLOR_nitni_callbacks__ForeignCallbackSet__join
]))(var66
, var67
) /* join on <var66:ForeignCallbackSet>*/;
595 /* method compiler_ffi#AExternPropdef#compile_ffi_support_to_c for (self: Object, AbstractCompilerVisitor) */
596 void VIRTUAL_compiler_ffi__AExternPropdef__compile_ffi_support_to_c(val
* self
, val
* p0
) {
597 compiler_ffi__AExternPropdef__compile_ffi_support_to_c(self
, p0
);
600 /* method compiler_ffi#AExternMethPropdef#compile_to_c for (self: AExternMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
601 void compiler_ffi__AExternMethPropdef__compile_to_c(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
602 val
* var_v
/* var v: AbstractCompilerVisitor */;
603 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
604 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
605 val
* var
/* : MClassDef */;
606 val
* var1
/* : MModule */;
607 val
* var_mmodule
/* var mmodule: MModule */;
608 val
* var2
/* : AbstractCompiler */;
609 val
* var3
/* : ModelBuilder */;
610 val
* var4
/* : HashMap[MModule, AModule] */;
611 val
* var5
/* : nullable Object */;
612 val
* var_amodule
/* var amodule: AModule */;
613 val
* var6
/* : nullable TString */;
614 val
* var_nextern
/* var nextern: nullable TString */;
615 val
* var7
/* : null */;
616 short int var8
/* : Bool */;
617 short int var9
/* : Bool */;
618 val
* var10
/* : nullable MModule */;
619 short int var11
/* : Bool */;
620 val
* var12
/* : MClassDef */;
621 val
* var13
/* : MClassType */;
622 val
* var_mclass_type
/* var mclass_type: MClassType */;
623 val
* var14
/* : MProperty */;
624 val
* var15
/* : MClassDef */;
625 val
* var16
/* : MClassType */;
627 val
* var17
/* : String */;
628 char* var18
/* : NativeString */;
629 long var19
/* : Int */;
630 val
* var20
/* : String */;
631 val
* var21
/* : SignatureLength */;
632 val
* var22
/* : String */;
633 val
* var_externname
/* var externname: String */;
634 val
* var23
/* : null */;
635 val
* var_recv_var
/* var recv_var: nullable RuntimeVariable */;
636 val
* var24
/* : nullable MSignature */;
637 val
* var25
/* : nullable MType */;
638 val
* var_return_mtype
/* var return_mtype: nullable MType */;
639 val
* var26
/* : null */;
640 short int var27
/* : Bool */;
641 val
* var28
/* : MType */;
642 val
* var29
/* : RuntimeVariable */;
643 val
* var30
/* : Array[String] */;
644 val
* var_arguments_for_c
/* var arguments_for_c: Array[String] */;
645 val
* var31
/* : Range[Int] */;
646 long var32
/* : Int */;
647 long var33
/* : Int */;
648 val
* var34
/* : Discrete */;
649 val
* var35
/* : Discrete */;
650 val
* var36
/* : Iterator[nullable Object] */;
651 short int var37
/* : Bool */;
652 val
* var38
/* : nullable Object */;
653 long var_a
/* var a: Int */;
654 long var39
/* : Int */;
655 val
* var40
/* : nullable Object */;
656 val
* var_arg
/* var arg: RuntimeVariable */;
657 long var41
/* : Int */;
658 short int var42
/* : Bool */;
659 short int var44
/* : Bool */;
660 val
* var45
/* : MClassDef */;
661 val
* var46
/* : MClass */;
662 val
* var47
/* : MClassType */;
663 val
* var_param_mtype
/* var param_mtype: MType */;
664 val
* var48
/* : nullable MSignature */;
665 val
* var49
/* : Array[MParameter] */;
666 long var50
/* : Int */;
667 long var51
/* : Int */;
668 long var53
/* : Int */;
669 val
* var54
/* : nullable Object */;
670 val
* var55
/* : MType */;
671 val
* var56
/* : MType */;
672 short int var57
/* : Bool */;
673 val
* var58
/* : String */;
674 static val
* varonce59
;
675 val
* var60
/* : String */;
676 char* var61
/* : NativeString */;
677 long var62
/* : Int */;
678 val
* var63
/* : String */;
679 static val
* varonce64
;
680 val
* var65
/* : String */;
681 char* var66
/* : NativeString */;
682 long var67
/* : Int */;
683 val
* var68
/* : String */;
684 val
* var69
/* : Array[Object] */;
685 long var70
/* : Int */;
686 val
* var71
/* : NativeArray[Object] */;
687 val
* var72
/* : Object */;
688 val
* var73
/* : String */;
689 static val
* varonce74
;
690 val
* var75
/* : String */;
691 char* var76
/* : NativeString */;
692 long var77
/* : Int */;
693 val
* var78
/* : String */;
694 static val
* varonce79
;
695 val
* var80
/* : String */;
696 char* var81
/* : NativeString */;
697 long var82
/* : Int */;
698 val
* var83
/* : String */;
699 val
* var84
/* : Array[Object] */;
700 long var85
/* : Int */;
701 val
* var86
/* : NativeArray[Object] */;
702 val
* var87
/* : Object */;
703 val
* var88
/* : String */;
704 static val
* varonce89
;
705 val
* var90
/* : String */;
706 char* var91
/* : NativeString */;
707 long var92
/* : Int */;
708 val
* var93
/* : String */;
709 static val
* varonce94
;
710 val
* var95
/* : String */;
711 char* var96
/* : NativeString */;
712 long var97
/* : Int */;
713 val
* var98
/* : String */;
714 val
* var99
/* : String */;
715 static val
* varonce100
;
716 val
* var101
/* : String */;
717 char* var102
/* : NativeString */;
718 long var103
/* : Int */;
719 val
* var104
/* : String */;
720 val
* var105
/* : Array[Object] */;
721 long var106
/* : Int */;
722 val
* var107
/* : NativeArray[Object] */;
723 val
* var108
/* : Object */;
724 val
* var109
/* : String */;
725 static val
* varonce110
;
726 val
* var111
/* : String */;
727 char* var112
/* : NativeString */;
728 long var113
/* : Int */;
729 val
* var114
/* : String */;
730 val
* var115
/* : Array[Object] */;
731 long var116
/* : Int */;
732 val
* var117
/* : NativeArray[Object] */;
733 val
* var118
/* : Object */;
734 val
* var119
/* : String */;
735 val
* var120
/* : null */;
736 short int var121
/* : Bool */;
737 static val
* varonce122
;
738 val
* var123
/* : String */;
739 char* var124
/* : NativeString */;
740 long var125
/* : Int */;
741 val
* var126
/* : String */;
742 static val
* varonce127
;
743 val
* var128
/* : String */;
744 char* var129
/* : NativeString */;
745 long var130
/* : Int */;
746 val
* var131
/* : String */;
747 val
* var132
/* : String */;
748 static val
* varonce133
;
749 val
* var134
/* : String */;
750 char* var135
/* : NativeString */;
751 long var136
/* : Int */;
752 val
* var137
/* : String */;
753 val
* var138
/* : Array[Object] */;
754 long var139
/* : Int */;
755 val
* var140
/* : NativeArray[Object] */;
756 val
* var141
/* : String */;
757 val
* var142
/* : null */;
758 short int var143
/* : Bool */;
759 short int var144
/* : Bool */;
760 static val
* varonce145
;
761 val
* var146
/* : String */;
762 char* var147
/* : NativeString */;
763 long var148
/* : Int */;
764 val
* var149
/* : String */;
765 static val
* varonce150
;
766 val
* var151
/* : String */;
767 char* var152
/* : NativeString */;
768 long var153
/* : Int */;
769 val
* var154
/* : String */;
770 static val
* varonce155
;
771 val
* var156
/* : String */;
772 char* var157
/* : NativeString */;
773 long var158
/* : Int */;
774 val
* var159
/* : String */;
775 val
* var160
/* : String */;
776 static val
* varonce161
;
777 val
* var162
/* : String */;
778 char* var163
/* : NativeString */;
779 long var164
/* : Int */;
780 val
* var165
/* : String */;
781 val
* var166
/* : Array[Object] */;
782 long var167
/* : Int */;
783 val
* var168
/* : NativeArray[Object] */;
784 val
* var169
/* : String */;
785 static val
* varonce170
;
786 val
* var171
/* : String */;
787 char* var172
/* : NativeString */;
788 long var173
/* : Int */;
789 val
* var174
/* : String */;
790 static val
* varonce175
;
791 val
* var176
/* : String */;
792 char* var177
/* : NativeString */;
793 long var178
/* : Int */;
794 val
* var179
/* : String */;
795 static val
* varonce180
;
796 val
* var181
/* : String */;
797 char* var182
/* : NativeString */;
798 long var183
/* : Int */;
799 val
* var184
/* : String */;
800 static val
* varonce185
;
801 val
* var186
/* : String */;
802 char* var187
/* : NativeString */;
803 long var188
/* : Int */;
804 val
* var189
/* : String */;
805 val
* var190
/* : String */;
806 static val
* varonce191
;
807 val
* var192
/* : String */;
808 char* var193
/* : NativeString */;
809 long var194
/* : Int */;
810 val
* var195
/* : String */;
811 val
* var196
/* : Array[Object] */;
812 long var197
/* : Int */;
813 val
* var198
/* : NativeArray[Object] */;
814 val
* var199
/* : String */;
815 static val
* varonce200
;
816 val
* var201
/* : String */;
817 char* var202
/* : NativeString */;
818 long var203
/* : Int */;
819 val
* var204
/* : String */;
820 val
* var205
/* : Array[Object] */;
821 long var206
/* : Int */;
822 val
* var207
/* : NativeArray[Object] */;
823 val
* var208
/* : String */;
827 var
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MMethodDef>*/;
828 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var
) /* mmodule on <var:MClassDef>*/;
830 var2
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
831 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var2
) /* modelbuilder on <var2:AbstractCompiler>*/;
832 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_modelbuilder__ModelBuilder__mmodule2nmodule
]))(var3
) /* mmodule2nmodule on <var3:ModelBuilder>*/;
833 var5
= ((val
* (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var4
, var_mmodule
) /* [] on <var4:HashMap[MModule, AModule]>*/;
835 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AExternPropdef__n_extern
]))(self
) /* n_extern on <self:AExternMethPropdef>*/;
838 if (var_nextern
== NULL
) {
839 var8
= 0; /* is null */
841 var8
= 1; /* arg is null and recv is not */
845 ((void (*)(val
*, short int))(var_amodule
->class->vft
[COLOR_compiler_ffi__AModule__uses_legacy_ni_61d
]))(var_amodule
, var9
) /* uses_legacy_ni= on <var_amodule:AModule>*/;
846 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_compiler_ffi__AExternMethPropdef__compile_to_c
]))(self
, p0
, p1
, p2
) /* compile_to_c on <self:AExternMethPropdef>*/;
850 var10
= ((val
* (*)(val
*))(var_amodule
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var_amodule
) /* mmodule on <var_amodule:AModule>*/;
853 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
854 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 127);
857 ((void (*)(val
*, short int))(var10
->class->vft
[COLOR_common_ffi__MModule__uses_ffi_61d
]))(var10
, var11
) /* uses_ffi= on <var10:nullable MModule>*/;
859 var12
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MMethodDef>*/;
860 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var12
) /* bound_mtype on <var12:MClassDef>*/;
861 var_mclass_type
= var13
;
862 var14
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_mpropdef
) /* mproperty on <var_mpropdef:MMethodDef>*/;
863 var15
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MMethodDef>*/;
864 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var15
) /* bound_mtype on <var15:MClassDef>*/;
870 var20
= string__NativeString__to_s_with_length(var18
, var19
);
874 var21
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_utilities__Object__long_signature
]))(self
) /* long_signature on <self:AExternMethPropdef>*/;
875 var22
= ((val
* (*)(val
*, val
*, val
*, val
*, val
*))(var14
->class->vft
[COLOR_nitni_utilities__MMethod__build_cname
]))(var14
, var16
, var_mmodule
, var17
, var21
) /* build_cname on <var14:MProperty(MMethod)>*/;
876 var_externname
= var22
;
878 var_recv_var
= var23
;
879 var24
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mpropdef
) /* msignature on <var_mpropdef:MMethodDef>*/;
881 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
882 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 134);
885 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var24
) /* return_mtype on <var24:nullable MSignature>*/;
887 var_return_mtype
= var25
;
889 if (var_return_mtype
== NULL
) {
890 var27
= 0; /* is null */
892 var27
= 1; /* arg is null and recv is not */
895 var28
= ((val
* (*)(val
*, val
*, val
*))(var_return_mtype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_return_mtype
, var_mmodule
, var_mclass_type
) /* anchor_to on <var_return_mtype:nullable MType(MType)>*/;
896 var_return_mtype
= var28
;
897 var29
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(var_v
, var_return_mtype
) /* new_var on <var_v:AbstractCompilerVisitor>*/;
898 var_recv_var
= var29
;
901 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__adapt_signature
]))(var_v
, var_mpropdef
, var_arguments
) /* adapt_signature on <var_v:AbstractCompilerVisitor>*/;
902 var30
= NEW_array__Array(&type_array__Arraystring__String
);
903 ((void (*)(val
*))(var30
->class->vft
[COLOR_array__Array__init
]))(var30
) /* init on <var30:Array[String]>*/;
904 var_arguments_for_c
= var30
;
905 var31
= NEW_range__Range(&type_range__Rangekernel__Int
);
907 var33
= ((long (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_arguments
) /* length on <var_arguments:Array[RuntimeVariable]>*/;
908 var34
= BOX_kernel__Int(var32
); /* autobox from Int to Discrete */
909 var35
= BOX_kernel__Int(var33
); /* autobox from Int to Discrete */
910 ((void (*)(val
*, val
*, val
*))(var31
->class->vft
[COLOR_range__Range__without_last
]))(var31
, var34
, var35
) /* without_last on <var31:Range[Int]>*/;
911 var36
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var31
) /* iterator on <var31:Range[Int]>*/;
913 var37
= ((short int (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var36
) /* is_ok on <var36:Iterator[nullable Object]>*/;
915 var38
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var36
) /* item on <var36:Iterator[nullable Object]>*/;
916 var39
= ((struct instance_kernel__Int
*)var38
)->value
; /* autounbox from nullable Object to Int */;
918 var40
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var_a
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
921 { /* Inline kernel#Int#== (var_a,var41) */
922 var44
= var_a
== var41
;
928 var45
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MMethodDef>*/;
929 var46
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_model__MClassDef__mclass
]))(var45
) /* mclass on <var45:MClassDef>*/;
930 var47
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_model__MClass__mclass_type
]))(var46
) /* mclass_type on <var46:MClass>*/;
931 var_param_mtype
= var47
;
933 var48
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mpropdef
) /* msignature on <var_mpropdef:MMethodDef>*/;
935 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
936 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 148);
939 var49
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_model__MSignature__mparameters
]))(var48
) /* mparameters on <var48:nullable MSignature>*/;
942 { /* Inline kernel#Int#- (var_a,var50) */
943 var53
= var_a
- var50
;
948 var54
= ((val
* (*)(val
*, long))(var49
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var49
, var51
) /* [] on <var49:Array[MParameter]>*/;
949 var55
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_model__MParameter__mtype
]))(var54
) /* mtype on <var54:nullable Object(MParameter)>*/;
950 var_param_mtype
= var55
;
952 var56
= ((val
* (*)(val
*, val
*, val
*))(var_param_mtype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_param_mtype
, var_mmodule
, var_mclass_type
) /* anchor_to on <var_param_mtype:MType>*/;
953 var_param_mtype
= var56
;
954 var57
= ((short int (*)(val
*))(var_param_mtype
->class->vft
[COLOR_nitni_base__MType__is_cprimitive
]))(var_param_mtype
) /* is_cprimitive on <var_param_mtype:MType>*/;
956 var58
= ((val
* (*)(val
*))(var_arg
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__name
]))(var_arg
) /* name on <var_arg:RuntimeVariable>*/;
957 ((void (*)(val
*, val
*))(var_arguments_for_c
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_arguments_for_c
, var58
) /* add on <var_arguments_for_c:Array[String]>*/;
962 var61
= "struct nitni_instance* var_for_c_";
964 var63
= string__NativeString__to_s_with_length(var61
, var62
);
973 var68
= string__NativeString__to_s_with_length(var66
, var67
);
977 var69
= NEW_array__Array(&type_array__Arraykernel__Object
);
978 { /* var69 = array_instance Array[Object] */
980 var71
= NEW_array__NativeArray(var70
, &type_array__NativeArraykernel__Object
);
981 ((struct instance_array__NativeArray
*)var71
)->values
[0] = (val
*) var60
;
982 var72
= BOX_kernel__Int(var_a
); /* autobox from Int to Object */
983 ((struct instance_array__NativeArray
*)var71
)->values
[1] = (val
*) var72
;
984 ((struct instance_array__NativeArray
*)var71
)->values
[2] = (val
*) var65
;
985 ((void (*)(val
*, val
*, long))(var69
->class->vft
[COLOR_array__Array__with_native
]))(var69
, var71
, var70
) /* with_native on <var69:Array[Object]>*/;
987 var73
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_string__Object__to_s
]))(var69
) /* to_s on <var69:Array[Object]>*/;
988 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var73
) /* add on <var_v:AbstractCompilerVisitor>*/;
992 var76
= "var_for_c_";
994 var78
= string__NativeString__to_s_with_length(var76
, var77
);
1001 var81
= " = malloc(sizeof(struct nitni_instance));";
1003 var83
= string__NativeString__to_s_with_length(var81
, var82
);
1007 var84
= NEW_array__Array(&type_array__Arraykernel__Object
);
1008 { /* var84 = array_instance Array[Object] */
1010 var86
= NEW_array__NativeArray(var85
, &type_array__NativeArraykernel__Object
);
1011 ((struct instance_array__NativeArray
*)var86
)->values
[0] = (val
*) var75
;
1012 var87
= BOX_kernel__Int(var_a
); /* autobox from Int to Object */
1013 ((struct instance_array__NativeArray
*)var86
)->values
[1] = (val
*) var87
;
1014 ((struct instance_array__NativeArray
*)var86
)->values
[2] = (val
*) var80
;
1015 ((void (*)(val
*, val
*, long))(var84
->class->vft
[COLOR_array__Array__with_native
]))(var84
, var86
, var85
) /* with_native on <var84:Array[Object]>*/;
1017 var88
= ((val
* (*)(val
*))(var84
->class->vft
[COLOR_string__Object__to_s
]))(var84
) /* to_s on <var84:Array[Object]>*/;
1018 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var88
) /* add on <var_v:AbstractCompilerVisitor>*/;
1022 var91
= "var_for_c_";
1024 var93
= string__NativeString__to_s_with_length(var91
, var92
);
1031 var96
= "->value = ";
1033 var98
= string__NativeString__to_s_with_length(var96
, var97
);
1037 var99
= ((val
* (*)(val
*))(var_arg
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__name
]))(var_arg
) /* name on <var_arg:RuntimeVariable>*/;
1039 var101
= varonce100
;
1043 var104
= string__NativeString__to_s_with_length(var102
, var103
);
1045 varonce100
= var101
;
1047 var105
= NEW_array__Array(&type_array__Arraykernel__Object
);
1048 { /* var105 = array_instance Array[Object] */
1050 var107
= NEW_array__NativeArray(var106
, &type_array__NativeArraykernel__Object
);
1051 ((struct instance_array__NativeArray
*)var107
)->values
[0] = (val
*) var90
;
1052 var108
= BOX_kernel__Int(var_a
); /* autobox from Int to Object */
1053 ((struct instance_array__NativeArray
*)var107
)->values
[1] = (val
*) var108
;
1054 ((struct instance_array__NativeArray
*)var107
)->values
[2] = (val
*) var95
;
1055 ((struct instance_array__NativeArray
*)var107
)->values
[3] = (val
*) var99
;
1056 ((struct instance_array__NativeArray
*)var107
)->values
[4] = (val
*) var101
;
1057 ((void (*)(val
*, val
*, long))(var105
->class->vft
[COLOR_array__Array__with_native
]))(var105
, var107
, var106
) /* with_native on <var105:Array[Object]>*/;
1059 var109
= ((val
* (*)(val
*))(var105
->class->vft
[COLOR_string__Object__to_s
]))(var105
) /* to_s on <var105:Array[Object]>*/;
1060 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var109
) /* add on <var_v:AbstractCompilerVisitor>*/;
1062 var111
= varonce110
;
1064 var112
= "var_for_c_";
1066 var114
= string__NativeString__to_s_with_length(var112
, var113
);
1068 varonce110
= var111
;
1070 var115
= NEW_array__Array(&type_array__Arraykernel__Object
);
1071 { /* var115 = array_instance Array[Object] */
1073 var117
= NEW_array__NativeArray(var116
, &type_array__NativeArraykernel__Object
);
1074 ((struct instance_array__NativeArray
*)var117
)->values
[0] = (val
*) var111
;
1075 var118
= BOX_kernel__Int(var_a
); /* autobox from Int to Object */
1076 ((struct instance_array__NativeArray
*)var117
)->values
[1] = (val
*) var118
;
1077 ((void (*)(val
*, val
*, long))(var115
->class->vft
[COLOR_array__Array__with_native
]))(var115
, var117
, var116
) /* with_native on <var115:Array[Object]>*/;
1079 var119
= ((val
* (*)(val
*))(var115
->class->vft
[COLOR_string__Object__to_s
]))(var115
) /* to_s on <var115:Array[Object]>*/;
1080 ((void (*)(val
*, val
*))(var_arguments_for_c
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_arguments_for_c
, var119
) /* add on <var_arguments_for_c:Array[String]>*/;
1082 CONTINUE_label
: (void)0;
1083 ((void (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var36
) /* next on <var36:Iterator[nullable Object]>*/;
1085 BREAK_label
: (void)0;
1087 if (var_recv_var
== NULL
) {
1088 var121
= 1; /* is null */
1090 var121
= 0; /* arg is null but recv is not */
1094 var123
= varonce122
;
1098 var126
= string__NativeString__to_s_with_length(var124
, var125
);
1100 varonce122
= var123
;
1103 var128
= varonce127
;
1107 var131
= string__NativeString__to_s_with_length(var129
, var130
);
1109 varonce127
= var128
;
1111 var132
= ((val
* (*)(val
*, val
*))(var_arguments_for_c
->class->vft
[COLOR_string__Collection__join
]))(var_arguments_for_c
, var128
) /* join on <var_arguments_for_c:Array[String]>*/;
1113 var134
= varonce133
;
1117 var137
= string__NativeString__to_s_with_length(var135
, var136
);
1119 varonce133
= var134
;
1121 var138
= NEW_array__Array(&type_array__Arraykernel__Object
);
1122 { /* var138 = array_instance Array[Object] */
1124 var140
= NEW_array__NativeArray(var139
, &type_array__NativeArraykernel__Object
);
1125 ((struct instance_array__NativeArray
*)var140
)->values
[0] = (val
*) var_externname
;
1126 ((struct instance_array__NativeArray
*)var140
)->values
[1] = (val
*) var123
;
1127 ((struct instance_array__NativeArray
*)var140
)->values
[2] = (val
*) var132
;
1128 ((struct instance_array__NativeArray
*)var140
)->values
[3] = (val
*) var134
;
1129 ((void (*)(val
*, val
*, long))(var138
->class->vft
[COLOR_array__Array__with_native
]))(var138
, var140
, var139
) /* with_native on <var138:Array[Object]>*/;
1131 var141
= ((val
* (*)(val
*))(var138
->class->vft
[COLOR_string__Object__to_s
]))(var138
) /* to_s on <var138:Array[Object]>*/;
1132 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var141
) /* add on <var_v:AbstractCompilerVisitor>*/;
1135 if (var_return_mtype
== NULL
) {
1136 var143
= 0; /* is null */
1138 var143
= 1; /* arg is null and recv is not */
1141 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1142 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 165);
1145 var144
= ((short int (*)(val
*))(var_return_mtype
->class->vft
[COLOR_nitni_base__MType__is_cprimitive
]))(var_return_mtype
) /* is_cprimitive on <var_return_mtype:nullable MType(MType)>*/;
1148 var146
= varonce145
;
1152 var149
= string__NativeString__to_s_with_length(var147
, var148
);
1154 varonce145
= var146
;
1157 var151
= varonce150
;
1161 var154
= string__NativeString__to_s_with_length(var152
, var153
);
1163 varonce150
= var151
;
1166 var156
= varonce155
;
1170 var159
= string__NativeString__to_s_with_length(var157
, var158
);
1172 varonce155
= var156
;
1174 var160
= ((val
* (*)(val
*, val
*))(var_arguments_for_c
->class->vft
[COLOR_string__Collection__join
]))(var_arguments_for_c
, var156
) /* join on <var_arguments_for_c:Array[String]>*/;
1176 var162
= varonce161
;
1180 var165
= string__NativeString__to_s_with_length(var163
, var164
);
1182 varonce161
= var162
;
1184 var166
= NEW_array__Array(&type_array__Arraykernel__Object
);
1185 { /* var166 = array_instance Array[Object] */
1187 var168
= NEW_array__NativeArray(var167
, &type_array__NativeArraykernel__Object
);
1188 ((struct instance_array__NativeArray
*)var168
)->values
[0] = (val
*) var_recv_var
;
1189 ((struct instance_array__NativeArray
*)var168
)->values
[1] = (val
*) var146
;
1190 ((struct instance_array__NativeArray
*)var168
)->values
[2] = (val
*) var_externname
;
1191 ((struct instance_array__NativeArray
*)var168
)->values
[3] = (val
*) var151
;
1192 ((struct instance_array__NativeArray
*)var168
)->values
[4] = (val
*) var160
;
1193 ((struct instance_array__NativeArray
*)var168
)->values
[5] = (val
*) var162
;
1194 ((void (*)(val
*, val
*, long))(var166
->class->vft
[COLOR_array__Array__with_native
]))(var166
, var168
, var167
) /* with_native on <var166:Array[Object]>*/;
1196 var169
= ((val
* (*)(val
*))(var166
->class->vft
[COLOR_string__Object__to_s
]))(var166
) /* to_s on <var166:Array[Object]>*/;
1197 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var169
) /* add on <var_v:AbstractCompilerVisitor>*/;
1200 var171
= varonce170
;
1202 var172
= "struct nitni_instance* ret_var;";
1204 var174
= string__NativeString__to_s_with_length(var172
, var173
);
1206 varonce170
= var171
;
1208 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var171
) /* add on <var_v:AbstractCompilerVisitor>*/;
1210 var176
= varonce175
;
1212 var177
= "ret_var = ";
1214 var179
= string__NativeString__to_s_with_length(var177
, var178
);
1216 varonce175
= var176
;
1219 var181
= varonce180
;
1223 var184
= string__NativeString__to_s_with_length(var182
, var183
);
1225 varonce180
= var181
;
1228 var186
= varonce185
;
1232 var189
= string__NativeString__to_s_with_length(var187
, var188
);
1234 varonce185
= var186
;
1236 var190
= ((val
* (*)(val
*, val
*))(var_arguments_for_c
->class->vft
[COLOR_string__Collection__join
]))(var_arguments_for_c
, var186
) /* join on <var_arguments_for_c:Array[String]>*/;
1238 var192
= varonce191
;
1242 var195
= string__NativeString__to_s_with_length(var193
, var194
);
1244 varonce191
= var192
;
1246 var196
= NEW_array__Array(&type_array__Arraykernel__Object
);
1247 { /* var196 = array_instance Array[Object] */
1249 var198
= NEW_array__NativeArray(var197
, &type_array__NativeArraykernel__Object
);
1250 ((struct instance_array__NativeArray
*)var198
)->values
[0] = (val
*) var176
;
1251 ((struct instance_array__NativeArray
*)var198
)->values
[1] = (val
*) var_externname
;
1252 ((struct instance_array__NativeArray
*)var198
)->values
[2] = (val
*) var181
;
1253 ((struct instance_array__NativeArray
*)var198
)->values
[3] = (val
*) var190
;
1254 ((struct instance_array__NativeArray
*)var198
)->values
[4] = (val
*) var192
;
1255 ((void (*)(val
*, val
*, long))(var196
->class->vft
[COLOR_array__Array__with_native
]))(var196
, var198
, var197
) /* with_native on <var196:Array[Object]>*/;
1257 var199
= ((val
* (*)(val
*))(var196
->class->vft
[COLOR_string__Object__to_s
]))(var196
) /* to_s on <var196:Array[Object]>*/;
1258 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var199
) /* add on <var_v:AbstractCompilerVisitor>*/;
1260 var201
= varonce200
;
1262 var202
= " = ret_var->value;";
1264 var204
= string__NativeString__to_s_with_length(var202
, var203
);
1266 varonce200
= var201
;
1268 var205
= NEW_array__Array(&type_array__Arraykernel__Object
);
1269 { /* var205 = array_instance Array[Object] */
1271 var207
= NEW_array__NativeArray(var206
, &type_array__NativeArraykernel__Object
);
1272 ((struct instance_array__NativeArray
*)var207
)->values
[0] = (val
*) var_recv_var
;
1273 ((struct instance_array__NativeArray
*)var207
)->values
[1] = (val
*) var201
;
1274 ((void (*)(val
*, val
*, long))(var205
->class->vft
[COLOR_array__Array__with_native
]))(var205
, var207
, var206
) /* with_native on <var205:Array[Object]>*/;
1276 var208
= ((val
* (*)(val
*))(var205
->class->vft
[COLOR_string__Object__to_s
]))(var205
) /* to_s on <var205:Array[Object]>*/;
1277 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var208
) /* add on <var_v:AbstractCompilerVisitor>*/;
1279 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(var_v
, var_recv_var
) /* ret on <var_v:AbstractCompilerVisitor>*/;
1281 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_compiler_ffi__AExternPropdef__compile_ffi_support_to_c
]))(self
, var_v
) /* compile_ffi_support_to_c on <self:AExternMethPropdef>*/;
1284 /* method compiler_ffi#AExternMethPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
1285 void VIRTUAL_compiler_ffi__AExternMethPropdef__compile_to_c(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1286 compiler_ffi__AExternMethPropdef__compile_to_c(self
, p0
, p1
, p2
);
1289 /* method compiler_ffi#AExternInitPropdef#compile_to_c for (self: AExternInitPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
1290 void compiler_ffi__AExternInitPropdef__compile_to_c(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1291 val
* var_v
/* var v: AbstractCompilerVisitor */;
1292 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
1293 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
1294 val
* var
/* : MClassDef */;
1295 val
* var1
/* : MModule */;
1296 val
* var_mmodule
/* var mmodule: MModule */;
1297 val
* var2
/* : AbstractCompiler */;
1298 val
* var3
/* : ModelBuilder */;
1299 val
* var4
/* : HashMap[MModule, AModule] */;
1300 val
* var5
/* : nullable Object */;
1301 val
* var_amodule
/* var amodule: AModule */;
1302 val
* var6
/* : nullable TString */;
1303 val
* var_nextern
/* var nextern: nullable TString */;
1304 val
* var7
/* : null */;
1305 short int var8
/* : Bool */;
1306 short int var9
/* : Bool */;
1307 val
* var10
/* : nullable MModule */;
1308 short int var11
/* : Bool */;
1309 val
* var12
/* : MClassDef */;
1310 val
* var13
/* : MClassType */;
1311 val
* var_mclass_type
/* var mclass_type: MClassType */;
1312 val
* var14
/* : MProperty */;
1313 val
* var15
/* : MClassDef */;
1314 val
* var16
/* : MClassType */;
1315 static val
* varonce
;
1316 val
* var17
/* : String */;
1317 char* var18
/* : NativeString */;
1318 long var19
/* : Int */;
1319 val
* var20
/* : String */;
1320 val
* var21
/* : SignatureLength */;
1321 val
* var22
/* : String */;
1322 val
* var_externname
/* var externname: String */;
1323 val
* var23
/* : nullable Object */;
1324 val
* var24
/* : MType */;
1325 val
* var_return_mtype
/* var return_mtype: MType */;
1326 val
* var25
/* : RuntimeVariable */;
1327 val
* var_recv_var
/* var recv_var: RuntimeVariable */;
1328 val
* var26
/* : nullable Object */;
1329 val
* var27
/* : Array[String] */;
1330 val
* var_arguments_for_c
/* var arguments_for_c: Array[String] */;
1331 val
* var28
/* : Range[Int] */;
1332 long var29
/* : Int */;
1333 long var30
/* : Int */;
1334 val
* var31
/* : Discrete */;
1335 val
* var32
/* : Discrete */;
1336 val
* var33
/* : Iterator[nullable Object] */;
1337 short int var34
/* : Bool */;
1338 val
* var35
/* : nullable Object */;
1339 long var_a
/* var a: Int */;
1340 long var36
/* : Int */;
1341 val
* var37
/* : nullable Object */;
1342 val
* var_arg
/* var arg: RuntimeVariable */;
1343 val
* var38
/* : nullable MSignature */;
1344 val
* var39
/* : Array[MParameter] */;
1345 val
* var40
/* : nullable Object */;
1346 val
* var41
/* : MType */;
1347 val
* var_param_mtype
/* var param_mtype: MType */;
1348 val
* var42
/* : MType */;
1349 short int var43
/* : Bool */;
1350 val
* var44
/* : String */;
1351 static val
* varonce45
;
1352 val
* var46
/* : String */;
1353 char* var47
/* : NativeString */;
1354 long var48
/* : Int */;
1355 val
* var49
/* : String */;
1356 static val
* varonce50
;
1357 val
* var51
/* : String */;
1358 char* var52
/* : NativeString */;
1359 long var53
/* : Int */;
1360 val
* var54
/* : String */;
1361 val
* var55
/* : Array[Object] */;
1362 long var56
/* : Int */;
1363 val
* var57
/* : NativeArray[Object] */;
1364 val
* var58
/* : Object */;
1365 val
* var59
/* : String */;
1366 static val
* varonce60
;
1367 val
* var61
/* : String */;
1368 char* var62
/* : NativeString */;
1369 long var63
/* : Int */;
1370 val
* var64
/* : String */;
1371 static val
* varonce65
;
1372 val
* var66
/* : String */;
1373 char* var67
/* : NativeString */;
1374 long var68
/* : Int */;
1375 val
* var69
/* : String */;
1376 val
* var70
/* : Array[Object] */;
1377 long var71
/* : Int */;
1378 val
* var72
/* : NativeArray[Object] */;
1379 val
* var73
/* : Object */;
1380 val
* var74
/* : String */;
1381 static val
* varonce75
;
1382 val
* var76
/* : String */;
1383 char* var77
/* : NativeString */;
1384 long var78
/* : Int */;
1385 val
* var79
/* : String */;
1386 static val
* varonce80
;
1387 val
* var81
/* : String */;
1388 char* var82
/* : NativeString */;
1389 long var83
/* : Int */;
1390 val
* var84
/* : String */;
1391 val
* var85
/* : String */;
1392 static val
* varonce86
;
1393 val
* var87
/* : String */;
1394 char* var88
/* : NativeString */;
1395 long var89
/* : Int */;
1396 val
* var90
/* : String */;
1397 val
* var91
/* : Array[Object] */;
1398 long var92
/* : Int */;
1399 val
* var93
/* : NativeArray[Object] */;
1400 val
* var94
/* : Object */;
1401 val
* var95
/* : String */;
1402 static val
* varonce96
;
1403 val
* var97
/* : String */;
1404 char* var98
/* : NativeString */;
1405 long var99
/* : Int */;
1406 val
* var100
/* : String */;
1407 val
* var101
/* : Array[Object] */;
1408 long var102
/* : Int */;
1409 val
* var103
/* : NativeArray[Object] */;
1410 val
* var104
/* : Object */;
1411 val
* var105
/* : String */;
1412 short int var106
/* : Bool */;
1413 static val
* varonce107
;
1414 val
* var108
/* : String */;
1415 char* var109
/* : NativeString */;
1416 long var110
/* : Int */;
1417 val
* var111
/* : String */;
1418 static val
* varonce112
;
1419 val
* var113
/* : String */;
1420 char* var114
/* : NativeString */;
1421 long var115
/* : Int */;
1422 val
* var116
/* : String */;
1423 static val
* varonce117
;
1424 val
* var118
/* : String */;
1425 char* var119
/* : NativeString */;
1426 long var120
/* : Int */;
1427 val
* var121
/* : String */;
1428 val
* var122
/* : String */;
1429 static val
* varonce123
;
1430 val
* var124
/* : String */;
1431 char* var125
/* : NativeString */;
1432 long var126
/* : Int */;
1433 val
* var127
/* : String */;
1434 val
* var128
/* : Array[Object] */;
1435 long var129
/* : Int */;
1436 val
* var130
/* : NativeArray[Object] */;
1437 val
* var131
/* : String */;
1438 static val
* varonce132
;
1439 val
* var133
/* : String */;
1440 char* var134
/* : NativeString */;
1441 long var135
/* : Int */;
1442 val
* var136
/* : String */;
1443 static val
* varonce137
;
1444 val
* var138
/* : String */;
1445 char* var139
/* : NativeString */;
1446 long var140
/* : Int */;
1447 val
* var141
/* : String */;
1448 static val
* varonce142
;
1449 val
* var143
/* : String */;
1450 char* var144
/* : NativeString */;
1451 long var145
/* : Int */;
1452 val
* var146
/* : String */;
1453 static val
* varonce147
;
1454 val
* var148
/* : String */;
1455 char* var149
/* : NativeString */;
1456 long var150
/* : Int */;
1457 val
* var151
/* : String */;
1458 val
* var152
/* : String */;
1459 static val
* varonce153
;
1460 val
* var154
/* : String */;
1461 char* var155
/* : NativeString */;
1462 long var156
/* : Int */;
1463 val
* var157
/* : String */;
1464 val
* var158
/* : Array[Object] */;
1465 long var159
/* : Int */;
1466 val
* var160
/* : NativeArray[Object] */;
1467 val
* var161
/* : String */;
1468 static val
* varonce162
;
1469 val
* var163
/* : String */;
1470 char* var164
/* : NativeString */;
1471 long var165
/* : Int */;
1472 val
* var166
/* : String */;
1473 val
* var167
/* : Array[Object] */;
1474 long var168
/* : Int */;
1475 val
* var169
/* : NativeArray[Object] */;
1476 val
* var170
/* : String */;
1480 var
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MMethodDef>*/;
1481 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var
) /* mmodule on <var:MClassDef>*/;
1483 var2
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
1484 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__modelbuilder
]))(var2
) /* modelbuilder on <var2:AbstractCompiler>*/;
1485 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_modelbuilder__ModelBuilder__mmodule2nmodule
]))(var3
) /* mmodule2nmodule on <var3:ModelBuilder>*/;
1486 var5
= ((val
* (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var4
, var_mmodule
) /* [] on <var4:HashMap[MModule, AModule]>*/;
1488 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AExternPropdef__n_extern
]))(self
) /* n_extern on <self:AExternInitPropdef>*/;
1491 if (var_nextern
== NULL
) {
1492 var8
= 0; /* is null */
1494 var8
= 1; /* arg is null and recv is not */
1498 ((void (*)(val
*, short int))(var_amodule
->class->vft
[COLOR_compiler_ffi__AModule__uses_legacy_ni_61d
]))(var_amodule
, var9
) /* uses_legacy_ni= on <var_amodule:AModule>*/;
1499 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_compiler_ffi__AExternInitPropdef__compile_to_c
]))(self
, p0
, p1
, p2
) /* compile_to_c on <self:AExternInitPropdef>*/;
1503 var10
= ((val
* (*)(val
*))(var_amodule
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var_amodule
) /* mmodule on <var_amodule:AModule>*/;
1505 if (var10
== NULL
) {
1506 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1507 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 194);
1510 ((void (*)(val
*, short int))(var10
->class->vft
[COLOR_common_ffi__MModule__uses_ffi_61d
]))(var10
, var11
) /* uses_ffi= on <var10:nullable MModule>*/;
1512 var12
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MMethodDef>*/;
1513 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var12
) /* bound_mtype on <var12:MClassDef>*/;
1514 var_mclass_type
= var13
;
1515 var14
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_mpropdef
) /* mproperty on <var_mpropdef:MMethodDef>*/;
1516 var15
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MMethodDef>*/;
1517 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var15
) /* bound_mtype on <var15:MClassDef>*/;
1523 var20
= string__NativeString__to_s_with_length(var18
, var19
);
1527 var21
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_utilities__Object__long_signature
]))(self
) /* long_signature on <self:AExternInitPropdef>*/;
1528 var22
= ((val
* (*)(val
*, val
*, val
*, val
*, val
*))(var14
->class->vft
[COLOR_nitni_utilities__MMethod__build_cname
]))(var14
, var16
, var_mmodule
, var17
, var21
) /* build_cname on <var14:MProperty(MMethod)>*/;
1529 var_externname
= var22
;
1530 var23
= ((val
* (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_arguments
) /* first on <var_arguments:Array[RuntimeVariable]>*/;
1531 var24
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var23
) /* mtype on <var23:nullable Object(RuntimeVariable)>*/;
1532 var_return_mtype
= var24
;
1533 var25
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(var_v
, var_return_mtype
) /* new_var on <var_v:AbstractCompilerVisitor>*/;
1534 var_recv_var
= var25
;
1535 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__adapt_signature
]))(var_v
, var_mpropdef
, var_arguments
) /* adapt_signature on <var_v:AbstractCompilerVisitor>*/;
1536 var26
= ((val
* (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Sequence__shift
]))(var_arguments
) /* shift on <var_arguments:Array[RuntimeVariable]>*/;
1538 var27
= NEW_array__Array(&type_array__Arraystring__String
);
1539 ((void (*)(val
*))(var27
->class->vft
[COLOR_array__Array__init
]))(var27
) /* init on <var27:Array[String]>*/;
1540 var_arguments_for_c
= var27
;
1541 var28
= NEW_range__Range(&type_range__Rangekernel__Int
);
1543 var30
= ((long (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_arguments
) /* length on <var_arguments:Array[RuntimeVariable]>*/;
1544 var31
= BOX_kernel__Int(var29
); /* autobox from Int to Discrete */
1545 var32
= BOX_kernel__Int(var30
); /* autobox from Int to Discrete */
1546 ((void (*)(val
*, val
*, val
*))(var28
->class->vft
[COLOR_range__Range__without_last
]))(var28
, var31
, var32
) /* without_last on <var28:Range[Int]>*/;
1547 var33
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var28
) /* iterator on <var28:Range[Int]>*/;
1549 var34
= ((short int (*)(val
*))(var33
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var33
) /* is_ok on <var33:Iterator[nullable Object]>*/;
1551 var35
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var33
) /* item on <var33:Iterator[nullable Object]>*/;
1552 var36
= ((struct instance_kernel__Int
*)var35
)->value
; /* autounbox from nullable Object to Int */;
1554 var37
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var_a
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1556 var38
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mpropdef
) /* msignature on <var_mpropdef:MMethodDef>*/;
1557 if (var38
== NULL
) {
1558 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1559 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 210);
1562 var39
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_model__MSignature__mparameters
]))(var38
) /* mparameters on <var38:nullable MSignature>*/;
1564 var40
= ((val
* (*)(val
*, long))(var39
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var39
, var_a
) /* [] on <var39:Array[MParameter]>*/;
1565 var41
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_model__MParameter__mtype
]))(var40
) /* mtype on <var40:nullable Object(MParameter)>*/;
1566 var_param_mtype
= var41
;
1567 var42
= ((val
* (*)(val
*, val
*, val
*))(var_param_mtype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_param_mtype
, var_mmodule
, var_mclass_type
) /* anchor_to on <var_param_mtype:MType>*/;
1568 var_param_mtype
= var42
;
1569 var43
= ((short int (*)(val
*))(var_param_mtype
->class->vft
[COLOR_nitni_base__MType__is_cprimitive
]))(var_param_mtype
) /* is_cprimitive on <var_param_mtype:MType>*/;
1571 var44
= ((val
* (*)(val
*))(var_arg
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__name
]))(var_arg
) /* name on <var_arg:RuntimeVariable>*/;
1572 ((void (*)(val
*, val
*))(var_arguments_for_c
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_arguments_for_c
, var44
) /* add on <var_arguments_for_c:Array[String]>*/;
1577 var47
= "struct nitni_instance* var_for_c_";
1579 var49
= string__NativeString__to_s_with_length(var47
, var48
);
1588 var54
= string__NativeString__to_s_with_length(var52
, var53
);
1592 var55
= NEW_array__Array(&type_array__Arraykernel__Object
);
1593 { /* var55 = array_instance Array[Object] */
1595 var57
= NEW_array__NativeArray(var56
, &type_array__NativeArraykernel__Object
);
1596 ((struct instance_array__NativeArray
*)var57
)->values
[0] = (val
*) var46
;
1597 var58
= BOX_kernel__Int(var_a
); /* autobox from Int to Object */
1598 ((struct instance_array__NativeArray
*)var57
)->values
[1] = (val
*) var58
;
1599 ((struct instance_array__NativeArray
*)var57
)->values
[2] = (val
*) var51
;
1600 ((void (*)(val
*, val
*, long))(var55
->class->vft
[COLOR_array__Array__with_native
]))(var55
, var57
, var56
) /* with_native on <var55:Array[Object]>*/;
1602 var59
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_string__Object__to_s
]))(var55
) /* to_s on <var55:Array[Object]>*/;
1603 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var59
) /* add on <var_v:AbstractCompilerVisitor>*/;
1607 var62
= "var_for_c_";
1609 var64
= string__NativeString__to_s_with_length(var62
, var63
);
1616 var67
= " = malloc(sizeof(struct nitni_instance));";
1618 var69
= string__NativeString__to_s_with_length(var67
, var68
);
1622 var70
= NEW_array__Array(&type_array__Arraykernel__Object
);
1623 { /* var70 = array_instance Array[Object] */
1625 var72
= NEW_array__NativeArray(var71
, &type_array__NativeArraykernel__Object
);
1626 ((struct instance_array__NativeArray
*)var72
)->values
[0] = (val
*) var61
;
1627 var73
= BOX_kernel__Int(var_a
); /* autobox from Int to Object */
1628 ((struct instance_array__NativeArray
*)var72
)->values
[1] = (val
*) var73
;
1629 ((struct instance_array__NativeArray
*)var72
)->values
[2] = (val
*) var66
;
1630 ((void (*)(val
*, val
*, long))(var70
->class->vft
[COLOR_array__Array__with_native
]))(var70
, var72
, var71
) /* with_native on <var70:Array[Object]>*/;
1632 var74
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_string__Object__to_s
]))(var70
) /* to_s on <var70:Array[Object]>*/;
1633 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var74
) /* add on <var_v:AbstractCompilerVisitor>*/;
1637 var77
= "var_for_c_";
1639 var79
= string__NativeString__to_s_with_length(var77
, var78
);
1646 var82
= "->value = ";
1648 var84
= string__NativeString__to_s_with_length(var82
, var83
);
1652 var85
= ((val
* (*)(val
*))(var_arg
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__name
]))(var_arg
) /* name on <var_arg:RuntimeVariable>*/;
1658 var90
= string__NativeString__to_s_with_length(var88
, var89
);
1662 var91
= NEW_array__Array(&type_array__Arraykernel__Object
);
1663 { /* var91 = array_instance Array[Object] */
1665 var93
= NEW_array__NativeArray(var92
, &type_array__NativeArraykernel__Object
);
1666 ((struct instance_array__NativeArray
*)var93
)->values
[0] = (val
*) var76
;
1667 var94
= BOX_kernel__Int(var_a
); /* autobox from Int to Object */
1668 ((struct instance_array__NativeArray
*)var93
)->values
[1] = (val
*) var94
;
1669 ((struct instance_array__NativeArray
*)var93
)->values
[2] = (val
*) var81
;
1670 ((struct instance_array__NativeArray
*)var93
)->values
[3] = (val
*) var85
;
1671 ((struct instance_array__NativeArray
*)var93
)->values
[4] = (val
*) var87
;
1672 ((void (*)(val
*, val
*, long))(var91
->class->vft
[COLOR_array__Array__with_native
]))(var91
, var93
, var92
) /* with_native on <var91:Array[Object]>*/;
1674 var95
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_string__Object__to_s
]))(var91
) /* to_s on <var91:Array[Object]>*/;
1675 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var95
) /* add on <var_v:AbstractCompilerVisitor>*/;
1679 var98
= "var_for_c_";
1681 var100
= string__NativeString__to_s_with_length(var98
, var99
);
1685 var101
= NEW_array__Array(&type_array__Arraykernel__Object
);
1686 { /* var101 = array_instance Array[Object] */
1688 var103
= NEW_array__NativeArray(var102
, &type_array__NativeArraykernel__Object
);
1689 ((struct instance_array__NativeArray
*)var103
)->values
[0] = (val
*) var97
;
1690 var104
= BOX_kernel__Int(var_a
); /* autobox from Int to Object */
1691 ((struct instance_array__NativeArray
*)var103
)->values
[1] = (val
*) var104
;
1692 ((void (*)(val
*, val
*, long))(var101
->class->vft
[COLOR_array__Array__with_native
]))(var101
, var103
, var102
) /* with_native on <var101:Array[Object]>*/;
1694 var105
= ((val
* (*)(val
*))(var101
->class->vft
[COLOR_string__Object__to_s
]))(var101
) /* to_s on <var101:Array[Object]>*/;
1695 ((void (*)(val
*, val
*))(var_arguments_for_c
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_arguments_for_c
, var105
) /* add on <var_arguments_for_c:Array[String]>*/;
1697 CONTINUE_label
: (void)0;
1698 ((void (*)(val
*))(var33
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var33
) /* next on <var33:Iterator[nullable Object]>*/;
1700 BREAK_label
: (void)0;
1701 var106
= ((short int (*)(val
*))(var_return_mtype
->class->vft
[COLOR_nitni_base__MType__is_cprimitive
]))(var_return_mtype
) /* is_cprimitive on <var_return_mtype:MType>*/;
1704 var108
= varonce107
;
1708 var111
= string__NativeString__to_s_with_length(var109
, var110
);
1710 varonce107
= var108
;
1713 var113
= varonce112
;
1717 var116
= string__NativeString__to_s_with_length(var114
, var115
);
1719 varonce112
= var113
;
1722 var118
= varonce117
;
1726 var121
= string__NativeString__to_s_with_length(var119
, var120
);
1728 varonce117
= var118
;
1730 var122
= ((val
* (*)(val
*, val
*))(var_arguments_for_c
->class->vft
[COLOR_string__Collection__join
]))(var_arguments_for_c
, var118
) /* join on <var_arguments_for_c:Array[String]>*/;
1732 var124
= varonce123
;
1736 var127
= string__NativeString__to_s_with_length(var125
, var126
);
1738 varonce123
= var124
;
1740 var128
= NEW_array__Array(&type_array__Arraykernel__Object
);
1741 { /* var128 = array_instance Array[Object] */
1743 var130
= NEW_array__NativeArray(var129
, &type_array__NativeArraykernel__Object
);
1744 ((struct instance_array__NativeArray
*)var130
)->values
[0] = (val
*) var_recv_var
;
1745 ((struct instance_array__NativeArray
*)var130
)->values
[1] = (val
*) var108
;
1746 ((struct instance_array__NativeArray
*)var130
)->values
[2] = (val
*) var_externname
;
1747 ((struct instance_array__NativeArray
*)var130
)->values
[3] = (val
*) var113
;
1748 ((struct instance_array__NativeArray
*)var130
)->values
[4] = (val
*) var122
;
1749 ((struct instance_array__NativeArray
*)var130
)->values
[5] = (val
*) var124
;
1750 ((void (*)(val
*, val
*, long))(var128
->class->vft
[COLOR_array__Array__with_native
]))(var128
, var130
, var129
) /* with_native on <var128:Array[Object]>*/;
1752 var131
= ((val
* (*)(val
*))(var128
->class->vft
[COLOR_string__Object__to_s
]))(var128
) /* to_s on <var128:Array[Object]>*/;
1753 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var131
) /* add on <var_v:AbstractCompilerVisitor>*/;
1756 var133
= varonce132
;
1758 var134
= "struct nitni_instance* ret_var;";
1760 var136
= string__NativeString__to_s_with_length(var134
, var135
);
1762 varonce132
= var133
;
1764 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var133
) /* add on <var_v:AbstractCompilerVisitor>*/;
1766 var138
= varonce137
;
1768 var139
= "ret_var = ";
1770 var141
= string__NativeString__to_s_with_length(var139
, var140
);
1772 varonce137
= var138
;
1775 var143
= varonce142
;
1779 var146
= string__NativeString__to_s_with_length(var144
, var145
);
1781 varonce142
= var143
;
1784 var148
= varonce147
;
1788 var151
= string__NativeString__to_s_with_length(var149
, var150
);
1790 varonce147
= var148
;
1792 var152
= ((val
* (*)(val
*, val
*))(var_arguments_for_c
->class->vft
[COLOR_string__Collection__join
]))(var_arguments_for_c
, var148
) /* join on <var_arguments_for_c:Array[String]>*/;
1794 var154
= varonce153
;
1798 var157
= string__NativeString__to_s_with_length(var155
, var156
);
1800 varonce153
= var154
;
1802 var158
= NEW_array__Array(&type_array__Arraykernel__Object
);
1803 { /* var158 = array_instance Array[Object] */
1805 var160
= NEW_array__NativeArray(var159
, &type_array__NativeArraykernel__Object
);
1806 ((struct instance_array__NativeArray
*)var160
)->values
[0] = (val
*) var138
;
1807 ((struct instance_array__NativeArray
*)var160
)->values
[1] = (val
*) var_externname
;
1808 ((struct instance_array__NativeArray
*)var160
)->values
[2] = (val
*) var143
;
1809 ((struct instance_array__NativeArray
*)var160
)->values
[3] = (val
*) var152
;
1810 ((struct instance_array__NativeArray
*)var160
)->values
[4] = (val
*) var154
;
1811 ((void (*)(val
*, val
*, long))(var158
->class->vft
[COLOR_array__Array__with_native
]))(var158
, var160
, var159
) /* with_native on <var158:Array[Object]>*/;
1813 var161
= ((val
* (*)(val
*))(var158
->class->vft
[COLOR_string__Object__to_s
]))(var158
) /* to_s on <var158:Array[Object]>*/;
1814 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var161
) /* add on <var_v:AbstractCompilerVisitor>*/;
1816 var163
= varonce162
;
1818 var164
= " = ret_var->value;";
1820 var166
= string__NativeString__to_s_with_length(var164
, var165
);
1822 varonce162
= var163
;
1824 var167
= NEW_array__Array(&type_array__Arraykernel__Object
);
1825 { /* var167 = array_instance Array[Object] */
1827 var169
= NEW_array__NativeArray(var168
, &type_array__NativeArraykernel__Object
);
1828 ((struct instance_array__NativeArray
*)var169
)->values
[0] = (val
*) var_recv_var
;
1829 ((struct instance_array__NativeArray
*)var169
)->values
[1] = (val
*) var163
;
1830 ((void (*)(val
*, val
*, long))(var167
->class->vft
[COLOR_array__Array__with_native
]))(var167
, var169
, var168
) /* with_native on <var167:Array[Object]>*/;
1832 var170
= ((val
* (*)(val
*))(var167
->class->vft
[COLOR_string__Object__to_s
]))(var167
) /* to_s on <var167:Array[Object]>*/;
1833 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var170
) /* add on <var_v:AbstractCompilerVisitor>*/;
1835 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(var_v
, var_recv_var
) /* ret on <var_v:AbstractCompilerVisitor>*/;
1836 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_compiler_ffi__AExternPropdef__compile_ffi_support_to_c
]))(self
, var_v
) /* compile_ffi_support_to_c on <self:AExternInitPropdef>*/;
1839 /* method compiler_ffi#AExternInitPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
1840 void VIRTUAL_compiler_ffi__AExternInitPropdef__compile_to_c(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1841 compiler_ffi__AExternInitPropdef__compile_to_c(self
, p0
, p1
, p2
);
1844 /* method compiler_ffi#CCompilationUnit#write_as_nitni for (self: CCompilationUnit, AModule, String) */
1845 void compiler_ffi__CCompilationUnit__write_as_nitni(val
* self
, val
* p0
, val
* p1
) {
1846 val
* var_amodule
/* var amodule: AModule */;
1847 val
* var_compdir
/* var compdir: String */;
1848 val
* var
/* : Array[Object] */;
1849 long var1
/* : Int */;
1850 val
* var_
/* var : Array[Object] */;
1851 static val
* varonce
;
1852 val
* var2
/* : String */;
1853 char* var3
/* : NativeString */;
1854 long var4
/* : Int */;
1855 val
* var5
/* : String */;
1856 val
* var6
/* : nullable MModule */;
1857 val
* var7
/* : String */;
1858 static val
* varonce8
;
1859 val
* var9
/* : String */;
1860 char* var10
/* : NativeString */;
1861 long var11
/* : Int */;
1862 val
* var12
/* : String */;
1863 val
* var13
/* : String */;
1864 val
* var_base_name
/* var base_name: String */;
1865 val
* var14
/* : Array[Object] */;
1866 long var15
/* : Int */;
1867 val
* var_16
/* var : Array[Object] */;
1868 static val
* varonce17
;
1869 val
* var18
/* : String */;
1870 char* var19
/* : NativeString */;
1871 long var20
/* : Int */;
1872 val
* var21
/* : String */;
1873 static val
* varonce22
;
1874 val
* var23
/* : String */;
1875 char* var24
/* : NativeString */;
1876 long var25
/* : Int */;
1877 val
* var26
/* : String */;
1878 val
* var27
/* : String */;
1879 val
* var_h_file
/* var h_file: String */;
1880 static val
* varonce28
;
1881 val
* var29
/* : String */;
1882 char* var30
/* : NativeString */;
1883 long var31
/* : Int */;
1884 val
* var32
/* : String */;
1885 val
* var33
/* : Array[Object] */;
1886 long var34
/* : Int */;
1887 val
* var35
/* : NativeArray[Object] */;
1888 val
* var36
/* : String */;
1889 val
* var37
/* : Array[String] */;
1890 val
* var38
/* : String */;
1891 val
* var39
/* : String */;
1892 val
* var40
/* : String */;
1893 static val
* varonce41
;
1894 val
* var42
/* : String */;
1895 char* var43
/* : NativeString */;
1896 long var44
/* : Int */;
1897 val
* var45
/* : String */;
1898 val
* var46
/* : Array[Object] */;
1899 long var47
/* : Int */;
1900 val
* var48
/* : NativeArray[Object] */;
1901 val
* var49
/* : String */;
1902 val
* var50
/* : Array[Object] */;
1903 long var51
/* : Int */;
1904 val
* var_52
/* var : Array[Object] */;
1905 static val
* varonce53
;
1906 val
* var54
/* : String */;
1907 char* var55
/* : NativeString */;
1908 long var56
/* : Int */;
1909 val
* var57
/* : String */;
1910 static val
* varonce58
;
1911 val
* var59
/* : String */;
1912 char* var60
/* : NativeString */;
1913 long var61
/* : Int */;
1914 val
* var62
/* : String */;
1915 val
* var63
/* : String */;
1916 val
* var_c_file
/* var c_file: String */;
1917 static val
* varonce64
;
1918 val
* var65
/* : String */;
1919 char* var66
/* : NativeString */;
1920 long var67
/* : Int */;
1921 val
* var68
/* : String */;
1922 val
* var69
/* : Array[Object] */;
1923 long var70
/* : Int */;
1924 val
* var71
/* : NativeArray[Object] */;
1925 val
* var72
/* : String */;
1926 val
* var73
/* : Array[Object] */;
1927 long var74
/* : Int */;
1928 val
* var_75
/* var : Array[Object] */;
1929 static val
* varonce76
;
1930 val
* var77
/* : String */;
1931 char* var78
/* : NativeString */;
1932 long var79
/* : Int */;
1933 val
* var80
/* : String */;
1934 static val
* varonce81
;
1935 val
* var82
/* : String */;
1936 char* var83
/* : NativeString */;
1937 long var84
/* : Int */;
1938 val
* var85
/* : String */;
1939 val
* var86
/* : String */;
1940 val
* var87
/* : Array[String] */;
1941 long var88
/* : Int */;
1942 val
* var89
/* : NativeArray[String] */;
1943 val
* var90
/* : Array[String] */;
1944 static val
* varonce91
;
1945 val
* var92
/* : String */;
1946 char* var93
/* : NativeString */;
1947 long var94
/* : Int */;
1948 val
* var95
/* : String */;
1949 val
* var96
/* : Array[Object] */;
1950 long var97
/* : Int */;
1951 val
* var98
/* : NativeArray[Object] */;
1952 val
* var99
/* : String */;
1955 var
= NEW_array__Array(&type_array__Arraykernel__Object
);
1957 ((void (*)(val
*, long))(var
->class->vft
[COLOR_array__Array__with_capacity
]))(var
, var1
) /* with_capacity on <var:Array[Object]>*/;
1964 var5
= string__NativeString__to_s_with_length(var3
, var4
);
1968 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var2
) /* add on <var_:Array[Object]>*/;
1969 var6
= ((val
* (*)(val
*))(var_amodule
->class->vft
[COLOR_modelbuilder__AModule__mmodule
]))(var_amodule
) /* mmodule on <var_amodule:AModule>*/;
1971 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1972 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 239);
1975 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_mmodule__MModule__name
]))(var6
) /* name on <var6:nullable MModule>*/;
1977 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var7
) /* add on <var_:Array[Object]>*/;
1983 var12
= string__NativeString__to_s_with_length(var10
, var11
);
1987 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var9
) /* add on <var_:Array[Object]>*/;
1988 var13
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
1989 var_base_name
= var13
;
1990 var14
= NEW_array__Array(&type_array__Arraykernel__Object
);
1992 ((void (*)(val
*, long))(var14
->class->vft
[COLOR_array__Array__with_capacity
]))(var14
, var15
) /* with_capacity on <var14:Array[Object]>*/;
1999 var21
= string__NativeString__to_s_with_length(var19
, var20
);
2003 ((void (*)(val
*, val
*))(var_16
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_16
, var18
) /* add on <var_16:Array[Object]>*/;
2004 ((void (*)(val
*, val
*))(var_16
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_16
, var_base_name
) /* add on <var_16:Array[Object]>*/;
2010 var26
= string__NativeString__to_s_with_length(var24
, var25
);
2014 ((void (*)(val
*, val
*))(var_16
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_16
, var23
) /* add on <var_16:Array[Object]>*/;
2015 var27
= ((val
* (*)(val
*))(var_16
->class->vft
[COLOR_string__Object__to_s
]))(var_16
) /* to_s on <var_16:Array[Object]>*/;
2022 var32
= string__NativeString__to_s_with_length(var30
, var31
);
2026 var33
= NEW_array__Array(&type_array__Arraykernel__Object
);
2027 { /* var33 = array_instance Array[Object] */
2029 var35
= NEW_array__NativeArray(var34
, &type_array__NativeArraykernel__Object
);
2030 ((struct instance_array__NativeArray
*)var35
)->values
[0] = (val
*) var_compdir
;
2031 ((struct instance_array__NativeArray
*)var35
)->values
[1] = (val
*) var29
;
2032 ((struct instance_array__NativeArray
*)var35
)->values
[2] = (val
*) var_h_file
;
2033 ((void (*)(val
*, val
*, long))(var33
->class->vft
[COLOR_array__Array__with_native
]))(var33
, var35
, var34
) /* with_native on <var33:Array[Object]>*/;
2035 var36
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_string__Object__to_s
]))(var33
) /* to_s on <var33:Array[Object]>*/;
2036 var37
= NEW_array__Array(&type_array__Arraystring__String
);
2037 ((void (*)(val
*))(var37
->class->vft
[COLOR_array__Array__init
]))(var37
) /* init on <var37:Array[String]>*/;
2038 var38
= ((val
* (*)(val
*))(var_amodule
->class->vft
[COLOR_nitni_base__AModule__cname
]))(var_amodule
) /* cname on <var_amodule:AModule>*/;
2039 var39
= ((val
* (*)(val
*))(var38
->class->vft
[COLOR_string__Object__to_s
]))(var38
) /* to_s on <var38:String>*/;
2040 var40
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_string__AbstractString__to_upper
]))(var39
) /* to_upper on <var39:String>*/;
2044 var43
= "_NITG_NITNI_H";
2046 var45
= string__NativeString__to_s_with_length(var43
, var44
);
2050 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
2051 { /* var46 = array_instance Array[Object] */
2053 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
2054 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var40
;
2055 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var42
;
2056 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
2058 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
2059 ((void (*)(val
*, val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_ffi_base__CCompilationUnit__write_header_to_file
]))(self
, var_amodule
, var36
, var37
, var49
) /* write_header_to_file on <self:CCompilationUnit>*/;
2060 var50
= NEW_array__Array(&type_array__Arraykernel__Object
);
2062 ((void (*)(val
*, long))(var50
->class->vft
[COLOR_array__Array__with_capacity
]))(var50
, var51
) /* with_capacity on <var50:Array[Object]>*/;
2069 var57
= string__NativeString__to_s_with_length(var55
, var56
);
2073 ((void (*)(val
*, val
*))(var_52
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_52
, var54
) /* add on <var_52:Array[Object]>*/;
2074 ((void (*)(val
*, val
*))(var_52
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_52
, var_base_name
) /* add on <var_52:Array[Object]>*/;
2080 var62
= string__NativeString__to_s_with_length(var60
, var61
);
2084 ((void (*)(val
*, val
*))(var_52
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_52
, var59
) /* add on <var_52:Array[Object]>*/;
2085 var63
= ((val
* (*)(val
*))(var_52
->class->vft
[COLOR_string__Object__to_s
]))(var_52
) /* to_s on <var_52:Array[Object]>*/;
2092 var68
= string__NativeString__to_s_with_length(var66
, var67
);
2096 var69
= NEW_array__Array(&type_array__Arraykernel__Object
);
2097 { /* var69 = array_instance Array[Object] */
2099 var71
= NEW_array__NativeArray(var70
, &type_array__NativeArraykernel__Object
);
2100 ((struct instance_array__NativeArray
*)var71
)->values
[0] = (val
*) var_compdir
;
2101 ((struct instance_array__NativeArray
*)var71
)->values
[1] = (val
*) var65
;
2102 ((struct instance_array__NativeArray
*)var71
)->values
[2] = (val
*) var_c_file
;
2103 ((void (*)(val
*, val
*, long))(var69
->class->vft
[COLOR_array__Array__with_native
]))(var69
, var71
, var70
) /* with_native on <var69:Array[Object]>*/;
2105 var72
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_string__Object__to_s
]))(var69
) /* to_s on <var69:Array[Object]>*/;
2106 var73
= NEW_array__Array(&type_array__Arraykernel__Object
);
2108 ((void (*)(val
*, long))(var73
->class->vft
[COLOR_array__Array__with_capacity
]))(var73
, var74
) /* with_capacity on <var73:Array[Object]>*/;
2115 var80
= string__NativeString__to_s_with_length(var78
, var79
);
2119 ((void (*)(val
*, val
*))(var_75
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_75
, var77
) /* add on <var_75:Array[Object]>*/;
2120 ((void (*)(val
*, val
*))(var_75
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_75
, var_h_file
) /* add on <var_75:Array[Object]>*/;
2126 var85
= string__NativeString__to_s_with_length(var83
, var84
);
2130 ((void (*)(val
*, val
*))(var_75
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_75
, var82
) /* add on <var_75:Array[Object]>*/;
2131 var86
= ((val
* (*)(val
*))(var_75
->class->vft
[COLOR_string__Object__to_s
]))(var_75
) /* to_s on <var_75:Array[Object]>*/;
2132 var87
= NEW_array__Array(&type_array__Arraystring__String
);
2133 { /* var87 = array_instance Array[String] */
2135 var89
= NEW_array__NativeArray(var88
, &type_array__NativeArraystring__String
);
2136 ((struct instance_array__NativeArray
*)var89
)->values
[0] = (val
*) var86
;
2137 ((void (*)(val
*, val
*, long))(var87
->class->vft
[COLOR_array__Array__with_native
]))(var87
, var89
, var88
) /* with_native on <var87:Array[String]>*/;
2139 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_ffi_base__CCompilationUnit__write_body_to_file
]))(self
, var_amodule
, var72
, var87
) /* write_body_to_file on <self:CCompilationUnit>*/;
2140 var90
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_c_tools__CCompilationUnit__files
]))(self
) /* files on <self:CCompilationUnit>*/;
2146 var95
= string__NativeString__to_s_with_length(var93
, var94
);
2150 var96
= NEW_array__Array(&type_array__Arraykernel__Object
);
2151 { /* var96 = array_instance Array[Object] */
2153 var98
= NEW_array__NativeArray(var97
, &type_array__NativeArraykernel__Object
);
2154 ((struct instance_array__NativeArray
*)var98
)->values
[0] = (val
*) var_compdir
;
2155 ((struct instance_array__NativeArray
*)var98
)->values
[1] = (val
*) var92
;
2156 ((struct instance_array__NativeArray
*)var98
)->values
[2] = (val
*) var_c_file
;
2157 ((void (*)(val
*, val
*, long))(var96
->class->vft
[COLOR_array__Array__with_native
]))(var96
, var98
, var97
) /* with_native on <var96:Array[Object]>*/;
2159 var99
= ((val
* (*)(val
*))(var96
->class->vft
[COLOR_string__Object__to_s
]))(var96
) /* to_s on <var96:Array[Object]>*/;
2160 ((void (*)(val
*, val
*))(var90
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var90
, var99
) /* add on <var90:Array[String]>*/;
2163 /* method compiler_ffi#CCompilationUnit#write_as_nitni for (self: Object, AModule, String) */
2164 void VIRTUAL_compiler_ffi__CCompilationUnit__write_as_nitni(val
* self
, val
* p0
, val
* p1
) {
2165 compiler_ffi__CCompilationUnit__write_as_nitni(self
, p0
, p1
);
2168 /* method compiler_ffi#AbstractCompilerVisitor#var_from_c for (self: AbstractCompilerVisitor, String, MType): RuntimeVariable */
2169 val
* compiler_ffi__AbstractCompilerVisitor__var_from_c(val
* self
, val
* p0
, val
* p1
) {
2170 val
* var
/* : RuntimeVariable */;
2171 val
* var_name
/* var name: String */;
2172 val
* var_mtype
/* var mtype: MType */;
2173 short int var1
/* : Bool */;
2174 val
* var2
/* : RuntimeVariable */;
2175 val
* var3
/* : RuntimeVariable */;
2176 val
* var4
/* : Array[Object] */;
2177 long var5
/* : Int */;
2178 val
* var_
/* var : Array[Object] */;
2179 static val
* varonce
;
2180 val
* var6
/* : String */;
2181 char* var7
/* : NativeString */;
2182 long var8
/* : Int */;
2183 val
* var9
/* : String */;
2184 static val
* varonce10
;
2185 val
* var11
/* : String */;
2186 char* var12
/* : NativeString */;
2187 long var13
/* : Int */;
2188 val
* var14
/* : String */;
2189 val
* var15
/* : String */;
2192 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_nitni_base__MType__is_cprimitive
]))(var_mtype
) /* is_cprimitive on <var_mtype:MType>*/;
2194 var2
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
2195 ((void (*)(val
*, val
*, val
*, val
*))(var2
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__init
]))(var2
, var_name
, var_mtype
, var_mtype
) /* init on <var2:RuntimeVariable>*/;
2199 var3
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
2200 var4
= NEW_array__Array(&type_array__Arraykernel__Object
);
2202 ((void (*)(val
*, long))(var4
->class->vft
[COLOR_array__Array__with_capacity
]))(var4
, var5
) /* with_capacity on <var4:Array[Object]>*/;
2209 var9
= string__NativeString__to_s_with_length(var7
, var8
);
2213 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var6
) /* add on <var_:Array[Object]>*/;
2214 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var_name
) /* add on <var_:Array[Object]>*/;
2220 var14
= string__NativeString__to_s_with_length(var12
, var13
);
2224 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var11
) /* add on <var_:Array[Object]>*/;
2225 var15
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
2226 ((void (*)(val
*, val
*, val
*, val
*))(var3
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__init
]))(var3
, var15
, var_mtype
, var_mtype
) /* init on <var3:RuntimeVariable>*/;
2233 /* method compiler_ffi#AbstractCompilerVisitor#var_from_c for (self: Object, String, MType): RuntimeVariable */
2234 val
* VIRTUAL_compiler_ffi__AbstractCompilerVisitor__var_from_c(val
* self
, val
* p0
, val
* p1
) {
2235 val
* var
/* : RuntimeVariable */;
2236 val
* var1
/* : RuntimeVariable */;
2237 var1
= compiler_ffi__AbstractCompilerVisitor__var_from_c(self
, p0
, p1
);
2242 /* method compiler_ffi#AbstractCompilerVisitor#ret_to_c for (self: AbstractCompilerVisitor, RuntimeVariable, MType) */
2243 void compiler_ffi__AbstractCompilerVisitor__ret_to_c(val
* self
, val
* p0
, val
* p1
) {
2244 val
* var_src
/* var src: RuntimeVariable */;
2245 val
* var_mtype
/* var mtype: MType */;
2246 short int var
/* : Bool */;
2247 static val
* varonce
;
2248 val
* var1
/* : String */;
2249 char* var2
/* : NativeString */;
2250 long var3
/* : Int */;
2251 val
* var4
/* : String */;
2252 static val
* varonce5
;
2253 val
* var6
/* : String */;
2254 char* var7
/* : NativeString */;
2255 long var8
/* : Int */;
2256 val
* var9
/* : String */;
2257 val
* var10
/* : Array[Object] */;
2258 long var11
/* : Int */;
2259 val
* var12
/* : NativeArray[Object] */;
2260 val
* var13
/* : String */;
2261 static val
* varonce14
;
2262 val
* var15
/* : String */;
2263 char* var16
/* : NativeString */;
2264 long var17
/* : Int */;
2265 val
* var18
/* : String */;
2266 static val
* varonce19
;
2267 val
* var20
/* : String */;
2268 char* var21
/* : NativeString */;
2269 long var22
/* : Int */;
2270 val
* var23
/* : String */;
2271 static val
* varonce24
;
2272 val
* var25
/* : String */;
2273 char* var26
/* : NativeString */;
2274 long var27
/* : Int */;
2275 val
* var28
/* : String */;
2276 static val
* varonce29
;
2277 val
* var30
/* : String */;
2278 char* var31
/* : NativeString */;
2279 long var32
/* : Int */;
2280 val
* var33
/* : String */;
2281 val
* var34
/* : Array[Object] */;
2282 long var35
/* : Int */;
2283 val
* var36
/* : NativeArray[Object] */;
2284 val
* var37
/* : String */;
2285 static val
* varonce38
;
2286 val
* var39
/* : String */;
2287 char* var40
/* : NativeString */;
2288 long var41
/* : Int */;
2289 val
* var42
/* : String */;
2292 var
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_nitni_base__MType__is_cprimitive
]))(var_mtype
) /* is_cprimitive on <var_mtype:MType>*/;
2299 var4
= string__NativeString__to_s_with_length(var2
, var3
);
2308 var9
= string__NativeString__to_s_with_length(var7
, var8
);
2312 var10
= NEW_array__Array(&type_array__Arraykernel__Object
);
2313 { /* var10 = array_instance Array[Object] */
2315 var12
= NEW_array__NativeArray(var11
, &type_array__NativeArraykernel__Object
);
2316 ((struct instance_array__NativeArray
*)var12
)->values
[0] = (val
*) var1
;
2317 ((struct instance_array__NativeArray
*)var12
)->values
[1] = (val
*) var_src
;
2318 ((struct instance_array__NativeArray
*)var12
)->values
[2] = (val
*) var6
;
2319 ((void (*)(val
*, val
*, long))(var10
->class->vft
[COLOR_array__Array__with_native
]))(var10
, var12
, var11
) /* with_native on <var10:Array[Object]>*/;
2321 var13
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_string__Object__to_s
]))(var10
) /* to_s on <var10:Array[Object]>*/;
2322 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var13
) /* add on <self:AbstractCompilerVisitor>*/;
2327 var16
= "struct nitni_instance* ret_for_c;";
2329 var18
= string__NativeString__to_s_with_length(var16
, var17
);
2333 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var15
) /* add on <self:AbstractCompilerVisitor>*/;
2337 var21
= "ret_for_c = malloc(sizeof(struct nitni_instance));";
2339 var23
= string__NativeString__to_s_with_length(var21
, var22
);
2343 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var20
) /* add on <self:AbstractCompilerVisitor>*/;
2347 var26
= "ret_for_c->value = ";
2349 var28
= string__NativeString__to_s_with_length(var26
, var27
);
2358 var33
= string__NativeString__to_s_with_length(var31
, var32
);
2362 var34
= NEW_array__Array(&type_array__Arraykernel__Object
);
2363 { /* var34 = array_instance Array[Object] */
2365 var36
= NEW_array__NativeArray(var35
, &type_array__NativeArraykernel__Object
);
2366 ((struct instance_array__NativeArray
*)var36
)->values
[0] = (val
*) var25
;
2367 ((struct instance_array__NativeArray
*)var36
)->values
[1] = (val
*) var_src
;
2368 ((struct instance_array__NativeArray
*)var36
)->values
[2] = (val
*) var30
;
2369 ((void (*)(val
*, val
*, long))(var34
->class->vft
[COLOR_array__Array__with_native
]))(var34
, var36
, var35
) /* with_native on <var34:Array[Object]>*/;
2371 var37
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_string__Object__to_s
]))(var34
) /* to_s on <var34:Array[Object]>*/;
2372 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var37
) /* add on <self:AbstractCompilerVisitor>*/;
2376 var40
= "return ret_for_c;";
2378 var42
= string__NativeString__to_s_with_length(var40
, var41
);
2382 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var39
) /* add on <self:AbstractCompilerVisitor>*/;
2386 /* method compiler_ffi#AbstractCompilerVisitor#ret_to_c for (self: Object, RuntimeVariable, MType) */
2387 void VIRTUAL_compiler_ffi__AbstractCompilerVisitor__ret_to_c(val
* self
, val
* p0
, val
* p1
) {
2388 compiler_ffi__AbstractCompilerVisitor__ret_to_c(self
, p0
, p1
);
2391 /* method compiler_ffi#MType#compile_extern_type for (self: MType, AbstractCompilerVisitor, CCompilationUnit) */
2392 void compiler_ffi__MType__compile_extern_type(val
* self
, val
* p0
, val
* p1
) {
2393 val
* var_v
/* var v: AbstractCompilerVisitor */;
2394 val
* var_ccu
/* var ccu: CCompilationUnit */;
2395 short int var
/* : Bool */;
2396 short int var1
/* : Bool */;
2397 val
* var2
/* : Template */;
2398 static val
* varonce
;
2399 val
* var3
/* : String */;
2400 char* var4
/* : NativeString */;
2401 long var5
/* : Int */;
2402 val
* var6
/* : String */;
2403 val
* var7
/* : String */;
2404 static val
* varonce8
;
2405 val
* var9
/* : String */;
2406 char* var10
/* : NativeString */;
2407 long var11
/* : Int */;
2408 val
* var12
/* : String */;
2409 val
* var13
/* : Array[Object] */;
2410 long var14
/* : Int */;
2411 val
* var15
/* : NativeArray[Object] */;
2412 val
* var16
/* : String */;
2413 val
* var17
/* : Template */;
2414 static val
* varonce18
;
2415 val
* var19
/* : String */;
2416 char* var20
/* : NativeString */;
2417 long var21
/* : Int */;
2418 val
* var22
/* : String */;
2419 val
* var23
/* : String */;
2420 static val
* varonce24
;
2421 val
* var25
/* : String */;
2422 char* var26
/* : NativeString */;
2423 long var27
/* : Int */;
2424 val
* var28
/* : String */;
2425 val
* var29
/* : Array[Object] */;
2426 long var30
/* : Int */;
2427 val
* var31
/* : NativeArray[Object] */;
2428 val
* var32
/* : String */;
2429 val
* var33
/* : Template */;
2430 static val
* varonce34
;
2431 val
* var35
/* : String */;
2432 char* var36
/* : NativeString */;
2433 long var37
/* : Int */;
2434 val
* var38
/* : String */;
2435 val
* var39
/* : String */;
2436 static val
* varonce40
;
2437 val
* var41
/* : String */;
2438 char* var42
/* : NativeString */;
2439 long var43
/* : Int */;
2440 val
* var44
/* : String */;
2441 val
* var45
/* : Array[Object] */;
2442 long var46
/* : Int */;
2443 val
* var47
/* : NativeArray[Object] */;
2444 val
* var48
/* : String */;
2445 val
* var49
/* : Template */;
2446 static val
* varonce50
;
2447 val
* var51
/* : String */;
2448 char* var52
/* : NativeString */;
2449 long var53
/* : Int */;
2450 val
* var54
/* : String */;
2453 var
= ((short int (*)(val
*))(self
->class->vft
[COLOR_nitni_base__MType__is_cprimitive
]))(self
) /* is_cprimitive on <self:MType>*/;
2456 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2457 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 280);
2460 var2
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_c_types
]))(var_ccu
) /* header_c_types on <var_ccu:CCompilationUnit>*/;
2464 var4
= "#ifndef NIT_TYPE_";
2466 var6
= string__NativeString__to_s_with_length(var4
, var5
);
2470 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_base__MType__cname
]))(self
) /* cname on <self:MType>*/;
2476 var12
= string__NativeString__to_s_with_length(var10
, var11
);
2480 var13
= NEW_array__Array(&type_array__Arraykernel__Object
);
2481 { /* var13 = array_instance Array[Object] */
2483 var15
= NEW_array__NativeArray(var14
, &type_array__NativeArraykernel__Object
);
2484 ((struct instance_array__NativeArray
*)var15
)->values
[0] = (val
*) var3
;
2485 ((struct instance_array__NativeArray
*)var15
)->values
[1] = (val
*) var7
;
2486 ((struct instance_array__NativeArray
*)var15
)->values
[2] = (val
*) var9
;
2487 ((void (*)(val
*, val
*, long))(var13
->class->vft
[COLOR_array__Array__with_native
]))(var13
, var15
, var14
) /* with_native on <var13:Array[Object]>*/;
2489 var16
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_string__Object__to_s
]))(var13
) /* to_s on <var13:Array[Object]>*/;
2490 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_template__Template__add
]))(var2
, var16
) /* add on <var2:Template>*/;
2491 var17
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_c_types
]))(var_ccu
) /* header_c_types on <var_ccu:CCompilationUnit>*/;
2495 var20
= "#define NIT_TYPE_";
2497 var22
= string__NativeString__to_s_with_length(var20
, var21
);
2501 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_base__MType__cname
]))(self
) /* cname on <self:MType>*/;
2507 var28
= string__NativeString__to_s_with_length(var26
, var27
);
2511 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
2512 { /* var29 = array_instance Array[Object] */
2514 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
2515 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var19
;
2516 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var23
;
2517 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var25
;
2518 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
2520 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
2521 ((void (*)(val
*, val
*))(var17
->class->vft
[COLOR_template__Template__add
]))(var17
, var32
) /* add on <var17:Template>*/;
2522 var33
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_c_types
]))(var_ccu
) /* header_c_types on <var_ccu:CCompilationUnit>*/;
2526 var36
= "typedef struct nitni_instance *";
2528 var38
= string__NativeString__to_s_with_length(var36
, var37
);
2532 var39
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_base__MType__cname
]))(self
) /* cname on <self:MType>*/;
2538 var44
= string__NativeString__to_s_with_length(var42
, var43
);
2542 var45
= NEW_array__Array(&type_array__Arraykernel__Object
);
2543 { /* var45 = array_instance Array[Object] */
2545 var47
= NEW_array__NativeArray(var46
, &type_array__NativeArraykernel__Object
);
2546 ((struct instance_array__NativeArray
*)var47
)->values
[0] = (val
*) var35
;
2547 ((struct instance_array__NativeArray
*)var47
)->values
[1] = (val
*) var39
;
2548 ((struct instance_array__NativeArray
*)var47
)->values
[2] = (val
*) var41
;
2549 ((void (*)(val
*, val
*, long))(var45
->class->vft
[COLOR_array__Array__with_native
]))(var45
, var47
, var46
) /* with_native on <var45:Array[Object]>*/;
2551 var48
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_string__Object__to_s
]))(var45
) /* to_s on <var45:Array[Object]>*/;
2552 ((void (*)(val
*, val
*))(var33
->class->vft
[COLOR_template__Template__add
]))(var33
, var48
) /* add on <var33:Template>*/;
2553 var49
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_c_types
]))(var_ccu
) /* header_c_types on <var_ccu:CCompilationUnit>*/;
2559 var54
= string__NativeString__to_s_with_length(var52
, var53
);
2563 ((void (*)(val
*, val
*))(var49
->class->vft
[COLOR_template__Template__add
]))(var49
, var51
) /* add on <var49:Template>*/;
2566 /* method compiler_ffi#MType#compile_extern_type for (self: Object, AbstractCompilerVisitor, CCompilationUnit) */
2567 void VIRTUAL_compiler_ffi__MType__compile_extern_type(val
* self
, val
* p0
, val
* p1
) {
2568 compiler_ffi__MType__compile_extern_type(self
, p0
, p1
);
2571 /* method compiler_ffi#MType#compile_extern_helper_functions for (self: MType, AbstractCompilerVisitor, CCompilationUnit) */
2572 void compiler_ffi__MType__compile_extern_helper_functions(val
* self
, val
* p0
, val
* p1
) {
2573 val
* var_v
/* var v: AbstractCompilerVisitor */;
2574 val
* var_ccu
/* var ccu: CCompilationUnit */;
2575 val
* var
/* : AbstractCompiler */;
2576 val
* var1
/* : AbstractCompilerVisitor */;
2577 val
* var_nitni_visitor
/* var nitni_visitor: AbstractCompilerVisitor */;
2578 val
* var2
/* : Template */;
2579 static val
* varonce
;
2580 val
* var3
/* : String */;
2581 char* var4
/* : NativeString */;
2582 long var5
/* : Int */;
2583 val
* var6
/* : String */;
2584 val
* var7
/* : String */;
2585 static val
* varonce8
;
2586 val
* var9
/* : String */;
2587 char* var10
/* : NativeString */;
2588 long var11
/* : Int */;
2589 val
* var12
/* : String */;
2590 val
* var13
/* : Array[Object] */;
2591 long var14
/* : Int */;
2592 val
* var15
/* : NativeArray[Object] */;
2593 val
* var16
/* : String */;
2594 val
* var17
/* : AbstractCompiler */;
2595 val
* var18
/* : AbstractCompilerVisitor */;
2596 val
* var19
/* : Template */;
2597 static val
* varonce20
;
2598 val
* var21
/* : String */;
2599 char* var22
/* : NativeString */;
2600 long var23
/* : Int */;
2601 val
* var24
/* : String */;
2602 val
* var25
/* : String */;
2603 static val
* varonce26
;
2604 val
* var27
/* : String */;
2605 char* var28
/* : NativeString */;
2606 long var29
/* : Int */;
2607 val
* var30
/* : String */;
2608 val
* var31
/* : Array[Object] */;
2609 long var32
/* : Int */;
2610 val
* var33
/* : NativeArray[Object] */;
2611 val
* var34
/* : String */;
2614 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
2615 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(var
) /* new_visitor on <var:AbstractCompiler>*/;
2616 var_nitni_visitor
= var1
;
2617 var2
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_decl
]))(var_ccu
) /* header_decl on <var_ccu:CCompilationUnit>*/;
2623 var6
= string__NativeString__to_s_with_length(var4
, var5
);
2627 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(self
) /* mangled_cname on <self:MType>*/;
2631 var10
= "_incr_ref(from) while(0){}\n";
2633 var12
= string__NativeString__to_s_with_length(var10
, var11
);
2637 var13
= NEW_array__Array(&type_array__Arraykernel__Object
);
2638 { /* var13 = array_instance Array[Object] */
2640 var15
= NEW_array__NativeArray(var14
, &type_array__NativeArraykernel__Object
);
2641 ((struct instance_array__NativeArray
*)var15
)->values
[0] = (val
*) var3
;
2642 ((struct instance_array__NativeArray
*)var15
)->values
[1] = (val
*) var7
;
2643 ((struct instance_array__NativeArray
*)var15
)->values
[2] = (val
*) var9
;
2644 ((void (*)(val
*, val
*, long))(var13
->class->vft
[COLOR_array__Array__with_native
]))(var13
, var15
, var14
) /* with_native on <var13:Array[Object]>*/;
2646 var16
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_string__Object__to_s
]))(var13
) /* to_s on <var13:Array[Object]>*/;
2647 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_template__Template__add
]))(var2
, var16
) /* add on <var2:Template>*/;
2648 var17
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
2649 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(var17
) /* new_visitor on <var17:AbstractCompiler>*/;
2650 var_nitni_visitor
= var18
;
2651 var19
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_decl
]))(var_ccu
) /* header_decl on <var_ccu:CCompilationUnit>*/;
2657 var24
= string__NativeString__to_s_with_length(var22
, var23
);
2661 var25
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(self
) /* mangled_cname on <self:MType>*/;
2665 var28
= "_decr_ref(from) while(0){}\n";
2667 var30
= string__NativeString__to_s_with_length(var28
, var29
);
2671 var31
= NEW_array__Array(&type_array__Arraykernel__Object
);
2672 { /* var31 = array_instance Array[Object] */
2674 var33
= NEW_array__NativeArray(var32
, &type_array__NativeArraykernel__Object
);
2675 ((struct instance_array__NativeArray
*)var33
)->values
[0] = (val
*) var21
;
2676 ((struct instance_array__NativeArray
*)var33
)->values
[1] = (val
*) var25
;
2677 ((struct instance_array__NativeArray
*)var33
)->values
[2] = (val
*) var27
;
2678 ((void (*)(val
*, val
*, long))(var31
->class->vft
[COLOR_array__Array__with_native
]))(var31
, var33
, var32
) /* with_native on <var31:Array[Object]>*/;
2680 var34
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_string__Object__to_s
]))(var31
) /* to_s on <var31:Array[Object]>*/;
2681 ((void (*)(val
*, val
*))(var19
->class->vft
[COLOR_template__Template__add
]))(var19
, var34
) /* add on <var19:Template>*/;
2684 /* method compiler_ffi#MType#compile_extern_helper_functions for (self: Object, AbstractCompilerVisitor, CCompilationUnit) */
2685 void VIRTUAL_compiler_ffi__MType__compile_extern_helper_functions(val
* self
, val
* p0
, val
* p1
) {
2686 compiler_ffi__MType__compile_extern_helper_functions(self
, p0
, p1
);
2689 /* method compiler_ffi#MNullableType#compile_extern_helper_functions for (self: MNullableType, AbstractCompilerVisitor, CCompilationUnit) */
2690 void compiler_ffi__MNullableType__compile_extern_helper_functions(val
* self
, val
* p0
, val
* p1
) {
2691 val
* var_v
/* var v: AbstractCompilerVisitor */;
2692 val
* var_ccu
/* var ccu: CCompilationUnit */;
2693 val
* var
/* : Array[Object] */;
2694 long var1
/* : Int */;
2695 val
* var_
/* var : Array[Object] */;
2696 static val
* varonce
;
2697 val
* var2
/* : String */;
2698 char* var3
/* : NativeString */;
2699 long var4
/* : Int */;
2700 val
* var5
/* : String */;
2701 val
* var6
/* : String */;
2702 static val
* varonce7
;
2703 val
* var8
/* : String */;
2704 char* var9
/* : NativeString */;
2705 long var10
/* : Int */;
2706 val
* var11
/* : String */;
2707 val
* var12
/* : AbstractCompiler */;
2708 val
* var13
/* : MModule */;
2709 val
* var14
/* : String */;
2710 static val
* varonce15
;
2711 val
* var16
/* : String */;
2712 char* var17
/* : NativeString */;
2713 long var18
/* : Int */;
2714 val
* var19
/* : String */;
2715 val
* var20
/* : MType */;
2716 val
* var21
/* : String */;
2717 static val
* varonce22
;
2718 val
* var23
/* : String */;
2719 char* var24
/* : NativeString */;
2720 long var25
/* : Int */;
2721 val
* var26
/* : String */;
2722 val
* var27
/* : String */;
2723 val
* var_full_friendly_csignature
/* var full_friendly_csignature: String */;
2724 val
* var28
/* : Template */;
2725 static val
* varonce29
;
2726 val
* var30
/* : String */;
2727 char* var31
/* : NativeString */;
2728 long var32
/* : Int */;
2729 val
* var33
/* : String */;
2730 static val
* varonce34
;
2731 val
* var35
/* : String */;
2732 char* var36
/* : NativeString */;
2733 long var37
/* : Int */;
2734 val
* var38
/* : String */;
2735 val
* var39
/* : Array[Object] */;
2736 long var40
/* : Int */;
2737 val
* var41
/* : NativeArray[Object] */;
2738 val
* var42
/* : String */;
2739 val
* var43
/* : Array[Object] */;
2740 long var44
/* : Int */;
2741 val
* var_45
/* var : Array[Object] */;
2742 static val
* varonce46
;
2743 val
* var47
/* : String */;
2744 char* var48
/* : NativeString */;
2745 long var49
/* : Int */;
2746 val
* var50
/* : String */;
2747 val
* var51
/* : MType */;
2748 val
* var52
/* : String */;
2749 static val
* varonce53
;
2750 val
* var54
/* : String */;
2751 char* var55
/* : NativeString */;
2752 long var56
/* : Int */;
2753 val
* var57
/* : String */;
2754 val
* var58
/* : String */;
2755 val
* var_base_cname
/* var base_cname: String */;
2756 val
* var59
/* : Template */;
2757 static val
* varonce60
;
2758 val
* var61
/* : String */;
2759 char* var62
/* : NativeString */;
2760 long var63
/* : Int */;
2761 val
* var64
/* : String */;
2762 static val
* varonce65
;
2763 val
* var66
/* : String */;
2764 char* var67
/* : NativeString */;
2765 long var68
/* : Int */;
2766 val
* var69
/* : String */;
2767 val
* var70
/* : AbstractCompiler */;
2768 val
* var71
/* : MModule */;
2769 val
* var72
/* : String */;
2770 static val
* varonce73
;
2771 val
* var74
/* : String */;
2772 char* var75
/* : NativeString */;
2773 long var76
/* : Int */;
2774 val
* var77
/* : String */;
2775 static val
* varonce78
;
2776 val
* var79
/* : String */;
2777 char* var80
/* : NativeString */;
2778 long var81
/* : Int */;
2779 val
* var82
/* : String */;
2780 val
* var83
/* : Array[Object] */;
2781 long var84
/* : Int */;
2782 val
* var85
/* : NativeArray[Object] */;
2783 val
* var86
/* : String */;
2784 val
* var87
/* : AbstractCompiler */;
2785 val
* var88
/* : AbstractCompilerVisitor */;
2786 val
* var_nitni_visitor
/* var nitni_visitor: AbstractCompilerVisitor */;
2787 val
* var89
/* : nullable Frame */;
2788 val
* var90
/* : Array[Object] */;
2789 long var91
/* : Int */;
2790 val
* var_92
/* var : Array[Object] */;
2791 static val
* varonce93
;
2792 val
* var94
/* : String */;
2793 char* var95
/* : NativeString */;
2794 long var96
/* : Int */;
2795 val
* var97
/* : String */;
2796 val
* var98
/* : String */;
2797 static val
* varonce99
;
2798 val
* var100
/* : String */;
2799 char* var101
/* : NativeString */;
2800 long var102
/* : Int */;
2801 val
* var103
/* : String */;
2802 val
* var104
/* : AbstractCompiler */;
2803 val
* var105
/* : MModule */;
2804 val
* var106
/* : String */;
2805 static val
* varonce107
;
2806 val
* var108
/* : String */;
2807 char* var109
/* : NativeString */;
2808 long var110
/* : Int */;
2809 val
* var111
/* : String */;
2810 val
* var112
/* : MType */;
2811 val
* var113
/* : String */;
2812 static val
* varonce114
;
2813 val
* var115
/* : String */;
2814 char* var116
/* : NativeString */;
2815 long var117
/* : Int */;
2816 val
* var118
/* : String */;
2817 val
* var119
/* : String */;
2818 val
* var_full_internal_csignature
/* var full_internal_csignature: String */;
2819 static val
* varonce120
;
2820 val
* var121
/* : String */;
2821 char* var122
/* : NativeString */;
2822 long var123
/* : Int */;
2823 val
* var124
/* : String */;
2824 val
* var125
/* : MType */;
2825 val
* var126
/* : String */;
2826 val
* var127
/* : Array[Object] */;
2827 long var128
/* : Int */;
2828 val
* var129
/* : NativeArray[Object] */;
2829 val
* var130
/* : String */;
2830 static val
* varonce131
;
2831 val
* var132
/* : String */;
2832 char* var133
/* : NativeString */;
2833 long var134
/* : Int */;
2834 val
* var135
/* : String */;
2835 val
* var136
/* : MType */;
2836 val
* var137
/* : String */;
2837 val
* var138
/* : Array[Object] */;
2838 long var139
/* : Int */;
2839 val
* var140
/* : NativeArray[Object] */;
2840 val
* var141
/* : String */;
2841 static val
* varonce142
;
2842 val
* var143
/* : String */;
2843 char* var144
/* : NativeString */;
2844 long var145
/* : Int */;
2845 val
* var146
/* : String */;
2846 val
* var147
/* : Array[Object] */;
2847 long var148
/* : Int */;
2848 val
* var149
/* : NativeArray[Object] */;
2849 val
* var150
/* : String */;
2850 static val
* varonce151
;
2851 val
* var152
/* : String */;
2852 char* var153
/* : NativeString */;
2853 long var154
/* : Int */;
2854 val
* var155
/* : String */;
2855 static val
* varonce156
;
2856 val
* var157
/* : String */;
2857 char* var158
/* : NativeString */;
2858 long var159
/* : Int */;
2859 val
* var160
/* : String */;
2860 static val
* varonce161
;
2861 val
* var162
/* : String */;
2862 char* var163
/* : NativeString */;
2863 long var164
/* : Int */;
2864 val
* var165
/* : String */;
2865 static val
* varonce166
;
2866 val
* var167
/* : String */;
2867 char* var168
/* : NativeString */;
2868 long var169
/* : Int */;
2869 val
* var170
/* : String */;
2870 static val
* varonce171
;
2871 val
* var172
/* : String */;
2872 char* var173
/* : NativeString */;
2873 long var174
/* : Int */;
2874 val
* var175
/* : String */;
2875 static val
* varonce176
;
2876 val
* var177
/* : String */;
2877 char* var178
/* : NativeString */;
2878 long var179
/* : Int */;
2879 val
* var180
/* : String */;
2882 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_compiler_ffi__MNullableType__compile_extern_helper_functions
]))(self
, p0
, p1
) /* compile_extern_helper_functions on <self:MNullableType>*/;
2883 var
= NEW_array__Array(&type_array__Arraykernel__Object
);
2885 ((void (*)(val
*, long))(var
->class->vft
[COLOR_array__Array__with_capacity
]))(var
, var1
) /* with_capacity on <var:Array[Object]>*/;
2892 var5
= string__NativeString__to_s_with_length(var3
, var4
);
2896 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var2
) /* add on <var_:Array[Object]>*/;
2897 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_base__MType__cname
]))(self
) /* cname on <self:MNullableType>*/;
2898 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var6
) /* add on <var_:Array[Object]>*/;
2904 var11
= string__NativeString__to_s_with_length(var9
, var10
);
2908 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var8
) /* add on <var_:Array[Object]>*/;
2909 var12
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
2910 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var12
) /* mainmodule on <var12:AbstractCompiler>*/;
2911 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_mmodule__MModule__name
]))(var13
) /* name on <var13:MModule>*/;
2912 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var14
) /* add on <var_:Array[Object]>*/;
2918 var19
= string__NativeString__to_s_with_length(var17
, var18
);
2922 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var16
) /* add on <var_:Array[Object]>*/;
2923 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
2924 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var20
) /* mangled_cname on <var20:MType>*/;
2925 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var21
) /* add on <var_:Array[Object]>*/;
2931 var26
= string__NativeString__to_s_with_length(var24
, var25
);
2935 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var23
) /* add on <var_:Array[Object]>*/;
2936 var27
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
2937 var_full_friendly_csignature
= var27
;
2938 var28
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_decl
]))(var_ccu
) /* header_decl on <var_ccu:CCompilationUnit>*/;
2944 var33
= string__NativeString__to_s_with_length(var31
, var32
);
2953 var38
= string__NativeString__to_s_with_length(var36
, var37
);
2957 var39
= NEW_array__Array(&type_array__Arraykernel__Object
);
2958 { /* var39 = array_instance Array[Object] */
2960 var41
= NEW_array__NativeArray(var40
, &type_array__NativeArraykernel__Object
);
2961 ((struct instance_array__NativeArray
*)var41
)->values
[0] = (val
*) var30
;
2962 ((struct instance_array__NativeArray
*)var41
)->values
[1] = (val
*) var_full_friendly_csignature
;
2963 ((struct instance_array__NativeArray
*)var41
)->values
[2] = (val
*) var35
;
2964 ((void (*)(val
*, val
*, long))(var39
->class->vft
[COLOR_array__Array__with_native
]))(var39
, var41
, var40
) /* with_native on <var39:Array[Object]>*/;
2966 var42
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_string__Object__to_s
]))(var39
) /* to_s on <var39:Array[Object]>*/;
2967 ((void (*)(val
*, val
*))(var28
->class->vft
[COLOR_template__Template__add
]))(var28
, var42
) /* add on <var28:Template>*/;
2968 var43
= NEW_array__Array(&type_array__Arraykernel__Object
);
2970 ((void (*)(val
*, long))(var43
->class->vft
[COLOR_array__Array__with_capacity
]))(var43
, var44
) /* with_capacity on <var43:Array[Object]>*/;
2977 var50
= string__NativeString__to_s_with_length(var48
, var49
);
2981 ((void (*)(val
*, val
*))(var_45
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_45
, var47
) /* add on <var_45:Array[Object]>*/;
2982 var51
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
2983 var52
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var51
) /* mangled_cname on <var51:MType>*/;
2984 ((void (*)(val
*, val
*))(var_45
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_45
, var52
) /* add on <var_45:Array[Object]>*/;
2990 var57
= string__NativeString__to_s_with_length(var55
, var56
);
2994 ((void (*)(val
*, val
*))(var_45
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_45
, var54
) /* add on <var_45:Array[Object]>*/;
2995 var58
= ((val
* (*)(val
*))(var_45
->class->vft
[COLOR_string__Object__to_s
]))(var_45
) /* to_s on <var_45:Array[Object]>*/;
2996 var_base_cname
= var58
;
2997 var59
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_decl
]))(var_ccu
) /* header_decl on <var_ccu:CCompilationUnit>*/;
3003 var64
= string__NativeString__to_s_with_length(var62
, var63
);
3012 var69
= string__NativeString__to_s_with_length(var67
, var68
);
3016 var70
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
3017 var71
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var70
) /* mainmodule on <var70:AbstractCompiler>*/;
3018 var72
= ((val
* (*)(val
*))(var71
->class->vft
[COLOR_mmodule__MModule__name
]))(var71
) /* name on <var71:MModule>*/;
3024 var77
= string__NativeString__to_s_with_length(var75
, var76
);
3033 var82
= string__NativeString__to_s_with_length(var80
, var81
);
3037 var83
= NEW_array__Array(&type_array__Arraykernel__Object
);
3038 { /* var83 = array_instance Array[Object] */
3040 var85
= NEW_array__NativeArray(var84
, &type_array__NativeArraykernel__Object
);
3041 ((struct instance_array__NativeArray
*)var85
)->values
[0] = (val
*) var61
;
3042 ((struct instance_array__NativeArray
*)var85
)->values
[1] = (val
*) var_base_cname
;
3043 ((struct instance_array__NativeArray
*)var85
)->values
[2] = (val
*) var66
;
3044 ((struct instance_array__NativeArray
*)var85
)->values
[3] = (val
*) var72
;
3045 ((struct instance_array__NativeArray
*)var85
)->values
[4] = (val
*) var74
;
3046 ((struct instance_array__NativeArray
*)var85
)->values
[5] = (val
*) var_base_cname
;
3047 ((struct instance_array__NativeArray
*)var85
)->values
[6] = (val
*) var79
;
3048 ((void (*)(val
*, val
*, long))(var83
->class->vft
[COLOR_array__Array__with_native
]))(var83
, var85
, var84
) /* with_native on <var83:Array[Object]>*/;
3050 var86
= ((val
* (*)(val
*))(var83
->class->vft
[COLOR_string__Object__to_s
]))(var83
) /* to_s on <var83:Array[Object]>*/;
3051 ((void (*)(val
*, val
*))(var59
->class->vft
[COLOR_template__Template__add
]))(var59
, var86
) /* add on <var59:Template>*/;
3052 var87
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
3053 var88
= ((val
* (*)(val
*))(var87
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(var87
) /* new_visitor on <var87:AbstractCompiler>*/;
3054 var_nitni_visitor
= var88
;
3055 var89
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(var_v
) /* frame on <var_v:AbstractCompilerVisitor>*/;
3056 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d
]))(var_nitni_visitor
, var89
) /* frame= on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3057 var90
= NEW_array__Array(&type_array__Arraykernel__Object
);
3059 ((void (*)(val
*, long))(var90
->class->vft
[COLOR_array__Array__with_capacity
]))(var90
, var91
) /* with_capacity on <var90:Array[Object]>*/;
3066 var97
= string__NativeString__to_s_with_length(var95
, var96
);
3070 ((void (*)(val
*, val
*))(var_92
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_92
, var94
) /* add on <var_92:Array[Object]>*/;
3071 var98
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_base__MType__cname_blind
]))(self
) /* cname_blind on <self:MNullableType>*/;
3072 ((void (*)(val
*, val
*))(var_92
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_92
, var98
) /* add on <var_92:Array[Object]>*/;
3078 var103
= string__NativeString__to_s_with_length(var101
, var102
);
3082 ((void (*)(val
*, val
*))(var_92
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_92
, var100
) /* add on <var_92:Array[Object]>*/;
3083 var104
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
3084 var105
= ((val
* (*)(val
*))(var104
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var104
) /* mainmodule on <var104:AbstractCompiler>*/;
3085 var106
= ((val
* (*)(val
*))(var105
->class->vft
[COLOR_mmodule__MModule__name
]))(var105
) /* name on <var105:MModule>*/;
3086 ((void (*)(val
*, val
*))(var_92
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_92
, var106
) /* add on <var_92:Array[Object]>*/;
3088 var108
= varonce107
;
3090 var109
= "___null_";
3092 var111
= string__NativeString__to_s_with_length(var109
, var110
);
3094 varonce107
= var108
;
3096 ((void (*)(val
*, val
*))(var_92
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_92
, var108
) /* add on <var_92:Array[Object]>*/;
3097 var112
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
3098 var113
= ((val
* (*)(val
*))(var112
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var112
) /* mangled_cname on <var112:MType>*/;
3099 ((void (*)(val
*, val
*))(var_92
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_92
, var113
) /* add on <var_92:Array[Object]>*/;
3101 var115
= varonce114
;
3105 var118
= string__NativeString__to_s_with_length(var116
, var117
);
3107 varonce114
= var115
;
3109 ((void (*)(val
*, val
*))(var_92
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_92
, var115
) /* add on <var_92:Array[Object]>*/;
3110 var119
= ((val
* (*)(val
*))(var_92
->class->vft
[COLOR_string__Object__to_s
]))(var_92
) /* to_s on <var_92:Array[Object]>*/;
3111 var_full_internal_csignature
= var119
;
3113 var121
= varonce120
;
3115 var122
= "#ifndef NIT_NULL_null_";
3117 var124
= string__NativeString__to_s_with_length(var122
, var123
);
3119 varonce120
= var121
;
3121 var125
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
3122 var126
= ((val
* (*)(val
*))(var125
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var125
) /* mangled_cname on <var125:MType>*/;
3123 var127
= NEW_array__Array(&type_array__Arraykernel__Object
);
3124 { /* var127 = array_instance Array[Object] */
3126 var129
= NEW_array__NativeArray(var128
, &type_array__NativeArraykernel__Object
);
3127 ((struct instance_array__NativeArray
*)var129
)->values
[0] = (val
*) var121
;
3128 ((struct instance_array__NativeArray
*)var129
)->values
[1] = (val
*) var126
;
3129 ((void (*)(val
*, val
*, long))(var127
->class->vft
[COLOR_array__Array__with_native
]))(var127
, var129
, var128
) /* with_native on <var127:Array[Object]>*/;
3131 var130
= ((val
* (*)(val
*))(var127
->class->vft
[COLOR_string__Object__to_s
]))(var127
) /* to_s on <var127:Array[Object]>*/;
3132 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var130
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3134 var132
= varonce131
;
3136 var133
= "#define NIT_NULL_null_";
3138 var135
= string__NativeString__to_s_with_length(var133
, var134
);
3140 varonce131
= var132
;
3142 var136
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
3143 var137
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var136
) /* mangled_cname on <var136:MType>*/;
3144 var138
= NEW_array__Array(&type_array__Arraykernel__Object
);
3145 { /* var138 = array_instance Array[Object] */
3147 var140
= NEW_array__NativeArray(var139
, &type_array__NativeArraykernel__Object
);
3148 ((struct instance_array__NativeArray
*)var140
)->values
[0] = (val
*) var132
;
3149 ((struct instance_array__NativeArray
*)var140
)->values
[1] = (val
*) var137
;
3150 ((void (*)(val
*, val
*, long))(var138
->class->vft
[COLOR_array__Array__with_native
]))(var138
, var140
, var139
) /* with_native on <var138:Array[Object]>*/;
3152 var141
= ((val
* (*)(val
*))(var138
->class->vft
[COLOR_string__Object__to_s
]))(var138
) /* to_s on <var138:Array[Object]>*/;
3153 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var141
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3155 var143
= varonce142
;
3159 var146
= string__NativeString__to_s_with_length(var144
, var145
);
3161 varonce142
= var143
;
3163 var147
= NEW_array__Array(&type_array__Arraykernel__Object
);
3164 { /* var147 = array_instance Array[Object] */
3166 var149
= NEW_array__NativeArray(var148
, &type_array__NativeArraykernel__Object
);
3167 ((struct instance_array__NativeArray
*)var149
)->values
[0] = (val
*) var_full_internal_csignature
;
3168 ((struct instance_array__NativeArray
*)var149
)->values
[1] = (val
*) var143
;
3169 ((void (*)(val
*, val
*, long))(var147
->class->vft
[COLOR_array__Array__with_native
]))(var147
, var149
, var148
) /* with_native on <var147:Array[Object]>*/;
3171 var150
= ((val
* (*)(val
*))(var147
->class->vft
[COLOR_string__Object__to_s
]))(var147
) /* to_s on <var147:Array[Object]>*/;
3172 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var150
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3174 var152
= varonce151
;
3176 var153
= "struct nitni_instance* ret_for_c;";
3178 var155
= string__NativeString__to_s_with_length(var153
, var154
);
3180 varonce151
= var152
;
3182 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var152
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3184 var157
= varonce156
;
3186 var158
= "ret_for_c = malloc(sizeof(struct nitni_instance));";
3188 var160
= string__NativeString__to_s_with_length(var158
, var159
);
3190 varonce156
= var157
;
3192 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var157
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3194 var162
= varonce161
;
3196 var163
= "ret_for_c->value = NULL;";
3198 var165
= string__NativeString__to_s_with_length(var163
, var164
);
3200 varonce161
= var162
;
3202 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var162
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3204 var167
= varonce166
;
3206 var168
= "return ret_for_c;";
3208 var170
= string__NativeString__to_s_with_length(var168
, var169
);
3210 varonce166
= var167
;
3212 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var167
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3214 var172
= varonce171
;
3218 var175
= string__NativeString__to_s_with_length(var173
, var174
);
3220 varonce171
= var172
;
3222 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var172
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3224 var177
= varonce176
;
3228 var180
= string__NativeString__to_s_with_length(var178
, var179
);
3230 varonce176
= var177
;
3232 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var177
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3235 /* method compiler_ffi#MNullableType#compile_extern_helper_functions for (self: Object, AbstractCompilerVisitor, CCompilationUnit) */
3236 void VIRTUAL_compiler_ffi__MNullableType__compile_extern_helper_functions(val
* self
, val
* p0
, val
* p1
) {
3237 compiler_ffi__MNullableType__compile_extern_helper_functions(self
, p0
, p1
);
3240 /* method compiler_ffi#MExplicitCall#compile_extern_callback for (self: MExplicitCall, AbstractCompilerVisitor, CCompilationUnit) */
3241 void compiler_ffi__MExplicitCall__compile_extern_callback(val
* self
, val
* p0
, val
* p1
) {
3242 val
* var_v
/* var v: AbstractCompilerVisitor */;
3243 val
* var_ccu
/* var ccu: CCompilationUnit */;
3244 val
* var
/* : MProperty */;
3245 val
* var_mproperty
/* var mproperty: MProperty */;
3246 short int var1
/* : Bool */;
3249 val
* var2
/* : MClassType */;
3250 val
* var3
/* : AbstractCompiler */;
3251 val
* var4
/* : MModule */;
3252 val
* var5
/* : null */;
3253 val
* var6
/* : SignatureLength */;
3254 val
* var7
/* : CallContext */;
3255 val
* var8
/* : String */;
3256 val
* var_full_friendly_csignature
/* var full_friendly_csignature: String */;
3257 val
* var9
/* : Template */;
3258 static val
* varonce
;
3259 val
* var10
/* : String */;
3260 char* var11
/* : NativeString */;
3261 long var12
/* : Int */;
3262 val
* var13
/* : String */;
3263 static val
* varonce14
;
3264 val
* var15
/* : String */;
3265 char* var16
/* : NativeString */;
3266 long var17
/* : Int */;
3267 val
* var18
/* : String */;
3268 val
* var19
/* : Array[Object] */;
3269 long var20
/* : Int */;
3270 val
* var21
/* : NativeArray[Object] */;
3271 val
* var22
/* : String */;
3272 val
* var23
/* : AbstractCompiler */;
3273 val
* var24
/* : AbstractCompilerVisitor */;
3274 val
* var_nitni_visitor
/* var nitni_visitor: AbstractCompilerVisitor */;
3275 val
* var25
/* : nullable Frame */;
3276 val
* var26
/* : AbstractCompiler */;
3277 val
* var27
/* : MModule */;
3278 val
* var28
/* : MClassType */;
3279 val
* var29
/* : MPropDef */;
3280 val
* var30
/* : nullable MSignature */;
3281 val
* var_msignature
/* var msignature: nullable MSignature */;
3282 val
* var31
/* : MClassType */;
3283 val
* var32
/* : AbstractCompiler */;
3284 val
* var33
/* : MModule */;
3285 val
* var34
/* : null */;
3286 val
* var35
/* : SignatureLength */;
3287 val
* var36
/* : CallContext */;
3288 val
* var37
/* : String */;
3289 val
* var_csignature_blind
/* var csignature_blind: String */;
3290 static val
* varonce38
;
3291 val
* var39
/* : String */;
3292 char* var40
/* : NativeString */;
3293 long var41
/* : Int */;
3294 val
* var42
/* : String */;
3295 val
* var43
/* : String */;
3296 static val
* varonce44
;
3297 val
* var45
/* : String */;
3298 char* var46
/* : NativeString */;
3299 long var47
/* : Int */;
3300 val
* var48
/* : String */;
3301 val
* var49
/* : Array[Object] */;
3302 long var50
/* : Int */;
3303 val
* var51
/* : NativeArray[Object] */;
3304 val
* var52
/* : String */;
3305 static val
* varonce53
;
3306 val
* var54
/* : String */;
3307 char* var55
/* : NativeString */;
3308 long var56
/* : Int */;
3309 val
* var57
/* : String */;
3310 val
* var58
/* : Array[Object] */;
3311 long var59
/* : Int */;
3312 val
* var60
/* : NativeArray[Object] */;
3313 val
* var61
/* : String */;
3314 val
* var62
/* : Array[RuntimeVariable] */;
3315 val
* var_vars
/* var vars: Array[RuntimeVariable] */;
3316 val
* var63
/* : MClassType */;
3317 val
* var_mtype
/* var mtype: MType */;
3318 val
* var64
/* : null */;
3319 val
* var_recv_var
/* var recv_var: nullable Object */;
3320 short int var65
/* : Bool */;
3321 val
* var66
/* : MClassType */;
3322 val
* var67
/* : MClass */;
3323 val
* var68
/* : MClassKind */;
3324 val
* var69
/* : MClassKind */;
3325 short int var70
/* : Bool */;
3326 val
* var71
/* : RuntimeVariable */;
3327 val
* var72
/* : MClassType */;
3328 val
* var_recv_mtype
/* var recv_mtype: MClassType */;
3329 val
* var73
/* : RuntimeVariable */;
3330 val
* var74
/* : String */;
3331 static val
* varonce75
;
3332 val
* var76
/* : String */;
3333 char* var77
/* : NativeString */;
3334 long var78
/* : Int */;
3335 val
* var79
/* : String */;
3336 static val
* varonce80
;
3337 val
* var81
/* : String */;
3338 char* var82
/* : NativeString */;
3339 long var83
/* : Int */;
3340 val
* var84
/* : String */;
3341 val
* var85
/* : Array[Object] */;
3342 long var86
/* : Int */;
3343 val
* var87
/* : NativeArray[Object] */;
3344 val
* var88
/* : String */;
3345 static val
* varonce89
;
3346 val
* var90
/* : String */;
3347 char* var91
/* : NativeString */;
3348 long var92
/* : Int */;
3349 val
* var93
/* : String */;
3350 static val
* varonce94
;
3351 val
* var95
/* : String */;
3352 char* var96
/* : NativeString */;
3353 long var97
/* : Int */;
3354 val
* var98
/* : String */;
3355 val
* var99
/* : Array[Object] */;
3356 long var100
/* : Int */;
3357 val
* var101
/* : NativeArray[Object] */;
3358 val
* var102
/* : String */;
3359 val
* var103
/* : AbstractCompiler */;
3360 val
* var104
/* : MModule */;
3361 val
* var105
/* : MClassType */;
3362 val
* var106
/* : MType */;
3363 static val
* varonce107
;
3364 val
* var108
/* : String */;
3365 char* var109
/* : NativeString */;
3366 long var110
/* : Int */;
3367 val
* var111
/* : String */;
3368 val
* var112
/* : RuntimeVariable */;
3369 val
* var113
/* : Array[MParameter] */;
3370 val
* var114
/* : Iterator[nullable Object] */;
3371 short int var115
/* : Bool */;
3372 val
* var116
/* : nullable Object */;
3373 val
* var_p
/* var p: MParameter */;
3374 val
* var117
/* : MType */;
3375 val
* var118
/* : AbstractCompiler */;
3376 val
* var119
/* : MModule */;
3377 val
* var120
/* : MClassType */;
3378 val
* var121
/* : MType */;
3379 val
* var_arg_mtype
/* var arg_mtype: MType */;
3380 val
* var122
/* : String */;
3381 val
* var123
/* : RuntimeVariable */;
3382 val
* var_arg
/* var arg: RuntimeVariable */;
3383 val
* var124
/* : nullable RuntimeVariable */;
3384 val
* var_ret_var
/* var ret_var: nullable RuntimeVariable */;
3385 val
* var125
/* : nullable MType */;
3386 val
* var_return_mtype
/* var return_mtype: nullable MType */;
3387 short int var126
/* : Bool */;
3388 val
* var127
/* : MClassType */;
3389 val
* var128
/* : MClass */;
3390 val
* var129
/* : MClassKind */;
3391 val
* var130
/* : MClassKind */;
3392 short int var131
/* : Bool */;
3393 val
* var132
/* : MClassType */;
3394 val
* var133
/* : null */;
3395 short int var134
/* : Bool */;
3396 val
* var135
/* : null */;
3397 short int var136
/* : Bool */;
3398 val
* var137
/* : AbstractCompiler */;
3399 val
* var138
/* : MModule */;
3400 val
* var139
/* : MClassType */;
3401 val
* var140
/* : MType */;
3402 val
* var141
/* : RuntimeVariable */;
3403 static val
* varonce142
;
3404 val
* var143
/* : String */;
3405 char* var144
/* : NativeString */;
3406 long var145
/* : Int */;
3407 val
* var146
/* : String */;
3410 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCall__mproperty
]))(self
) /* mproperty on <self:MExplicitCall>*/;
3411 var_mproperty
= var
;
3412 /* <var_mproperty:MProperty> isa MMethod */
3413 cltype
= type_model__MMethod
.color
;
3414 idtype
= type_model__MMethod
.id
;
3415 if(cltype
>= var_mproperty
->type
->table_size
) {
3418 var1
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
3421 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3422 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 336);
3425 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCall__recv_mtype
]))(self
) /* recv_mtype on <self:MExplicitCall>*/;
3426 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
3427 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var3
) /* mainmodule on <var3:AbstractCompiler>*/;
3429 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_utilities__Object__long_signature
]))(self
) /* long_signature on <self:MExplicitCall>*/;
3430 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_utilities__Object__internal_call_context
]))(self
) /* internal_call_context on <self:MExplicitCall>*/;
3431 var8
= ((val
* (*)(val
*, val
*, val
*, val
*, val
*, val
*))(var_mproperty
->class->vft
[COLOR_nitni_utilities__MMethod__build_csignature
]))(var_mproperty
, var2
, var4
, var5
, var6
, var7
) /* build_csignature on <var_mproperty:MProperty(MMethod)>*/;
3432 var_full_friendly_csignature
= var8
;
3433 var9
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_decl
]))(var_ccu
) /* header_decl on <var_ccu:CCompilationUnit>*/;
3439 var13
= string__NativeString__to_s_with_length(var11
, var12
);
3448 var18
= string__NativeString__to_s_with_length(var16
, var17
);
3452 var19
= NEW_array__Array(&type_array__Arraykernel__Object
);
3453 { /* var19 = array_instance Array[Object] */
3455 var21
= NEW_array__NativeArray(var20
, &type_array__NativeArraykernel__Object
);
3456 ((struct instance_array__NativeArray
*)var21
)->values
[0] = (val
*) var10
;
3457 ((struct instance_array__NativeArray
*)var21
)->values
[1] = (val
*) var_full_friendly_csignature
;
3458 ((struct instance_array__NativeArray
*)var21
)->values
[2] = (val
*) var15
;
3459 ((void (*)(val
*, val
*, long))(var19
->class->vft
[COLOR_array__Array__with_native
]))(var19
, var21
, var20
) /* with_native on <var19:Array[Object]>*/;
3461 var22
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_string__Object__to_s
]))(var19
) /* to_s on <var19:Array[Object]>*/;
3462 ((void (*)(val
*, val
*))(var9
->class->vft
[COLOR_template__Template__add
]))(var9
, var22
) /* add on <var9:Template>*/;
3463 var23
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
3464 var24
= ((val
* (*)(val
*))(var23
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(var23
) /* new_visitor on <var23:AbstractCompiler>*/;
3465 var_nitni_visitor
= var24
;
3466 var25
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(var_v
) /* frame on <var_v:AbstractCompilerVisitor>*/;
3467 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d
]))(var_nitni_visitor
, var25
) /* frame= on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3468 var26
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
3469 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var26
) /* mainmodule on <var26:AbstractCompiler>*/;
3470 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCall__recv_mtype
]))(self
) /* recv_mtype on <self:MExplicitCall>*/;
3471 var29
= ((val
* (*)(val
*, val
*, val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__lookup_first_definition
]))(var_mproperty
, var27
, var28
) /* lookup_first_definition on <var_mproperty:MProperty(MMethod)>*/;
3472 var30
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var29
) /* msignature on <var29:MPropDef(MMethodDef)>*/;
3473 var_msignature
= var30
;
3474 var31
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCall__recv_mtype
]))(self
) /* recv_mtype on <self:MExplicitCall>*/;
3475 var32
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
3476 var33
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var32
) /* mainmodule on <var32:AbstractCompiler>*/;
3478 var35
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_utilities__Object__long_signature
]))(self
) /* long_signature on <self:MExplicitCall>*/;
3479 var36
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_utilities__Object__internal_call_context
]))(self
) /* internal_call_context on <self:MExplicitCall>*/;
3480 var37
= ((val
* (*)(val
*, val
*, val
*, val
*, val
*, val
*))(var_mproperty
->class->vft
[COLOR_nitni_utilities__MMethod__build_csignature
]))(var_mproperty
, var31
, var33
, var34
, var35
, var36
) /* build_csignature on <var_mproperty:MProperty(MMethod)>*/;
3481 var_csignature_blind
= var37
;
3485 var40
= "/* nitni callback for ";
3487 var42
= string__NativeString__to_s_with_length(var40
, var41
);
3491 var43
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__full_name
]))(var_mproperty
) /* full_name on <var_mproperty:MProperty(MMethod)>*/;
3497 var48
= string__NativeString__to_s_with_length(var46
, var47
);
3501 var49
= NEW_array__Array(&type_array__Arraykernel__Object
);
3502 { /* var49 = array_instance Array[Object] */
3504 var51
= NEW_array__NativeArray(var50
, &type_array__NativeArraykernel__Object
);
3505 ((struct instance_array__NativeArray
*)var51
)->values
[0] = (val
*) var39
;
3506 ((struct instance_array__NativeArray
*)var51
)->values
[1] = (val
*) var43
;
3507 ((struct instance_array__NativeArray
*)var51
)->values
[2] = (val
*) var45
;
3508 ((void (*)(val
*, val
*, long))(var49
->class->vft
[COLOR_array__Array__with_native
]))(var49
, var51
, var50
) /* with_native on <var49:Array[Object]>*/;
3510 var52
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_string__Object__to_s
]))(var49
) /* to_s on <var49:Array[Object]>*/;
3511 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_nitni_visitor
, var52
) /* add_decl on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3517 var57
= string__NativeString__to_s_with_length(var55
, var56
);
3521 var58
= NEW_array__Array(&type_array__Arraykernel__Object
);
3522 { /* var58 = array_instance Array[Object] */
3524 var60
= NEW_array__NativeArray(var59
, &type_array__NativeArraykernel__Object
);
3525 ((struct instance_array__NativeArray
*)var60
)->values
[0] = (val
*) var_csignature_blind
;
3526 ((struct instance_array__NativeArray
*)var60
)->values
[1] = (val
*) var54
;
3527 ((void (*)(val
*, val
*, long))(var58
->class->vft
[COLOR_array__Array__with_native
]))(var58
, var60
, var59
) /* with_native on <var58:Array[Object]>*/;
3529 var61
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_string__Object__to_s
]))(var58
) /* to_s on <var58:Array[Object]>*/;
3530 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_nitni_visitor
, var61
) /* add_decl on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3531 var62
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
3532 ((void (*)(val
*))(var62
->class->vft
[COLOR_array__Array__init
]))(var62
) /* init on <var62:Array[RuntimeVariable]>*/;
3534 var63
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCall__recv_mtype
]))(self
) /* recv_mtype on <self:MExplicitCall>*/;
3537 var_recv_var
= var64
;
3538 var65
= ((short int (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MMethod__is_init
]))(var_mproperty
) /* is_init on <var_mproperty:MProperty(MMethod)>*/;
3540 var66
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCall__recv_mtype
]))(self
) /* recv_mtype on <self:MExplicitCall>*/;
3541 var67
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_model__MClassType__mclass
]))(var66
) /* mclass on <var66:MClassType>*/;
3542 var68
= ((val
* (*)(val
*))(var67
->class->vft
[COLOR_model__MClass__kind
]))(var67
) /* kind on <var67:MClass>*/;
3543 var69
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__extern_kind
]))(self
) /* extern_kind on <self:MExplicitCall>*/;
3544 var70
= ((short int (*)(val
*, val
*))(var68
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var68
, var69
) /* == on <var68:MClassKind>*/;
3546 var71
= ((val
* (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(var_nitni_visitor
, var_mtype
) /* new_var on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3547 var_recv_var
= var71
;
3549 var72
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCall__recv_mtype
]))(self
) /* recv_mtype on <self:MExplicitCall>*/;
3550 var_recv_mtype
= var72
;
3551 var73
= ((val
* (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init_instance
]))(var_nitni_visitor
, var_recv_mtype
) /* init_instance on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3552 var_recv_var
= var73
;
3553 var74
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
3557 var77
= " recv /* var self: ";
3559 var79
= string__NativeString__to_s_with_length(var77
, var78
);
3568 var84
= string__NativeString__to_s_with_length(var82
, var83
);
3572 var85
= NEW_array__Array(&type_array__Arraykernel__Object
);
3573 { /* var85 = array_instance Array[Object] */
3575 var87
= NEW_array__NativeArray(var86
, &type_array__NativeArraykernel__Object
);
3576 ((struct instance_array__NativeArray
*)var87
)->values
[0] = (val
*) var74
;
3577 ((struct instance_array__NativeArray
*)var87
)->values
[1] = (val
*) var76
;
3578 ((struct instance_array__NativeArray
*)var87
)->values
[2] = (val
*) var_mtype
;
3579 ((struct instance_array__NativeArray
*)var87
)->values
[3] = (val
*) var81
;
3580 ((void (*)(val
*, val
*, long))(var85
->class->vft
[COLOR_array__Array__with_native
]))(var85
, var87
, var86
) /* with_native on <var85:Array[Object]>*/;
3582 var88
= ((val
* (*)(val
*))(var85
->class->vft
[COLOR_string__Object__to_s
]))(var85
) /* to_s on <var85:Array[Object]>*/;
3583 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var88
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3589 var93
= string__NativeString__to_s_with_length(var91
, var92
);
3598 var98
= string__NativeString__to_s_with_length(var96
, var97
);
3602 var99
= NEW_array__Array(&type_array__Arraykernel__Object
);
3603 { /* var99 = array_instance Array[Object] */
3605 var101
= NEW_array__NativeArray(var100
, &type_array__NativeArraykernel__Object
);
3606 ((struct instance_array__NativeArray
*)var101
)->values
[0] = (val
*) var90
;
3607 ((struct instance_array__NativeArray
*)var101
)->values
[1] = (val
*) var_recv_var
;
3608 ((struct instance_array__NativeArray
*)var101
)->values
[2] = (val
*) var95
;
3609 ((void (*)(val
*, val
*, long))(var99
->class->vft
[COLOR_array__Array__with_native
]))(var99
, var101
, var100
) /* with_native on <var99:Array[Object]>*/;
3611 var102
= ((val
* (*)(val
*))(var99
->class->vft
[COLOR_string__Object__to_s
]))(var99
) /* to_s on <var99:Array[Object]>*/;
3612 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var102
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3615 var103
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
3616 var104
= ((val
* (*)(val
*))(var103
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var103
) /* mainmodule on <var103:AbstractCompiler>*/;
3617 var105
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCall__recv_mtype
]))(self
) /* recv_mtype on <self:MExplicitCall>*/;
3618 var106
= ((val
* (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_mtype
, var104
, var105
) /* anchor_to on <var_mtype:MType>*/;
3621 var108
= varonce107
;
3625 var111
= string__NativeString__to_s_with_length(var109
, var110
);
3627 varonce107
= var108
;
3629 var112
= ((val
* (*)(val
*, val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_compiler_ffi__AbstractCompilerVisitor__var_from_c
]))(var_nitni_visitor
, var108
, var_mtype
) /* var_from_c on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3630 var_recv_var
= var112
;
3632 ((void (*)(val
*, val
*))(var_vars
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_vars
, var_recv_var
) /* add on <var_vars:Array[RuntimeVariable]>*/;
3633 if (var_msignature
== NULL
) {
3634 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3635 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 370);
3638 var113
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:nullable MSignature>*/;
3640 var114
= ((val
* (*)(val
*))(var113
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var113
) /* iterator on <var113:Array[MParameter]>*/;
3642 var115
= ((short int (*)(val
*))(var114
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var114
) /* is_ok on <var114:Iterator[nullable Object]>*/;
3644 var116
= ((val
* (*)(val
*))(var114
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var114
) /* item on <var114:Iterator[nullable Object]>*/;
3646 var117
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MParameter__mtype
]))(var_p
) /* mtype on <var_p:MParameter>*/;
3647 var118
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
3648 var119
= ((val
* (*)(val
*))(var118
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var118
) /* mainmodule on <var118:AbstractCompiler>*/;
3649 var120
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCall__recv_mtype
]))(self
) /* recv_mtype on <self:MExplicitCall>*/;
3650 var121
= ((val
* (*)(val
*, val
*, val
*))(var117
->class->vft
[COLOR_model__MType__anchor_to
]))(var117
, var119
, var120
) /* anchor_to on <var117:MType>*/;
3651 var_arg_mtype
= var121
;
3652 var122
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MParameter__name
]))(var_p
) /* name on <var_p:MParameter>*/;
3653 var123
= ((val
* (*)(val
*, val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_compiler_ffi__AbstractCompilerVisitor__var_from_c
]))(var_nitni_visitor
, var122
, var_arg_mtype
) /* var_from_c on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3655 ((void (*)(val
*, val
*))(var_vars
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_vars
, var_arg
) /* add on <var_vars:Array[RuntimeVariable]>*/;
3656 CONTINUE_label
: (void)0;
3657 ((void (*)(val
*))(var114
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var114
) /* next on <var114:Iterator[nullable Object]>*/;
3659 BREAK_label
: (void)0;
3660 var124
= ((val
* (*)(val
*, val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__send
]))(var_nitni_visitor
, var_mproperty
, var_vars
) /* send on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3661 var_ret_var
= var124
;
3662 if (var_msignature
== NULL
) {
3663 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3664 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 378);
3667 var125
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:nullable MSignature>*/;
3669 var_return_mtype
= var125
;
3670 var126
= ((short int (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MMethod__is_init
]))(var_mproperty
) /* is_init on <var_mproperty:MProperty(MMethod)>*/;
3672 var127
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCall__recv_mtype
]))(self
) /* recv_mtype on <self:MExplicitCall>*/;
3673 var128
= ((val
* (*)(val
*))(var127
->class->vft
[COLOR_model__MClassType__mclass
]))(var127
) /* mclass on <var127:MClassType>*/;
3674 var129
= ((val
* (*)(val
*))(var128
->class->vft
[COLOR_model__MClass__kind
]))(var128
) /* kind on <var128:MClass>*/;
3675 var130
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__extern_kind
]))(self
) /* extern_kind on <self:MExplicitCall>*/;
3676 var131
= ((short int (*)(val
*, val
*))(var129
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var129
, var130
) /* != on <var129:MClassKind>*/;
3678 var_ret_var
= var_recv_var
;
3681 var132
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCall__recv_mtype
]))(self
) /* recv_mtype on <self:MExplicitCall>*/;
3682 var_return_mtype
= var132
;
3686 if (var_return_mtype
== NULL
) {
3687 var134
= 0; /* is null */
3689 var134
= 1; /* arg is null and recv is not */
3693 if (var_ret_var
== NULL
) {
3694 var136
= 0; /* is null */
3696 var136
= 1; /* arg is null and recv is not */
3699 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3700 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 384);
3703 var137
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
3704 var138
= ((val
* (*)(val
*))(var137
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var137
) /* mainmodule on <var137:AbstractCompiler>*/;
3705 var139
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCall__recv_mtype
]))(self
) /* recv_mtype on <self:MExplicitCall>*/;
3706 var140
= ((val
* (*)(val
*, val
*, val
*))(var_return_mtype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_return_mtype
, var138
, var139
) /* anchor_to on <var_return_mtype:nullable MType(MType)>*/;
3707 var_return_mtype
= var140
;
3708 var141
= ((val
* (*)(val
*, val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(var_nitni_visitor
, var_ret_var
, var_return_mtype
) /* autobox on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3709 var_ret_var
= var141
;
3710 ((void (*)(val
*, val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_compiler_ffi__AbstractCompilerVisitor__ret_to_c
]))(var_nitni_visitor
, var_ret_var
, var_return_mtype
) /* ret_to_c on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3714 var143
= varonce142
;
3718 var146
= string__NativeString__to_s_with_length(var144
, var145
);
3720 varonce142
= var143
;
3722 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var143
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
3725 /* method compiler_ffi#MExplicitCall#compile_extern_callback for (self: Object, AbstractCompilerVisitor, CCompilationUnit) */
3726 void VIRTUAL_compiler_ffi__MExplicitCall__compile_extern_callback(val
* self
, val
* p0
, val
* p1
) {
3727 compiler_ffi__MExplicitCall__compile_extern_callback(self
, p0
, p1
);
3730 /* method compiler_ffi#MExplicitSuper#compile_extern_callback for (self: MExplicitSuper, AbstractCompilerVisitor, CCompilationUnit) */
3731 void compiler_ffi__MExplicitSuper__compile_extern_callback(val
* self
, val
* p0
, val
* p1
) {
3732 val
* var_v
/* var v: AbstractCompilerVisitor */;
3733 val
* var_ccu
/* var ccu: CCompilationUnit */;
3734 val
* var
/* : MPropDef */;
3735 val
* var1
/* : MProperty */;
3736 val
* var_mproperty
/* var mproperty: MProperty */;
3737 short int var2
/* : Bool */;
3740 val
* var3
/* : MPropDef */;
3741 val
* var4
/* : MClassDef */;
3742 val
* var5
/* : MClass */;
3743 val
* var6
/* : MClassType */;
3744 val
* var_mclass_type
/* var mclass_type: MClassType */;
3745 val
* var7
/* : MPropDef */;
3746 val
* var8
/* : MClassDef */;
3747 val
* var9
/* : MModule */;
3748 val
* var_mmodule
/* var mmodule: MModule */;
3749 val
* var10
/* : AbstractCompiler */;
3750 val
* var11
/* : MModule */;
3751 static val
* varonce
;
3752 val
* var12
/* : String */;
3753 char* var13
/* : NativeString */;
3754 long var14
/* : Int */;
3755 val
* var15
/* : String */;
3756 val
* var16
/* : SignatureLength */;
3757 val
* var17
/* : CallContext */;
3758 val
* var18
/* : String */;
3759 val
* var_internal_csignature
/* var internal_csignature: String */;
3760 val
* var19
/* : Template */;
3761 static val
* varonce20
;
3762 val
* var21
/* : String */;
3763 char* var22
/* : NativeString */;
3764 long var23
/* : Int */;
3765 val
* var24
/* : String */;
3766 static val
* varonce25
;
3767 val
* var26
/* : String */;
3768 char* var27
/* : NativeString */;
3769 long var28
/* : Int */;
3770 val
* var29
/* : String */;
3771 val
* var30
/* : Array[Object] */;
3772 long var31
/* : Int */;
3773 val
* var32
/* : NativeArray[Object] */;
3774 val
* var33
/* : String */;
3775 val
* var34
/* : AbstractCompiler */;
3776 val
* var35
/* : MModule */;
3777 static val
* varonce36
;
3778 val
* var37
/* : String */;
3779 char* var38
/* : NativeString */;
3780 long var39
/* : Int */;
3781 val
* var40
/* : String */;
3782 val
* var41
/* : SignatureLength */;
3783 val
* var42
/* : String */;
3784 val
* var_friendly_cname
/* var friendly_cname: String */;
3785 val
* var43
/* : AbstractCompiler */;
3786 val
* var44
/* : MModule */;
3787 static val
* varonce45
;
3788 val
* var46
/* : String */;
3789 char* var47
/* : NativeString */;
3790 long var48
/* : Int */;
3791 val
* var49
/* : String */;
3792 val
* var50
/* : SignatureLength */;
3793 val
* var51
/* : String */;
3794 val
* var_internal_cname
/* var internal_cname: String */;
3795 val
* var52
/* : Template */;
3796 static val
* varonce53
;
3797 val
* var54
/* : String */;
3798 char* var55
/* : NativeString */;
3799 long var56
/* : Int */;
3800 val
* var57
/* : String */;
3801 static val
* varonce58
;
3802 val
* var59
/* : String */;
3803 char* var60
/* : NativeString */;
3804 long var61
/* : Int */;
3805 val
* var62
/* : String */;
3806 static val
* varonce63
;
3807 val
* var64
/* : String */;
3808 char* var65
/* : NativeString */;
3809 long var66
/* : Int */;
3810 val
* var67
/* : String */;
3811 val
* var68
/* : Array[Object] */;
3812 long var69
/* : Int */;
3813 val
* var70
/* : NativeArray[Object] */;
3814 val
* var71
/* : String */;
3815 val
* var72
/* : AbstractCompiler */;
3816 val
* var73
/* : AbstractCompilerVisitor */;
3817 val
* var_nitni_visitor
/* var nitni_visitor: AbstractCompilerVisitor */;
3818 val
* var74
/* : nullable Frame */;
3819 val
* var75
/* : AbstractCompiler */;
3820 val
* var76
/* : MModule */;
3821 val
* var77
/* : MPropDef */;
3822 val
* var78
/* : nullable MSignature */;
3823 val
* var_msignature
/* var msignature: nullable MSignature */;
3824 val
* var79
/* : AbstractCompiler */;
3825 val
* var80
/* : MModule */;
3826 static val
* varonce81
;
3827 val
* var82
/* : String */;
3828 char* var83
/* : NativeString */;
3829 long var84
/* : Int */;
3830 val
* var85
/* : String */;
3831 val
* var86
/* : SignatureLength */;
3832 val
* var87
/* : CallContext */;
3833 val
* var88
/* : String */;
3834 val
* var_csignature_blind
/* var csignature_blind: String */;
3835 static val
* varonce89
;
3836 val
* var90
/* : String */;
3837 char* var91
/* : NativeString */;
3838 long var92
/* : Int */;
3839 val
* var93
/* : String */;
3840 val
* var94
/* : String */;
3841 static val
* varonce95
;
3842 val
* var96
/* : String */;
3843 char* var97
/* : NativeString */;
3844 long var98
/* : Int */;
3845 val
* var99
/* : String */;
3846 val
* var100
/* : Array[Object] */;
3847 long var101
/* : Int */;
3848 val
* var102
/* : NativeArray[Object] */;
3849 val
* var103
/* : String */;
3850 static val
* varonce104
;
3851 val
* var105
/* : String */;
3852 char* var106
/* : NativeString */;
3853 long var107
/* : Int */;
3854 val
* var108
/* : String */;
3855 val
* var109
/* : Array[Object] */;
3856 long var110
/* : Int */;
3857 val
* var111
/* : NativeArray[Object] */;
3858 val
* var112
/* : String */;
3859 val
* var113
/* : Array[RuntimeVariable] */;
3860 val
* var_vars
/* var vars: Array[RuntimeVariable] */;
3861 static val
* varonce114
;
3862 val
* var115
/* : String */;
3863 char* var116
/* : NativeString */;
3864 long var117
/* : Int */;
3865 val
* var118
/* : String */;
3866 val
* var119
/* : RuntimeVariable */;
3867 val
* var_recv_var
/* var recv_var: RuntimeVariable */;
3868 val
* var120
/* : Array[MParameter] */;
3869 val
* var121
/* : Iterator[nullable Object] */;
3870 short int var122
/* : Bool */;
3871 val
* var123
/* : nullable Object */;
3872 val
* var_p
/* var p: MParameter */;
3873 val
* var124
/* : MType */;
3874 val
* var125
/* : MType */;
3875 val
* var_arg_mtype
/* var arg_mtype: MType */;
3876 val
* var126
/* : String */;
3877 val
* var127
/* : RuntimeVariable */;
3878 val
* var_arg
/* var arg: RuntimeVariable */;
3879 val
* var128
/* : MPropDef */;
3880 short int var129
/* : Bool */;
3883 const char* var_class_name
;
3884 val
* var132
/* : nullable RuntimeVariable */;
3885 val
* var_ret_var
/* var ret_var: nullable RuntimeVariable */;
3886 val
* var133
/* : nullable MType */;
3887 val
* var_return_mtype
/* var return_mtype: nullable MType */;
3888 val
* var134
/* : null */;
3889 short int var135
/* : Bool */;
3890 val
* var136
/* : null */;
3891 short int var137
/* : Bool */;
3892 val
* var138
/* : MType */;
3893 static val
* varonce139
;
3894 val
* var140
/* : String */;
3895 char* var141
/* : NativeString */;
3896 long var142
/* : Int */;
3897 val
* var143
/* : String */;
3900 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitSuper__from
]))(self
) /* from on <self:MExplicitSuper>*/;
3901 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var
) /* mproperty on <var:MPropDef>*/;
3902 var_mproperty
= var1
;
3903 /* <var_mproperty:MProperty> isa MMethod */
3904 cltype
= type_model__MMethod
.color
;
3905 idtype
= type_model__MMethod
.id
;
3906 if(cltype
>= var_mproperty
->type
->table_size
) {
3909 var2
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
3912 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3913 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 397);
3916 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitSuper__from
]))(self
) /* from on <self:MExplicitSuper>*/;
3917 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var3
) /* mclassdef on <var3:MPropDef>*/;
3918 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_model__MClassDef__mclass
]))(var4
) /* mclass on <var4:MClassDef>*/;
3919 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClass__mclass_type
]))(var5
) /* mclass_type on <var5:MClass>*/;
3920 var_mclass_type
= var6
;
3921 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitSuper__from
]))(self
) /* from on <self:MExplicitSuper>*/;
3922 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var7
) /* mclassdef on <var7:MPropDef>*/;
3923 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var8
) /* mmodule on <var8:MClassDef>*/;
3925 var10
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
3926 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var10
) /* mainmodule on <var10:AbstractCompiler>*/;
3932 var15
= string__NativeString__to_s_with_length(var13
, var14
);
3936 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_utilities__Object__long_signature
]))(self
) /* long_signature on <self:MExplicitSuper>*/;
3937 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_utilities__Object__internal_call_context
]))(self
) /* internal_call_context on <self:MExplicitSuper>*/;
3938 var18
= ((val
* (*)(val
*, val
*, val
*, val
*, val
*, val
*))(var_mproperty
->class->vft
[COLOR_nitni_utilities__MMethod__build_csignature
]))(var_mproperty
, var_mclass_type
, var11
, var12
, var16
, var17
) /* build_csignature on <var_mproperty:MProperty(MMethod)>*/;
3939 var_internal_csignature
= var18
;
3940 var19
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_decl
]))(var_ccu
) /* header_decl on <var_ccu:CCompilationUnit>*/;
3946 var24
= string__NativeString__to_s_with_length(var22
, var23
);
3955 var29
= string__NativeString__to_s_with_length(var27
, var28
);
3959 var30
= NEW_array__Array(&type_array__Arraykernel__Object
);
3960 { /* var30 = array_instance Array[Object] */
3962 var32
= NEW_array__NativeArray(var31
, &type_array__NativeArraykernel__Object
);
3963 ((struct instance_array__NativeArray
*)var32
)->values
[0] = (val
*) var21
;
3964 ((struct instance_array__NativeArray
*)var32
)->values
[1] = (val
*) var_internal_csignature
;
3965 ((struct instance_array__NativeArray
*)var32
)->values
[2] = (val
*) var26
;
3966 ((void (*)(val
*, val
*, long))(var30
->class->vft
[COLOR_array__Array__with_native
]))(var30
, var32
, var31
) /* with_native on <var30:Array[Object]>*/;
3968 var33
= ((val
* (*)(val
*))(var30
->class->vft
[COLOR_string__Object__to_s
]))(var30
) /* to_s on <var30:Array[Object]>*/;
3969 ((void (*)(val
*, val
*))(var19
->class->vft
[COLOR_template__Template__add
]))(var19
, var33
) /* add on <var19:Template>*/;
3970 var34
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
3971 var35
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var34
) /* mainmodule on <var34:AbstractCompiler>*/;
3977 var40
= string__NativeString__to_s_with_length(var38
, var39
);
3981 var41
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_utilities__Object__short_signature
]))(self
) /* short_signature on <self:MExplicitSuper>*/;
3982 var42
= ((val
* (*)(val
*, val
*, val
*, val
*, val
*))(var_mproperty
->class->vft
[COLOR_nitni_utilities__MMethod__build_cname
]))(var_mproperty
, var_mclass_type
, var35
, var37
, var41
) /* build_cname on <var_mproperty:MProperty(MMethod)>*/;
3983 var_friendly_cname
= var42
;
3984 var43
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
3985 var44
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var43
) /* mainmodule on <var43:AbstractCompiler>*/;
3991 var49
= string__NativeString__to_s_with_length(var47
, var48
);
3995 var50
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_utilities__Object__long_signature
]))(self
) /* long_signature on <self:MExplicitSuper>*/;
3996 var51
= ((val
* (*)(val
*, val
*, val
*, val
*, val
*))(var_mproperty
->class->vft
[COLOR_nitni_utilities__MMethod__build_cname
]))(var_mproperty
, var_mclass_type
, var44
, var46
, var50
) /* build_cname on <var_mproperty:MProperty(MMethod)>*/;
3997 var_internal_cname
= var51
;
3998 var52
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_decl
]))(var_ccu
) /* header_decl on <var_ccu:CCompilationUnit>*/;
4004 var57
= string__NativeString__to_s_with_length(var55
, var56
);
4013 var62
= string__NativeString__to_s_with_length(var60
, var61
);
4022 var67
= string__NativeString__to_s_with_length(var65
, var66
);
4026 var68
= NEW_array__Array(&type_array__Arraykernel__Object
);
4027 { /* var68 = array_instance Array[Object] */
4029 var70
= NEW_array__NativeArray(var69
, &type_array__NativeArraykernel__Object
);
4030 ((struct instance_array__NativeArray
*)var70
)->values
[0] = (val
*) var54
;
4031 ((struct instance_array__NativeArray
*)var70
)->values
[1] = (val
*) var_friendly_cname
;
4032 ((struct instance_array__NativeArray
*)var70
)->values
[2] = (val
*) var59
;
4033 ((struct instance_array__NativeArray
*)var70
)->values
[3] = (val
*) var_internal_cname
;
4034 ((struct instance_array__NativeArray
*)var70
)->values
[4] = (val
*) var64
;
4035 ((void (*)(val
*, val
*, long))(var68
->class->vft
[COLOR_array__Array__with_native
]))(var68
, var70
, var69
) /* with_native on <var68:Array[Object]>*/;
4037 var71
= ((val
* (*)(val
*))(var68
->class->vft
[COLOR_string__Object__to_s
]))(var68
) /* to_s on <var68:Array[Object]>*/;
4038 ((void (*)(val
*, val
*))(var52
->class->vft
[COLOR_template__Template__add
]))(var52
, var71
) /* add on <var52:Template>*/;
4039 var72
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
4040 var73
= ((val
* (*)(val
*))(var72
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(var72
) /* new_visitor on <var72:AbstractCompiler>*/;
4041 var_nitni_visitor
= var73
;
4042 var74
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(var_v
) /* frame on <var_v:AbstractCompilerVisitor>*/;
4043 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d
]))(var_nitni_visitor
, var74
) /* frame= on <var_nitni_visitor:AbstractCompilerVisitor>*/;
4044 var75
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
4045 var76
= ((val
* (*)(val
*))(var75
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var75
) /* mainmodule on <var75:AbstractCompiler>*/;
4046 var77
= ((val
* (*)(val
*, val
*, val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__lookup_first_definition
]))(var_mproperty
, var76
, var_mclass_type
) /* lookup_first_definition on <var_mproperty:MProperty(MMethod)>*/;
4047 var78
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var77
) /* msignature on <var77:MPropDef(MMethodDef)>*/;
4048 var_msignature
= var78
;
4049 var79
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
4050 var80
= ((val
* (*)(val
*))(var79
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var79
) /* mainmodule on <var79:AbstractCompiler>*/;
4056 var85
= string__NativeString__to_s_with_length(var83
, var84
);
4060 var86
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_utilities__Object__long_signature
]))(self
) /* long_signature on <self:MExplicitSuper>*/;
4061 var87
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_utilities__Object__internal_call_context
]))(self
) /* internal_call_context on <self:MExplicitSuper>*/;
4062 var88
= ((val
* (*)(val
*, val
*, val
*, val
*, val
*, val
*))(var_mproperty
->class->vft
[COLOR_nitni_utilities__MMethod__build_csignature
]))(var_mproperty
, var_mclass_type
, var80
, var82
, var86
, var87
) /* build_csignature on <var_mproperty:MProperty(MMethod)>*/;
4063 var_csignature_blind
= var88
;
4067 var91
= "/* nitni callback to super for ";
4069 var93
= string__NativeString__to_s_with_length(var91
, var92
);
4073 var94
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__full_name
]))(var_mproperty
) /* full_name on <var_mproperty:MProperty(MMethod)>*/;
4079 var99
= string__NativeString__to_s_with_length(var97
, var98
);
4083 var100
= NEW_array__Array(&type_array__Arraykernel__Object
);
4084 { /* var100 = array_instance Array[Object] */
4086 var102
= NEW_array__NativeArray(var101
, &type_array__NativeArraykernel__Object
);
4087 ((struct instance_array__NativeArray
*)var102
)->values
[0] = (val
*) var90
;
4088 ((struct instance_array__NativeArray
*)var102
)->values
[1] = (val
*) var94
;
4089 ((struct instance_array__NativeArray
*)var102
)->values
[2] = (val
*) var96
;
4090 ((void (*)(val
*, val
*, long))(var100
->class->vft
[COLOR_array__Array__with_native
]))(var100
, var102
, var101
) /* with_native on <var100:Array[Object]>*/;
4092 var103
= ((val
* (*)(val
*))(var100
->class->vft
[COLOR_string__Object__to_s
]))(var100
) /* to_s on <var100:Array[Object]>*/;
4093 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_nitni_visitor
, var103
) /* add_decl on <var_nitni_visitor:AbstractCompilerVisitor>*/;
4095 var105
= varonce104
;
4099 var108
= string__NativeString__to_s_with_length(var106
, var107
);
4101 varonce104
= var105
;
4103 var109
= NEW_array__Array(&type_array__Arraykernel__Object
);
4104 { /* var109 = array_instance Array[Object] */
4106 var111
= NEW_array__NativeArray(var110
, &type_array__NativeArraykernel__Object
);
4107 ((struct instance_array__NativeArray
*)var111
)->values
[0] = (val
*) var_csignature_blind
;
4108 ((struct instance_array__NativeArray
*)var111
)->values
[1] = (val
*) var105
;
4109 ((void (*)(val
*, val
*, long))(var109
->class->vft
[COLOR_array__Array__with_native
]))(var109
, var111
, var110
) /* with_native on <var109:Array[Object]>*/;
4111 var112
= ((val
* (*)(val
*))(var109
->class->vft
[COLOR_string__Object__to_s
]))(var109
) /* to_s on <var109:Array[Object]>*/;
4112 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_nitni_visitor
, var112
) /* add_decl on <var_nitni_visitor:AbstractCompilerVisitor>*/;
4113 var113
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
4114 ((void (*)(val
*))(var113
->class->vft
[COLOR_array__Array__init
]))(var113
) /* init on <var113:Array[RuntimeVariable]>*/;
4117 var115
= varonce114
;
4121 var118
= string__NativeString__to_s_with_length(var116
, var117
);
4123 varonce114
= var115
;
4125 var119
= ((val
* (*)(val
*, val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_compiler_ffi__AbstractCompilerVisitor__var_from_c
]))(var_nitni_visitor
, var115
, var_mclass_type
) /* var_from_c on <var_nitni_visitor:AbstractCompilerVisitor>*/;
4126 var_recv_var
= var119
;
4127 ((void (*)(val
*, val
*))(var_vars
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_vars
, var_recv_var
) /* add on <var_vars:Array[RuntimeVariable]>*/;
4128 if (var_msignature
== NULL
) {
4129 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
4130 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 425);
4133 var120
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:nullable MSignature>*/;
4135 var121
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var120
) /* iterator on <var120:Array[MParameter]>*/;
4137 var122
= ((short int (*)(val
*))(var121
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var121
) /* is_ok on <var121:Iterator[nullable Object]>*/;
4139 var123
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var121
) /* item on <var121:Iterator[nullable Object]>*/;
4141 var124
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MParameter__mtype
]))(var_p
) /* mtype on <var_p:MParameter>*/;
4142 var125
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__anchor
]))(var_v
, var124
) /* anchor on <var_v:AbstractCompilerVisitor>*/;
4143 var_arg_mtype
= var125
;
4144 var126
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MParameter__name
]))(var_p
) /* name on <var_p:MParameter>*/;
4145 var127
= ((val
* (*)(val
*, val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_compiler_ffi__AbstractCompilerVisitor__var_from_c
]))(var_nitni_visitor
, var126
, var_arg_mtype
) /* var_from_c on <var_nitni_visitor:AbstractCompilerVisitor>*/;
4147 ((void (*)(val
*, val
*))(var_vars
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_vars
, var_arg
) /* add on <var_vars:Array[RuntimeVariable]>*/;
4148 CONTINUE_label
: (void)0;
4149 ((void (*)(val
*))(var121
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var121
) /* next on <var121:Iterator[nullable Object]>*/;
4151 BREAK_label
: (void)0;
4152 var128
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitSuper__from
]))(self
) /* from on <self:MExplicitSuper>*/;
4153 /* <var128:MPropDef> isa MMethodDef */
4154 cltype130
= type_model__MMethodDef
.color
;
4155 idtype131
= type_model__MMethodDef
.id
;
4156 if(cltype130
>= var128
->type
->table_size
) {
4159 var129
= var128
->type
->type_table
[cltype130
] == idtype131
;
4162 var_class_name
= var128
== NULL ?
"null" : var128
->type
->name
;
4163 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MMethodDef", var_class_name
);
4164 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 431);
4167 var132
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__supercall
]))(var_nitni_visitor
, var128
, var_mclass_type
, var_vars
) /* supercall on <var_nitni_visitor:AbstractCompilerVisitor>*/;
4168 var_ret_var
= var132
;
4169 if (var_msignature
== NULL
) {
4170 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
4171 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 433);
4174 var133
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:nullable MSignature>*/;
4176 var_return_mtype
= var133
;
4178 if (var_return_mtype
== NULL
) {
4179 var135
= 0; /* is null */
4181 var135
= 1; /* arg is null and recv is not */
4185 if (var_ret_var
== NULL
) {
4186 var137
= 0; /* is null */
4188 var137
= 1; /* arg is null and recv is not */
4191 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4192 fprintf(stderr
, " (%s:%d)\n", "src/compiler_ffi.nit", 435);
4195 var138
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__anchor
]))(var_v
, var_return_mtype
) /* anchor on <var_v:AbstractCompilerVisitor>*/;
4196 var_return_mtype
= var138
;
4197 ((void (*)(val
*, val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_compiler_ffi__AbstractCompilerVisitor__ret_to_c
]))(var_nitni_visitor
, var_ret_var
, var_return_mtype
) /* ret_to_c on <var_nitni_visitor:AbstractCompilerVisitor>*/;
4201 var140
= varonce139
;
4205 var143
= string__NativeString__to_s_with_length(var141
, var142
);
4207 varonce139
= var140
;
4209 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var140
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
4212 /* method compiler_ffi#MExplicitSuper#compile_extern_callback for (self: Object, AbstractCompilerVisitor, CCompilationUnit) */
4213 void VIRTUAL_compiler_ffi__MExplicitSuper__compile_extern_callback(val
* self
, val
* p0
, val
* p1
) {
4214 compiler_ffi__MExplicitSuper__compile_extern_callback(self
, p0
, p1
);
4217 /* method compiler_ffi#MExplicitCast#compile_extern_callbacks for (self: MExplicitCast, AbstractCompilerVisitor, CCompilationUnit) */
4218 void compiler_ffi__MExplicitCast__compile_extern_callbacks(val
* self
, val
* p0
, val
* p1
) {
4219 val
* var_v
/* var v: AbstractCompilerVisitor */;
4220 val
* var_ccu
/* var ccu: CCompilationUnit */;
4221 val
* var
/* : MType */;
4222 val
* var_from
/* var from: MType */;
4223 val
* var1
/* : MType */;
4224 val
* var_to
/* var to: MType */;
4225 val
* var2
/* : Array[Object] */;
4226 long var3
/* : Int */;
4227 val
* var_
/* var : Array[Object] */;
4228 static val
* varonce
;
4229 val
* var4
/* : String */;
4230 char* var5
/* : NativeString */;
4231 long var6
/* : Int */;
4232 val
* var7
/* : String */;
4233 val
* var8
/* : AbstractCompiler */;
4234 val
* var9
/* : MModule */;
4235 val
* var10
/* : String */;
4236 static val
* varonce11
;
4237 val
* var12
/* : String */;
4238 char* var13
/* : NativeString */;
4239 long var14
/* : Int */;
4240 val
* var15
/* : String */;
4241 val
* var16
/* : String */;
4242 static val
* varonce17
;
4243 val
* var18
/* : String */;
4244 char* var19
/* : NativeString */;
4245 long var20
/* : Int */;
4246 val
* var21
/* : String */;
4247 val
* var22
/* : String */;
4248 static val
* varonce23
;
4249 val
* var24
/* : String */;
4250 char* var25
/* : NativeString */;
4251 long var26
/* : Int */;
4252 val
* var27
/* : String */;
4253 val
* var28
/* : String */;
4254 static val
* varonce29
;
4255 val
* var30
/* : String */;
4256 char* var31
/* : NativeString */;
4257 long var32
/* : Int */;
4258 val
* var33
/* : String */;
4259 val
* var34
/* : String */;
4260 val
* var_full_friendly_csignature
/* var full_friendly_csignature: String */;
4261 val
* var35
/* : Template */;
4262 static val
* varonce36
;
4263 val
* var37
/* : String */;
4264 char* var38
/* : NativeString */;
4265 long var39
/* : Int */;
4266 val
* var40
/* : String */;
4267 static val
* varonce41
;
4268 val
* var42
/* : String */;
4269 char* var43
/* : NativeString */;
4270 long var44
/* : Int */;
4271 val
* var45
/* : String */;
4272 val
* var46
/* : Array[Object] */;
4273 long var47
/* : Int */;
4274 val
* var48
/* : NativeArray[Object] */;
4275 val
* var49
/* : String */;
4276 val
* var50
/* : Template */;
4277 static val
* varonce51
;
4278 val
* var52
/* : String */;
4279 char* var53
/* : NativeString */;
4280 long var54
/* : Int */;
4281 val
* var55
/* : String */;
4282 val
* var56
/* : String */;
4283 static val
* varonce57
;
4284 val
* var58
/* : String */;
4285 char* var59
/* : NativeString */;
4286 long var60
/* : Int */;
4287 val
* var61
/* : String */;
4288 val
* var62
/* : AbstractCompiler */;
4289 val
* var63
/* : MModule */;
4290 val
* var64
/* : String */;
4291 static val
* varonce65
;
4292 val
* var66
/* : String */;
4293 char* var67
/* : NativeString */;
4294 long var68
/* : Int */;
4295 val
* var69
/* : String */;
4296 val
* var70
/* : String */;
4297 static val
* varonce71
;
4298 val
* var72
/* : String */;
4299 char* var73
/* : NativeString */;
4300 long var74
/* : Int */;
4301 val
* var75
/* : String */;
4302 val
* var76
/* : Array[Object] */;
4303 long var77
/* : Int */;
4304 val
* var78
/* : NativeArray[Object] */;
4305 val
* var79
/* : String */;
4306 val
* var80
/* : AbstractCompiler */;
4307 val
* var81
/* : AbstractCompilerVisitor */;
4308 val
* var_nitni_visitor
/* var nitni_visitor: AbstractCompilerVisitor */;
4309 val
* var82
/* : nullable Frame */;
4310 val
* var83
/* : Array[Object] */;
4311 long var84
/* : Int */;
4312 val
* var_85
/* var : Array[Object] */;
4313 static val
* varonce86
;
4314 val
* var87
/* : String */;
4315 char* var88
/* : NativeString */;
4316 long var89
/* : Int */;
4317 val
* var90
/* : String */;
4318 val
* var91
/* : AbstractCompiler */;
4319 val
* var92
/* : MModule */;
4320 val
* var93
/* : String */;
4321 static val
* varonce94
;
4322 val
* var95
/* : String */;
4323 char* var96
/* : NativeString */;
4324 long var97
/* : Int */;
4325 val
* var98
/* : String */;
4326 val
* var99
/* : String */;
4327 static val
* varonce100
;
4328 val
* var101
/* : String */;
4329 char* var102
/* : NativeString */;
4330 long var103
/* : Int */;
4331 val
* var104
/* : String */;
4332 val
* var105
/* : String */;
4333 static val
* varonce106
;
4334 val
* var107
/* : String */;
4335 char* var108
/* : NativeString */;
4336 long var109
/* : Int */;
4337 val
* var110
/* : String */;
4338 val
* var111
/* : String */;
4339 static val
* varonce112
;
4340 val
* var113
/* : String */;
4341 char* var114
/* : NativeString */;
4342 long var115
/* : Int */;
4343 val
* var116
/* : String */;
4344 val
* var117
/* : String */;
4345 val
* var_full_internal_csignature
/* var full_internal_csignature: String */;
4346 static val
* varonce118
;
4347 val
* var119
/* : String */;
4348 char* var120
/* : NativeString */;
4349 long var121
/* : Int */;
4350 val
* var122
/* : String */;
4351 static val
* varonce123
;
4352 val
* var124
/* : String */;
4353 char* var125
/* : NativeString */;
4354 long var126
/* : Int */;
4355 val
* var127
/* : String */;
4356 static val
* varonce128
;
4357 val
* var129
/* : String */;
4358 char* var130
/* : NativeString */;
4359 long var131
/* : Int */;
4360 val
* var132
/* : String */;
4361 val
* var133
/* : Array[Object] */;
4362 long var134
/* : Int */;
4363 val
* var135
/* : NativeArray[Object] */;
4364 val
* var136
/* : String */;
4365 static val
* varonce137
;
4366 val
* var138
/* : String */;
4367 char* var139
/* : NativeString */;
4368 long var140
/* : Int */;
4369 val
* var141
/* : String */;
4370 val
* var142
/* : Array[Object] */;
4371 long var143
/* : Int */;
4372 val
* var144
/* : NativeArray[Object] */;
4373 val
* var145
/* : String */;
4374 val
* var146
/* : RuntimeVariable */;
4375 static val
* varonce147
;
4376 val
* var148
/* : String */;
4377 char* var149
/* : NativeString */;
4378 long var150
/* : Int */;
4379 val
* var151
/* : String */;
4380 val
* var_from_var
/* var from_var: RuntimeVariable */;
4381 static val
* varonce152
;
4382 val
* var153
/* : String */;
4383 char* var154
/* : NativeString */;
4384 long var155
/* : Int */;
4385 val
* var156
/* : String */;
4386 val
* var157
/* : RuntimeVariable */;
4387 val
* var_recv_var
/* var recv_var: RuntimeVariable */;
4388 static val
* varonce158
;
4389 val
* var159
/* : String */;
4390 char* var160
/* : NativeString */;
4391 long var161
/* : Int */;
4392 val
* var162
/* : String */;
4393 static val
* varonce163
;
4394 val
* var164
/* : String */;
4395 char* var165
/* : NativeString */;
4396 long var166
/* : Int */;
4397 val
* var167
/* : String */;
4398 val
* var168
/* : Array[Object] */;
4399 long var169
/* : Int */;
4400 val
* var170
/* : NativeArray[Object] */;
4401 val
* var171
/* : String */;
4402 static val
* varonce172
;
4403 val
* var173
/* : String */;
4404 char* var174
/* : NativeString */;
4405 long var175
/* : Int */;
4406 val
* var176
/* : String */;
4407 val
* var177
/* : MType */;
4408 short int var178
/* : Bool */;
4409 val
* var179
/* : Template */;
4410 static val
* varonce180
;
4411 val
* var181
/* : String */;
4412 char* var182
/* : NativeString */;
4413 long var183
/* : Int */;
4414 val
* var184
/* : String */;
4415 val
* var185
/* : String */;
4416 static val
* varonce186
;
4417 val
* var187
/* : String */;
4418 char* var188
/* : NativeString */;
4419 long var189
/* : Int */;
4420 val
* var190
/* : String */;
4421 val
* var191
/* : String */;
4422 static val
* varonce192
;
4423 val
* var193
/* : String */;
4424 char* var194
/* : NativeString */;
4425 long var195
/* : Int */;
4426 val
* var196
/* : String */;
4427 val
* var197
/* : String */;
4428 static val
* varonce198
;
4429 val
* var199
/* : String */;
4430 char* var200
/* : NativeString */;
4431 long var201
/* : Int */;
4432 val
* var202
/* : String */;
4433 val
* var203
/* : Array[Object] */;
4434 long var204
/* : Int */;
4435 val
* var205
/* : NativeArray[Object] */;
4436 val
* var206
/* : String */;
4437 val
* var207
/* : Array[Object] */;
4438 long var208
/* : Int */;
4439 val
* var_209
/* var : Array[Object] */;
4440 static val
* varonce210
;
4441 val
* var211
/* : String */;
4442 char* var212
/* : NativeString */;
4443 long var213
/* : Int */;
4444 val
* var214
/* : String */;
4445 val
* var215
/* : String */;
4446 static val
* varonce216
;
4447 val
* var217
/* : String */;
4448 char* var218
/* : NativeString */;
4449 long var219
/* : Int */;
4450 val
* var220
/* : String */;
4451 val
* var221
/* : AbstractCompiler */;
4452 val
* var222
/* : MModule */;
4453 val
* var223
/* : String */;
4454 static val
* varonce224
;
4455 val
* var225
/* : String */;
4456 char* var226
/* : NativeString */;
4457 long var227
/* : Int */;
4458 val
* var228
/* : String */;
4459 val
* var229
/* : String */;
4460 static val
* varonce230
;
4461 val
* var231
/* : String */;
4462 char* var232
/* : NativeString */;
4463 long var233
/* : Int */;
4464 val
* var234
/* : String */;
4465 val
* var235
/* : String */;
4466 static val
* varonce236
;
4467 val
* var237
/* : String */;
4468 char* var238
/* : NativeString */;
4469 long var239
/* : Int */;
4470 val
* var240
/* : String */;
4471 val
* var241
/* : String */;
4472 static val
* varonce242
;
4473 val
* var243
/* : String */;
4474 char* var244
/* : NativeString */;
4475 long var245
/* : Int */;
4476 val
* var246
/* : String */;
4477 val
* var247
/* : String */;
4478 val
* var248
/* : Template */;
4479 static val
* varonce249
;
4480 val
* var250
/* : String */;
4481 char* var251
/* : NativeString */;
4482 long var252
/* : Int */;
4483 val
* var253
/* : String */;
4484 static val
* varonce254
;
4485 val
* var255
/* : String */;
4486 char* var256
/* : NativeString */;
4487 long var257
/* : Int */;
4488 val
* var258
/* : String */;
4489 val
* var259
/* : Array[Object] */;
4490 long var260
/* : Int */;
4491 val
* var261
/* : NativeArray[Object] */;
4492 val
* var262
/* : String */;
4493 val
* var263
/* : Template */;
4494 static val
* varonce264
;
4495 val
* var265
/* : String */;
4496 char* var266
/* : NativeString */;
4497 long var267
/* : Int */;
4498 val
* var268
/* : String */;
4499 val
* var269
/* : String */;
4500 static val
* varonce270
;
4501 val
* var271
/* : String */;
4502 char* var272
/* : NativeString */;
4503 long var273
/* : Int */;
4504 val
* var274
/* : String */;
4505 val
* var275
/* : AbstractCompiler */;
4506 val
* var276
/* : MModule */;
4507 val
* var277
/* : String */;
4508 static val
* varonce278
;
4509 val
* var279
/* : String */;
4510 char* var280
/* : NativeString */;
4511 long var281
/* : Int */;
4512 val
* var282
/* : String */;
4513 val
* var283
/* : String */;
4514 static val
* varonce284
;
4515 val
* var285
/* : String */;
4516 char* var286
/* : NativeString */;
4517 long var287
/* : Int */;
4518 val
* var288
/* : String */;
4519 val
* var289
/* : Array[Object] */;
4520 long var290
/* : Int */;
4521 val
* var291
/* : NativeArray[Object] */;
4522 val
* var292
/* : String */;
4523 val
* var293
/* : AbstractCompiler */;
4524 val
* var294
/* : AbstractCompilerVisitor */;
4525 val
* var295
/* : nullable Frame */;
4526 val
* var296
/* : Array[Object] */;
4527 long var297
/* : Int */;
4528 val
* var_298
/* var : Array[Object] */;
4529 static val
* varonce299
;
4530 val
* var300
/* : String */;
4531 char* var301
/* : NativeString */;
4532 long var302
/* : Int */;
4533 val
* var303
/* : String */;
4534 val
* var304
/* : String */;
4535 static val
* varonce305
;
4536 val
* var306
/* : String */;
4537 char* var307
/* : NativeString */;
4538 long var308
/* : Int */;
4539 val
* var309
/* : String */;
4540 val
* var310
/* : AbstractCompiler */;
4541 val
* var311
/* : MModule */;
4542 val
* var312
/* : String */;
4543 static val
* varonce313
;
4544 val
* var314
/* : String */;
4545 char* var315
/* : NativeString */;
4546 long var316
/* : Int */;
4547 val
* var317
/* : String */;
4548 val
* var318
/* : String */;
4549 static val
* varonce319
;
4550 val
* var320
/* : String */;
4551 char* var321
/* : NativeString */;
4552 long var322
/* : Int */;
4553 val
* var323
/* : String */;
4554 val
* var324
/* : String */;
4555 static val
* varonce325
;
4556 val
* var326
/* : String */;
4557 char* var327
/* : NativeString */;
4558 long var328
/* : Int */;
4559 val
* var329
/* : String */;
4560 val
* var330
/* : String */;
4561 static val
* varonce331
;
4562 val
* var332
/* : String */;
4563 char* var333
/* : NativeString */;
4564 long var334
/* : Int */;
4565 val
* var335
/* : String */;
4566 val
* var336
/* : String */;
4567 static val
* varonce337
;
4568 val
* var338
/* : String */;
4569 char* var339
/* : NativeString */;
4570 long var340
/* : Int */;
4571 val
* var341
/* : String */;
4572 static val
* varonce342
;
4573 val
* var343
/* : String */;
4574 char* var344
/* : NativeString */;
4575 long var345
/* : Int */;
4576 val
* var346
/* : String */;
4577 static val
* varonce347
;
4578 val
* var348
/* : String */;
4579 char* var349
/* : NativeString */;
4580 long var350
/* : Int */;
4581 val
* var351
/* : String */;
4582 val
* var352
/* : Array[Object] */;
4583 long var353
/* : Int */;
4584 val
* var354
/* : NativeArray[Object] */;
4585 val
* var355
/* : String */;
4586 static val
* varonce356
;
4587 val
* var357
/* : String */;
4588 char* var358
/* : NativeString */;
4589 long var359
/* : Int */;
4590 val
* var360
/* : String */;
4591 val
* var361
/* : Array[Object] */;
4592 long var362
/* : Int */;
4593 val
* var363
/* : NativeArray[Object] */;
4594 val
* var364
/* : String */;
4595 static val
* varonce365
;
4596 val
* var366
/* : String */;
4597 char* var367
/* : NativeString */;
4598 long var368
/* : Int */;
4599 val
* var369
/* : String */;
4600 val
* var370
/* : RuntimeVariable */;
4601 static val
* varonce371
;
4602 val
* var372
/* : String */;
4603 char* var373
/* : NativeString */;
4604 long var374
/* : Int */;
4605 val
* var375
/* : String */;
4606 val
* var376
/* : RuntimeVariable */;
4607 val
* var_check
/* var check: RuntimeVariable */;
4608 static val
* varonce377
;
4609 val
* var378
/* : String */;
4610 char* var379
/* : NativeString */;
4611 long var380
/* : Int */;
4612 val
* var381
/* : String */;
4613 static val
* varonce382
;
4614 val
* var383
/* : String */;
4615 char* var384
/* : NativeString */;
4616 long var385
/* : Int */;
4617 val
* var386
/* : String */;
4618 val
* var387
/* : Array[Object] */;
4619 long var388
/* : Int */;
4620 val
* var389
/* : NativeArray[Object] */;
4621 val
* var390
/* : String */;
4622 static val
* varonce391
;
4623 val
* var392
/* : String */;
4624 char* var393
/* : NativeString */;
4625 long var394
/* : Int */;
4626 val
* var395
/* : String */;
4627 static val
* varonce396
;
4628 val
* var397
/* : String */;
4629 char* var398
/* : NativeString */;
4630 long var399
/* : Int */;
4631 val
* var400
/* : String */;
4632 val
* var401
/* : RuntimeVariable */;
4633 static val
* varonce402
;
4634 val
* var403
/* : String */;
4635 char* var404
/* : NativeString */;
4636 long var405
/* : Int */;
4637 val
* var406
/* : String */;
4638 val
* var407
/* : MType */;
4639 short int var408
/* : Bool */;
4640 val
* var409
/* : Template */;
4641 static val
* varonce410
;
4642 val
* var411
/* : String */;
4643 char* var412
/* : NativeString */;
4644 long var413
/* : Int */;
4645 val
* var414
/* : String */;
4646 val
* var415
/* : String */;
4647 static val
* varonce416
;
4648 val
* var417
/* : String */;
4649 char* var418
/* : NativeString */;
4650 long var419
/* : Int */;
4651 val
* var420
/* : String */;
4652 val
* var421
/* : String */;
4653 static val
* varonce422
;
4654 val
* var423
/* : String */;
4655 char* var424
/* : NativeString */;
4656 long var425
/* : Int */;
4657 val
* var426
/* : String */;
4658 val
* var427
/* : String */;
4659 static val
* varonce428
;
4660 val
* var429
/* : String */;
4661 char* var430
/* : NativeString */;
4662 long var431
/* : Int */;
4663 val
* var432
/* : String */;
4664 val
* var433
/* : Array[Object] */;
4665 long var434
/* : Int */;
4666 val
* var435
/* : NativeArray[Object] */;
4667 val
* var436
/* : String */;
4668 val
* var437
/* : MType */;
4669 short int var438
/* : Bool */;
4670 val
* var439
/* : Template */;
4671 static val
* varonce440
;
4672 val
* var441
/* : String */;
4673 char* var442
/* : NativeString */;
4674 long var443
/* : Int */;
4675 val
* var444
/* : String */;
4676 val
* var445
/* : String */;
4677 static val
* varonce446
;
4678 val
* var447
/* : String */;
4679 char* var448
/* : NativeString */;
4680 long var449
/* : Int */;
4681 val
* var450
/* : String */;
4682 val
* var451
/* : String */;
4683 static val
* varonce452
;
4684 val
* var453
/* : String */;
4685 char* var454
/* : NativeString */;
4686 long var455
/* : Int */;
4687 val
* var456
/* : String */;
4688 val
* var457
/* : String */;
4689 static val
* varonce458
;
4690 val
* var459
/* : String */;
4691 char* var460
/* : NativeString */;
4692 long var461
/* : Int */;
4693 val
* var462
/* : String */;
4694 val
* var463
/* : Array[Object] */;
4695 long var464
/* : Int */;
4696 val
* var465
/* : NativeArray[Object] */;
4697 val
* var466
/* : String */;
4700 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCast__from
]))(self
) /* from on <self:MExplicitCast>*/;
4702 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCast__to
]))(self
) /* to on <self:MExplicitCast>*/;
4704 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
4706 ((void (*)(val
*, long))(var2
->class->vft
[COLOR_array__Array__with_capacity
]))(var2
, var3
) /* with_capacity on <var2:Array[Object]>*/;
4713 var7
= string__NativeString__to_s_with_length(var5
, var6
);
4717 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var4
) /* add on <var_:Array[Object]>*/;
4718 var8
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
4719 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var8
) /* mainmodule on <var8:AbstractCompiler>*/;
4720 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_mmodule__MModule__name
]))(var9
) /* name on <var9:MModule>*/;
4721 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var10
) /* add on <var_:Array[Object]>*/;
4727 var15
= string__NativeString__to_s_with_length(var13
, var14
);
4731 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var12
) /* add on <var_:Array[Object]>*/;
4732 var16
= ((val
* (*)(val
*))(var_from
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_from
) /* mangled_cname on <var_from:MType>*/;
4733 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var16
) /* add on <var_:Array[Object]>*/;
4739 var21
= string__NativeString__to_s_with_length(var19
, var20
);
4743 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var18
) /* add on <var_:Array[Object]>*/;
4744 var22
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_to
) /* mangled_cname on <var_to:MType>*/;
4745 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var22
) /* add on <var_:Array[Object]>*/;
4751 var27
= string__NativeString__to_s_with_length(var25
, var26
);
4755 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var24
) /* add on <var_:Array[Object]>*/;
4756 var28
= ((val
* (*)(val
*))(var_from
->class->vft
[COLOR_nitni_base__MType__cname_blind
]))(var_from
) /* cname_blind on <var_from:MType>*/;
4757 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var28
) /* add on <var_:Array[Object]>*/;
4763 var33
= string__NativeString__to_s_with_length(var31
, var32
);
4767 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var30
) /* add on <var_:Array[Object]>*/;
4768 var34
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
4769 var_full_friendly_csignature
= var34
;
4770 var35
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_decl
]))(var_ccu
) /* header_decl on <var_ccu:CCompilationUnit>*/;
4776 var40
= string__NativeString__to_s_with_length(var38
, var39
);
4785 var45
= string__NativeString__to_s_with_length(var43
, var44
);
4789 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
4790 { /* var46 = array_instance Array[Object] */
4792 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
4793 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var37
;
4794 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var_full_friendly_csignature
;
4795 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var42
;
4796 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
4798 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
4799 ((void (*)(val
*, val
*))(var35
->class->vft
[COLOR_template__Template__add
]))(var35
, var49
) /* add on <var35:Template>*/;
4800 var50
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_decl
]))(var_ccu
) /* header_decl on <var_ccu:CCompilationUnit>*/;
4806 var55
= string__NativeString__to_s_with_length(var53
, var54
);
4810 var56
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCast__check_cname
]))(self
) /* check_cname on <self:MExplicitCast>*/;
4816 var61
= string__NativeString__to_s_with_length(var59
, var60
);
4820 var62
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
4821 var63
= ((val
* (*)(val
*))(var62
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var62
) /* mainmodule on <var62:AbstractCompiler>*/;
4822 var64
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_mmodule__MModule__name
]))(var63
) /* name on <var63:MModule>*/;
4828 var69
= string__NativeString__to_s_with_length(var67
, var68
);
4832 var70
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCast__check_cname
]))(self
) /* check_cname on <self:MExplicitCast>*/;
4838 var75
= string__NativeString__to_s_with_length(var73
, var74
);
4842 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
4843 { /* var76 = array_instance Array[Object] */
4845 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
4846 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var52
;
4847 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var56
;
4848 ((struct instance_array__NativeArray
*)var78
)->values
[2] = (val
*) var58
;
4849 ((struct instance_array__NativeArray
*)var78
)->values
[3] = (val
*) var64
;
4850 ((struct instance_array__NativeArray
*)var78
)->values
[4] = (val
*) var66
;
4851 ((struct instance_array__NativeArray
*)var78
)->values
[5] = (val
*) var70
;
4852 ((struct instance_array__NativeArray
*)var78
)->values
[6] = (val
*) var72
;
4853 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
4855 var79
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
4856 ((void (*)(val
*, val
*))(var50
->class->vft
[COLOR_template__Template__add
]))(var50
, var79
) /* add on <var50:Template>*/;
4857 var80
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
4858 var81
= ((val
* (*)(val
*))(var80
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(var80
) /* new_visitor on <var80:AbstractCompiler>*/;
4859 var_nitni_visitor
= var81
;
4860 var82
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(var_v
) /* frame on <var_v:AbstractCompilerVisitor>*/;
4861 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d
]))(var_nitni_visitor
, var82
) /* frame= on <var_nitni_visitor:AbstractCompilerVisitor>*/;
4862 var83
= NEW_array__Array(&type_array__Arraykernel__Object
);
4864 ((void (*)(val
*, long))(var83
->class->vft
[COLOR_array__Array__with_capacity
]))(var83
, var84
) /* with_capacity on <var83:Array[Object]>*/;
4871 var90
= string__NativeString__to_s_with_length(var88
, var89
);
4875 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var87
) /* add on <var_85:Array[Object]>*/;
4876 var91
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
4877 var92
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var91
) /* mainmodule on <var91:AbstractCompiler>*/;
4878 var93
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_mmodule__MModule__name
]))(var92
) /* name on <var92:MModule>*/;
4879 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var93
) /* add on <var_85:Array[Object]>*/;
4885 var98
= string__NativeString__to_s_with_length(var96
, var97
);
4889 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var95
) /* add on <var_85:Array[Object]>*/;
4890 var99
= ((val
* (*)(val
*))(var_from
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_from
) /* mangled_cname on <var_from:MType>*/;
4891 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var99
) /* add on <var_85:Array[Object]>*/;
4893 var101
= varonce100
;
4897 var104
= string__NativeString__to_s_with_length(var102
, var103
);
4899 varonce100
= var101
;
4901 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var101
) /* add on <var_85:Array[Object]>*/;
4902 var105
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_to
) /* mangled_cname on <var_to:MType>*/;
4903 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var105
) /* add on <var_85:Array[Object]>*/;
4905 var107
= varonce106
;
4909 var110
= string__NativeString__to_s_with_length(var108
, var109
);
4911 varonce106
= var107
;
4913 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var107
) /* add on <var_85:Array[Object]>*/;
4914 var111
= ((val
* (*)(val
*))(var_from
->class->vft
[COLOR_nitni_base__MType__cname_blind
]))(var_from
) /* cname_blind on <var_from:MType>*/;
4915 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var111
) /* add on <var_85:Array[Object]>*/;
4917 var113
= varonce112
;
4921 var116
= string__NativeString__to_s_with_length(var114
, var115
);
4923 varonce112
= var113
;
4925 ((void (*)(val
*, val
*))(var_85
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_85
, var113
) /* add on <var_85:Array[Object]>*/;
4926 var117
= ((val
* (*)(val
*))(var_85
->class->vft
[COLOR_string__Object__to_s
]))(var_85
) /* to_s on <var_85:Array[Object]>*/;
4927 var_full_internal_csignature
= var117
;
4929 var119
= varonce118
;
4931 var120
= "/* nitni check for ";
4933 var122
= string__NativeString__to_s_with_length(var120
, var121
);
4935 varonce118
= var119
;
4938 var124
= varonce123
;
4942 var127
= string__NativeString__to_s_with_length(var125
, var126
);
4944 varonce123
= var124
;
4947 var129
= varonce128
;
4951 var132
= string__NativeString__to_s_with_length(var130
, var131
);
4953 varonce128
= var129
;
4955 var133
= NEW_array__Array(&type_array__Arraykernel__Object
);
4956 { /* var133 = array_instance Array[Object] */
4958 var135
= NEW_array__NativeArray(var134
, &type_array__NativeArraykernel__Object
);
4959 ((struct instance_array__NativeArray
*)var135
)->values
[0] = (val
*) var119
;
4960 ((struct instance_array__NativeArray
*)var135
)->values
[1] = (val
*) var_from
;
4961 ((struct instance_array__NativeArray
*)var135
)->values
[2] = (val
*) var124
;
4962 ((struct instance_array__NativeArray
*)var135
)->values
[3] = (val
*) var_to
;
4963 ((struct instance_array__NativeArray
*)var135
)->values
[4] = (val
*) var129
;
4964 ((void (*)(val
*, val
*, long))(var133
->class->vft
[COLOR_array__Array__with_native
]))(var133
, var135
, var134
) /* with_native on <var133:Array[Object]>*/;
4966 var136
= ((val
* (*)(val
*))(var133
->class->vft
[COLOR_string__Object__to_s
]))(var133
) /* to_s on <var133:Array[Object]>*/;
4967 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_nitni_visitor
, var136
) /* add_decl on <var_nitni_visitor:AbstractCompilerVisitor>*/;
4969 var138
= varonce137
;
4973 var141
= string__NativeString__to_s_with_length(var139
, var140
);
4975 varonce137
= var138
;
4977 var142
= NEW_array__Array(&type_array__Arraykernel__Object
);
4978 { /* var142 = array_instance Array[Object] */
4980 var144
= NEW_array__NativeArray(var143
, &type_array__NativeArraykernel__Object
);
4981 ((struct instance_array__NativeArray
*)var144
)->values
[0] = (val
*) var_full_internal_csignature
;
4982 ((struct instance_array__NativeArray
*)var144
)->values
[1] = (val
*) var138
;
4983 ((void (*)(val
*, val
*, long))(var142
->class->vft
[COLOR_array__Array__with_native
]))(var142
, var144
, var143
) /* with_native on <var142:Array[Object]>*/;
4985 var145
= ((val
* (*)(val
*))(var142
->class->vft
[COLOR_string__Object__to_s
]))(var142
) /* to_s on <var142:Array[Object]>*/;
4986 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_nitni_visitor
, var145
) /* add_decl on <var_nitni_visitor:AbstractCompilerVisitor>*/;
4987 var146
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
4989 var148
= varonce147
;
4991 var149
= "from->value";
4993 var151
= string__NativeString__to_s_with_length(var149
, var150
);
4995 varonce147
= var148
;
4997 ((void (*)(val
*, val
*, val
*, val
*))(var146
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__init
]))(var146
, var148
, var_from
, var_from
) /* init on <var146:RuntimeVariable>*/;
4998 var_from_var
= var146
;
5000 var153
= varonce152
;
5004 var156
= string__NativeString__to_s_with_length(var154
, var155
);
5006 varonce152
= var153
;
5008 var157
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__type_test
]))(var_nitni_visitor
, var_from_var
, var_to
, var153
) /* type_test on <var_nitni_visitor:AbstractCompilerVisitor>*/;
5009 var_recv_var
= var157
;
5011 var159
= varonce158
;
5015 var162
= string__NativeString__to_s_with_length(var160
, var161
);
5017 varonce158
= var159
;
5020 var164
= varonce163
;
5024 var167
= string__NativeString__to_s_with_length(var165
, var166
);
5026 varonce163
= var164
;
5028 var168
= NEW_array__Array(&type_array__Arraykernel__Object
);
5029 { /* var168 = array_instance Array[Object] */
5031 var170
= NEW_array__NativeArray(var169
, &type_array__NativeArraykernel__Object
);
5032 ((struct instance_array__NativeArray
*)var170
)->values
[0] = (val
*) var159
;
5033 ((struct instance_array__NativeArray
*)var170
)->values
[1] = (val
*) var_recv_var
;
5034 ((struct instance_array__NativeArray
*)var170
)->values
[2] = (val
*) var164
;
5035 ((void (*)(val
*, val
*, long))(var168
->class->vft
[COLOR_array__Array__with_native
]))(var168
, var170
, var169
) /* with_native on <var168:Array[Object]>*/;
5037 var171
= ((val
* (*)(val
*))(var168
->class->vft
[COLOR_string__Object__to_s
]))(var168
) /* to_s on <var168:Array[Object]>*/;
5038 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var171
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
5040 var173
= varonce172
;
5044 var176
= string__NativeString__to_s_with_length(var174
, var175
);
5046 varonce172
= var173
;
5048 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var173
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
5049 var177
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_model__MType__as_nullable
]))(var_to
) /* as_nullable on <var_to:MType>*/;
5050 var178
= ((short int (*)(val
*, val
*))(var_from
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_from
, var177
) /* == on <var_from:MType>*/;
5052 var179
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_decl
]))(var_ccu
) /* header_decl on <var_ccu:CCompilationUnit>*/;
5054 var181
= varonce180
;
5056 var182
= "#define ";
5058 var184
= string__NativeString__to_s_with_length(var182
, var183
);
5060 varonce180
= var181
;
5062 var185
= ((val
* (*)(val
*))(var_from
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_from
) /* mangled_cname on <var_from:MType>*/;
5064 var187
= varonce186
;
5066 var188
= "_is_null !";
5068 var190
= string__NativeString__to_s_with_length(var188
, var189
);
5070 varonce186
= var187
;
5072 var191
= ((val
* (*)(val
*))(var_from
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_from
) /* mangled_cname on <var_from:MType>*/;
5074 var193
= varonce192
;
5078 var196
= string__NativeString__to_s_with_length(var194
, var195
);
5080 varonce192
= var193
;
5082 var197
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_to
) /* mangled_cname on <var_to:MType>*/;
5084 var199
= varonce198
;
5088 var202
= string__NativeString__to_s_with_length(var200
, var201
);
5090 varonce198
= var199
;
5092 var203
= NEW_array__Array(&type_array__Arraykernel__Object
);
5093 { /* var203 = array_instance Array[Object] */
5095 var205
= NEW_array__NativeArray(var204
, &type_array__NativeArraykernel__Object
);
5096 ((struct instance_array__NativeArray
*)var205
)->values
[0] = (val
*) var181
;
5097 ((struct instance_array__NativeArray
*)var205
)->values
[1] = (val
*) var185
;
5098 ((struct instance_array__NativeArray
*)var205
)->values
[2] = (val
*) var187
;
5099 ((struct instance_array__NativeArray
*)var205
)->values
[3] = (val
*) var191
;
5100 ((struct instance_array__NativeArray
*)var205
)->values
[4] = (val
*) var193
;
5101 ((struct instance_array__NativeArray
*)var205
)->values
[5] = (val
*) var197
;
5102 ((struct instance_array__NativeArray
*)var205
)->values
[6] = (val
*) var199
;
5103 ((void (*)(val
*, val
*, long))(var203
->class->vft
[COLOR_array__Array__with_native
]))(var203
, var205
, var204
) /* with_native on <var203:Array[Object]>*/;
5105 var206
= ((val
* (*)(val
*))(var203
->class->vft
[COLOR_string__Object__to_s
]))(var203
) /* to_s on <var203:Array[Object]>*/;
5106 ((void (*)(val
*, val
*))(var179
->class->vft
[COLOR_template__Template__add
]))(var179
, var206
) /* add on <var179:Template>*/;
5109 var207
= NEW_array__Array(&type_array__Arraykernel__Object
);
5111 ((void (*)(val
*, long))(var207
->class->vft
[COLOR_array__Array__with_capacity
]))(var207
, var208
) /* with_capacity on <var207:Array[Object]>*/;
5114 var211
= varonce210
;
5118 var214
= string__NativeString__to_s_with_length(var212
, var213
);
5120 varonce210
= var211
;
5122 ((void (*)(val
*, val
*))(var_209
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_209
, var211
) /* add on <var_209:Array[Object]>*/;
5123 var215
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_nitni_base__MType__cname_blind
]))(var_to
) /* cname_blind on <var_to:MType>*/;
5124 ((void (*)(val
*, val
*))(var_209
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_209
, var215
) /* add on <var_209:Array[Object]>*/;
5126 var217
= varonce216
;
5130 var220
= string__NativeString__to_s_with_length(var218
, var219
);
5132 varonce216
= var217
;
5134 ((void (*)(val
*, val
*))(var_209
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_209
, var217
) /* add on <var_209:Array[Object]>*/;
5135 var221
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
5136 var222
= ((val
* (*)(val
*))(var221
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var221
) /* mainmodule on <var221:AbstractCompiler>*/;
5137 var223
= ((val
* (*)(val
*))(var222
->class->vft
[COLOR_mmodule__MModule__name
]))(var222
) /* name on <var222:MModule>*/;
5138 ((void (*)(val
*, val
*))(var_209
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_209
, var223
) /* add on <var_209:Array[Object]>*/;
5140 var225
= varonce224
;
5144 var228
= string__NativeString__to_s_with_length(var226
, var227
);
5146 varonce224
= var225
;
5148 ((void (*)(val
*, val
*))(var_209
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_209
, var225
) /* add on <var_209:Array[Object]>*/;
5149 var229
= ((val
* (*)(val
*))(var_from
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_from
) /* mangled_cname on <var_from:MType>*/;
5150 ((void (*)(val
*, val
*))(var_209
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_209
, var229
) /* add on <var_209:Array[Object]>*/;
5152 var231
= varonce230
;
5156 var234
= string__NativeString__to_s_with_length(var232
, var233
);
5158 varonce230
= var231
;
5160 ((void (*)(val
*, val
*))(var_209
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_209
, var231
) /* add on <var_209:Array[Object]>*/;
5161 var235
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_to
) /* mangled_cname on <var_to:MType>*/;
5162 ((void (*)(val
*, val
*))(var_209
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_209
, var235
) /* add on <var_209:Array[Object]>*/;
5164 var237
= varonce236
;
5168 var240
= string__NativeString__to_s_with_length(var238
, var239
);
5170 varonce236
= var237
;
5172 ((void (*)(val
*, val
*))(var_209
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_209
, var237
) /* add on <var_209:Array[Object]>*/;
5173 var241
= ((val
* (*)(val
*))(var_from
->class->vft
[COLOR_nitni_base__MType__cname_blind
]))(var_from
) /* cname_blind on <var_from:MType>*/;
5174 ((void (*)(val
*, val
*))(var_209
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_209
, var241
) /* add on <var_209:Array[Object]>*/;
5176 var243
= varonce242
;
5180 var246
= string__NativeString__to_s_with_length(var244
, var245
);
5182 varonce242
= var243
;
5184 ((void (*)(val
*, val
*))(var_209
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_209
, var243
) /* add on <var_209:Array[Object]>*/;
5185 var247
= ((val
* (*)(val
*))(var_209
->class->vft
[COLOR_string__Object__to_s
]))(var_209
) /* to_s on <var_209:Array[Object]>*/;
5186 var_full_friendly_csignature
= var247
;
5187 var248
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_decl
]))(var_ccu
) /* header_decl on <var_ccu:CCompilationUnit>*/;
5189 var250
= varonce249
;
5193 var253
= string__NativeString__to_s_with_length(var251
, var252
);
5195 varonce249
= var250
;
5198 var255
= varonce254
;
5202 var258
= string__NativeString__to_s_with_length(var256
, var257
);
5204 varonce254
= var255
;
5206 var259
= NEW_array__Array(&type_array__Arraykernel__Object
);
5207 { /* var259 = array_instance Array[Object] */
5209 var261
= NEW_array__NativeArray(var260
, &type_array__NativeArraykernel__Object
);
5210 ((struct instance_array__NativeArray
*)var261
)->values
[0] = (val
*) var250
;
5211 ((struct instance_array__NativeArray
*)var261
)->values
[1] = (val
*) var_full_friendly_csignature
;
5212 ((struct instance_array__NativeArray
*)var261
)->values
[2] = (val
*) var255
;
5213 ((void (*)(val
*, val
*, long))(var259
->class->vft
[COLOR_array__Array__with_native
]))(var259
, var261
, var260
) /* with_native on <var259:Array[Object]>*/;
5215 var262
= ((val
* (*)(val
*))(var259
->class->vft
[COLOR_string__Object__to_s
]))(var259
) /* to_s on <var259:Array[Object]>*/;
5216 ((void (*)(val
*, val
*))(var248
->class->vft
[COLOR_template__Template__add
]))(var248
, var262
) /* add on <var248:Template>*/;
5217 var263
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_decl
]))(var_ccu
) /* header_decl on <var_ccu:CCompilationUnit>*/;
5219 var265
= varonce264
;
5221 var266
= "#define ";
5223 var268
= string__NativeString__to_s_with_length(var266
, var267
);
5225 varonce264
= var265
;
5227 var269
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCast__cast_cname
]))(self
) /* cast_cname on <self:MExplicitCast>*/;
5229 var271
= varonce270
;
5233 var274
= string__NativeString__to_s_with_length(var272
, var273
);
5235 varonce270
= var271
;
5237 var275
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
5238 var276
= ((val
* (*)(val
*))(var275
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var275
) /* mainmodule on <var275:AbstractCompiler>*/;
5239 var277
= ((val
* (*)(val
*))(var276
->class->vft
[COLOR_mmodule__MModule__name
]))(var276
) /* name on <var276:MModule>*/;
5241 var279
= varonce278
;
5245 var282
= string__NativeString__to_s_with_length(var280
, var281
);
5247 varonce278
= var279
;
5249 var283
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_nitni_callbacks__MExplicitCast__cast_cname
]))(self
) /* cast_cname on <self:MExplicitCast>*/;
5251 var285
= varonce284
;
5255 var288
= string__NativeString__to_s_with_length(var286
, var287
);
5257 varonce284
= var285
;
5259 var289
= NEW_array__Array(&type_array__Arraykernel__Object
);
5260 { /* var289 = array_instance Array[Object] */
5262 var291
= NEW_array__NativeArray(var290
, &type_array__NativeArraykernel__Object
);
5263 ((struct instance_array__NativeArray
*)var291
)->values
[0] = (val
*) var265
;
5264 ((struct instance_array__NativeArray
*)var291
)->values
[1] = (val
*) var269
;
5265 ((struct instance_array__NativeArray
*)var291
)->values
[2] = (val
*) var271
;
5266 ((struct instance_array__NativeArray
*)var291
)->values
[3] = (val
*) var277
;
5267 ((struct instance_array__NativeArray
*)var291
)->values
[4] = (val
*) var279
;
5268 ((struct instance_array__NativeArray
*)var291
)->values
[5] = (val
*) var283
;
5269 ((struct instance_array__NativeArray
*)var291
)->values
[6] = (val
*) var285
;
5270 ((void (*)(val
*, val
*, long))(var289
->class->vft
[COLOR_array__Array__with_native
]))(var289
, var291
, var290
) /* with_native on <var289:Array[Object]>*/;
5272 var292
= ((val
* (*)(val
*))(var289
->class->vft
[COLOR_string__Object__to_s
]))(var289
) /* to_s on <var289:Array[Object]>*/;
5273 ((void (*)(val
*, val
*))(var263
->class->vft
[COLOR_template__Template__add
]))(var263
, var292
) /* add on <var263:Template>*/;
5274 var293
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
5275 var294
= ((val
* (*)(val
*))(var293
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(var293
) /* new_visitor on <var293:AbstractCompiler>*/;
5276 var_nitni_visitor
= var294
;
5277 var295
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(var_v
) /* frame on <var_v:AbstractCompilerVisitor>*/;
5278 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d
]))(var_nitni_visitor
, var295
) /* frame= on <var_nitni_visitor:AbstractCompilerVisitor>*/;
5279 var296
= NEW_array__Array(&type_array__Arraykernel__Object
);
5281 ((void (*)(val
*, long))(var296
->class->vft
[COLOR_array__Array__with_capacity
]))(var296
, var297
) /* with_capacity on <var296:Array[Object]>*/;
5284 var300
= varonce299
;
5288 var303
= string__NativeString__to_s_with_length(var301
, var302
);
5290 varonce299
= var300
;
5292 ((void (*)(val
*, val
*))(var_298
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_298
, var300
) /* add on <var_298:Array[Object]>*/;
5293 var304
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_nitni_base__MType__cname_blind
]))(var_to
) /* cname_blind on <var_to:MType>*/;
5294 ((void (*)(val
*, val
*))(var_298
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_298
, var304
) /* add on <var_298:Array[Object]>*/;
5296 var306
= varonce305
;
5300 var309
= string__NativeString__to_s_with_length(var307
, var308
);
5302 varonce305
= var306
;
5304 ((void (*)(val
*, val
*))(var_298
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_298
, var306
) /* add on <var_298:Array[Object]>*/;
5305 var310
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(var_v
) /* compiler on <var_v:AbstractCompilerVisitor>*/;
5306 var311
= ((val
* (*)(val
*))(var310
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__mainmodule
]))(var310
) /* mainmodule on <var310:AbstractCompiler>*/;
5307 var312
= ((val
* (*)(val
*))(var311
->class->vft
[COLOR_mmodule__MModule__name
]))(var311
) /* name on <var311:MModule>*/;
5308 ((void (*)(val
*, val
*))(var_298
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_298
, var312
) /* add on <var_298:Array[Object]>*/;
5310 var314
= varonce313
;
5314 var317
= string__NativeString__to_s_with_length(var315
, var316
);
5316 varonce313
= var314
;
5318 ((void (*)(val
*, val
*))(var_298
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_298
, var314
) /* add on <var_298:Array[Object]>*/;
5319 var318
= ((val
* (*)(val
*))(var_from
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_from
) /* mangled_cname on <var_from:MType>*/;
5320 ((void (*)(val
*, val
*))(var_298
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_298
, var318
) /* add on <var_298:Array[Object]>*/;
5322 var320
= varonce319
;
5326 var323
= string__NativeString__to_s_with_length(var321
, var322
);
5328 varonce319
= var320
;
5330 ((void (*)(val
*, val
*))(var_298
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_298
, var320
) /* add on <var_298:Array[Object]>*/;
5331 var324
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_to
) /* mangled_cname on <var_to:MType>*/;
5332 ((void (*)(val
*, val
*))(var_298
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_298
, var324
) /* add on <var_298:Array[Object]>*/;
5334 var326
= varonce325
;
5338 var329
= string__NativeString__to_s_with_length(var327
, var328
);
5340 varonce325
= var326
;
5342 ((void (*)(val
*, val
*))(var_298
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_298
, var326
) /* add on <var_298:Array[Object]>*/;
5343 var330
= ((val
* (*)(val
*))(var_from
->class->vft
[COLOR_nitni_base__MType__cname_blind
]))(var_from
) /* cname_blind on <var_from:MType>*/;
5344 ((void (*)(val
*, val
*))(var_298
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_298
, var330
) /* add on <var_298:Array[Object]>*/;
5346 var332
= varonce331
;
5350 var335
= string__NativeString__to_s_with_length(var333
, var334
);
5352 varonce331
= var332
;
5354 ((void (*)(val
*, val
*))(var_298
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_298
, var332
) /* add on <var_298:Array[Object]>*/;
5355 var336
= ((val
* (*)(val
*))(var_298
->class->vft
[COLOR_string__Object__to_s
]))(var_298
) /* to_s on <var_298:Array[Object]>*/;
5356 var_full_internal_csignature
= var336
;
5358 var338
= varonce337
;
5360 var339
= "/* nitni cast for ";
5362 var341
= string__NativeString__to_s_with_length(var339
, var340
);
5364 varonce337
= var338
;
5367 var343
= varonce342
;
5371 var346
= string__NativeString__to_s_with_length(var344
, var345
);
5373 varonce342
= var343
;
5376 var348
= varonce347
;
5380 var351
= string__NativeString__to_s_with_length(var349
, var350
);
5382 varonce347
= var348
;
5384 var352
= NEW_array__Array(&type_array__Arraykernel__Object
);
5385 { /* var352 = array_instance Array[Object] */
5387 var354
= NEW_array__NativeArray(var353
, &type_array__NativeArraykernel__Object
);
5388 ((struct instance_array__NativeArray
*)var354
)->values
[0] = (val
*) var338
;
5389 ((struct instance_array__NativeArray
*)var354
)->values
[1] = (val
*) var_from
;
5390 ((struct instance_array__NativeArray
*)var354
)->values
[2] = (val
*) var343
;
5391 ((struct instance_array__NativeArray
*)var354
)->values
[3] = (val
*) var_to
;
5392 ((struct instance_array__NativeArray
*)var354
)->values
[4] = (val
*) var348
;
5393 ((void (*)(val
*, val
*, long))(var352
->class->vft
[COLOR_array__Array__with_native
]))(var352
, var354
, var353
) /* with_native on <var352:Array[Object]>*/;
5395 var355
= ((val
* (*)(val
*))(var352
->class->vft
[COLOR_string__Object__to_s
]))(var352
) /* to_s on <var352:Array[Object]>*/;
5396 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_nitni_visitor
, var355
) /* add_decl on <var_nitni_visitor:AbstractCompilerVisitor>*/;
5398 var357
= varonce356
;
5402 var360
= string__NativeString__to_s_with_length(var358
, var359
);
5404 varonce356
= var357
;
5406 var361
= NEW_array__Array(&type_array__Arraykernel__Object
);
5407 { /* var361 = array_instance Array[Object] */
5409 var363
= NEW_array__NativeArray(var362
, &type_array__NativeArraykernel__Object
);
5410 ((struct instance_array__NativeArray
*)var363
)->values
[0] = (val
*) var_full_internal_csignature
;
5411 ((struct instance_array__NativeArray
*)var363
)->values
[1] = (val
*) var357
;
5412 ((void (*)(val
*, val
*, long))(var361
->class->vft
[COLOR_array__Array__with_native
]))(var361
, var363
, var362
) /* with_native on <var361:Array[Object]>*/;
5414 var364
= ((val
* (*)(val
*))(var361
->class->vft
[COLOR_string__Object__to_s
]))(var361
) /* to_s on <var361:Array[Object]>*/;
5415 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_nitni_visitor
, var364
) /* add_decl on <var_nitni_visitor:AbstractCompilerVisitor>*/;
5417 var366
= varonce365
;
5421 var369
= string__NativeString__to_s_with_length(var367
, var368
);
5423 varonce365
= var366
;
5425 var370
= ((val
* (*)(val
*, val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_compiler_ffi__AbstractCompilerVisitor__var_from_c
]))(var_nitni_visitor
, var366
, var_from
) /* var_from_c on <var_nitni_visitor:AbstractCompilerVisitor>*/;
5426 var_from_var
= var370
;
5428 var372
= varonce371
;
5430 var373
= "FFI cast";
5432 var375
= string__NativeString__to_s_with_length(var373
, var374
);
5434 varonce371
= var372
;
5436 var376
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__type_test
]))(var_nitni_visitor
, var_from_var
, var_to
, var372
) /* type_test on <var_nitni_visitor:AbstractCompilerVisitor>*/;
5439 var378
= varonce377
;
5443 var381
= string__NativeString__to_s_with_length(var379
, var380
);
5445 varonce377
= var378
;
5448 var383
= varonce382
;
5452 var386
= string__NativeString__to_s_with_length(var384
, var385
);
5454 varonce382
= var383
;
5456 var387
= NEW_array__Array(&type_array__Arraykernel__Object
);
5457 { /* var387 = array_instance Array[Object] */
5459 var389
= NEW_array__NativeArray(var388
, &type_array__NativeArraykernel__Object
);
5460 ((struct instance_array__NativeArray
*)var389
)->values
[0] = (val
*) var378
;
5461 ((struct instance_array__NativeArray
*)var389
)->values
[1] = (val
*) var_check
;
5462 ((struct instance_array__NativeArray
*)var389
)->values
[2] = (val
*) var383
;
5463 ((void (*)(val
*, val
*, long))(var387
->class->vft
[COLOR_array__Array__with_native
]))(var387
, var389
, var388
) /* with_native on <var387:Array[Object]>*/;
5465 var390
= ((val
* (*)(val
*))(var387
->class->vft
[COLOR_string__Object__to_s
]))(var387
) /* to_s on <var387:Array[Object]>*/;
5466 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var390
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
5468 var392
= varonce391
;
5470 var393
= "FFI cast failed";
5472 var395
= string__NativeString__to_s_with_length(var393
, var394
);
5474 varonce391
= var392
;
5476 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort
]))(var_nitni_visitor
, var392
) /* add_abort on <var_nitni_visitor:AbstractCompilerVisitor>*/;
5478 var397
= varonce396
;
5482 var400
= string__NativeString__to_s_with_length(var398
, var399
);
5484 varonce396
= var397
;
5486 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var397
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
5487 var401
= ((val
* (*)(val
*, val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox
]))(var_nitni_visitor
, var_from_var
, var_to
) /* autobox on <var_nitni_visitor:AbstractCompilerVisitor>*/;
5488 var_recv_var
= var401
;
5489 ((void (*)(val
*, val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_compiler_ffi__AbstractCompilerVisitor__ret_to_c
]))(var_nitni_visitor
, var_recv_var
, var_to
) /* ret_to_c on <var_nitni_visitor:AbstractCompilerVisitor>*/;
5491 var403
= varonce402
;
5495 var406
= string__NativeString__to_s_with_length(var404
, var405
);
5497 varonce402
= var403
;
5499 ((void (*)(val
*, val
*))(var_nitni_visitor
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_nitni_visitor
, var403
) /* add on <var_nitni_visitor:AbstractCompilerVisitor>*/;
5500 var407
= ((val
* (*)(val
*))(var_from
->class->vft
[COLOR_model__MType__as_nullable
]))(var_from
) /* as_nullable on <var_from:MType>*/;
5501 var408
= ((short int (*)(val
*, val
*))(var407
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var407
, var_to
) /* == on <var407:MType>*/;
5503 var409
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_decl
]))(var_ccu
) /* header_decl on <var_ccu:CCompilationUnit>*/;
5505 var411
= varonce410
;
5507 var412
= "#define ";
5509 var414
= string__NativeString__to_s_with_length(var412
, var413
);
5511 varonce410
= var411
;
5513 var415
= ((val
* (*)(val
*))(var_from
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_from
) /* mangled_cname on <var_from:MType>*/;
5515 var417
= varonce416
;
5517 var418
= "_as_nullable ";
5519 var420
= string__NativeString__to_s_with_length(var418
, var419
);
5521 varonce416
= var417
;
5523 var421
= ((val
* (*)(val
*))(var_from
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_from
) /* mangled_cname on <var_from:MType>*/;
5525 var423
= varonce422
;
5529 var426
= string__NativeString__to_s_with_length(var424
, var425
);
5531 varonce422
= var423
;
5533 var427
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_to
) /* mangled_cname on <var_to:MType>*/;
5535 var429
= varonce428
;
5539 var432
= string__NativeString__to_s_with_length(var430
, var431
);
5541 varonce428
= var429
;
5543 var433
= NEW_array__Array(&type_array__Arraykernel__Object
);
5544 { /* var433 = array_instance Array[Object] */
5546 var435
= NEW_array__NativeArray(var434
, &type_array__NativeArraykernel__Object
);
5547 ((struct instance_array__NativeArray
*)var435
)->values
[0] = (val
*) var411
;
5548 ((struct instance_array__NativeArray
*)var435
)->values
[1] = (val
*) var415
;
5549 ((struct instance_array__NativeArray
*)var435
)->values
[2] = (val
*) var417
;
5550 ((struct instance_array__NativeArray
*)var435
)->values
[3] = (val
*) var421
;
5551 ((struct instance_array__NativeArray
*)var435
)->values
[4] = (val
*) var423
;
5552 ((struct instance_array__NativeArray
*)var435
)->values
[5] = (val
*) var427
;
5553 ((struct instance_array__NativeArray
*)var435
)->values
[6] = (val
*) var429
;
5554 ((void (*)(val
*, val
*, long))(var433
->class->vft
[COLOR_array__Array__with_native
]))(var433
, var435
, var434
) /* with_native on <var433:Array[Object]>*/;
5556 var436
= ((val
* (*)(val
*))(var433
->class->vft
[COLOR_string__Object__to_s
]))(var433
) /* to_s on <var433:Array[Object]>*/;
5557 ((void (*)(val
*, val
*))(var409
->class->vft
[COLOR_template__Template__add
]))(var409
, var436
) /* add on <var409:Template>*/;
5560 var437
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_model__MType__as_nullable
]))(var_to
) /* as_nullable on <var_to:MType>*/;
5561 var438
= ((short int (*)(val
*, val
*))(var_from
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_from
, var437
) /* == on <var_from:MType>*/;
5563 var439
= ((val
* (*)(val
*))(var_ccu
->class->vft
[COLOR_c_tools__CCompilationUnit__header_decl
]))(var_ccu
) /* header_decl on <var_ccu:CCompilationUnit>*/;
5565 var441
= varonce440
;
5567 var442
= "#define ";
5569 var444
= string__NativeString__to_s_with_length(var442
, var443
);
5571 varonce440
= var441
;
5573 var445
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_to
) /* mangled_cname on <var_to:MType>*/;
5575 var447
= varonce446
;
5577 var448
= "_as_not_nullable ";
5579 var450
= string__NativeString__to_s_with_length(var448
, var449
);
5581 varonce446
= var447
;
5583 var451
= ((val
* (*)(val
*))(var_from
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_from
) /* mangled_cname on <var_from:MType>*/;
5585 var453
= varonce452
;
5589 var456
= string__NativeString__to_s_with_length(var454
, var455
);
5591 varonce452
= var453
;
5593 var457
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_nitni_base__MType__mangled_cname
]))(var_to
) /* mangled_cname on <var_to:MType>*/;
5595 var459
= varonce458
;
5599 var462
= string__NativeString__to_s_with_length(var460
, var461
);
5601 varonce458
= var459
;
5603 var463
= NEW_array__Array(&type_array__Arraykernel__Object
);
5604 { /* var463 = array_instance Array[Object] */
5606 var465
= NEW_array__NativeArray(var464
, &type_array__NativeArraykernel__Object
);
5607 ((struct instance_array__NativeArray
*)var465
)->values
[0] = (val
*) var441
;
5608 ((struct instance_array__NativeArray
*)var465
)->values
[1] = (val
*) var445
;
5609 ((struct instance_array__NativeArray
*)var465
)->values
[2] = (val
*) var447
;
5610 ((struct instance_array__NativeArray
*)var465
)->values
[3] = (val
*) var451
;
5611 ((struct instance_array__NativeArray
*)var465
)->values
[4] = (val
*) var453
;
5612 ((struct instance_array__NativeArray
*)var465
)->values
[5] = (val
*) var457
;
5613 ((struct instance_array__NativeArray
*)var465
)->values
[6] = (val
*) var459
;
5614 ((void (*)(val
*, val
*, long))(var463
->class->vft
[COLOR_array__Array__with_native
]))(var463
, var465
, var464
) /* with_native on <var463:Array[Object]>*/;
5616 var466
= ((val
* (*)(val
*))(var463
->class->vft
[COLOR_string__Object__to_s
]))(var463
) /* to_s on <var463:Array[Object]>*/;
5617 ((void (*)(val
*, val
*))(var439
->class->vft
[COLOR_template__Template__add
]))(var439
, var466
) /* add on <var439:Template>*/;
5622 /* method compiler_ffi#MExplicitCast#compile_extern_callbacks for (self: Object, AbstractCompilerVisitor, CCompilationUnit) */
5623 void VIRTUAL_compiler_ffi__MExplicitCast__compile_extern_callbacks(val
* self
, val
* p0
, val
* p1
) {
5624 compiler_ffi__MExplicitCast__compile_extern_callbacks(self
, p0
, p1
);