From 1c945faa156b933a528a639ed9ab0f73e7dd819f Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Tue, 5 May 2020 00:01:54 +0300 Subject: [PATCH] cgen: fix _to_Interface_INAME conversion fns generation --- vlib/v/gen/cgen.v | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/vlib/v/gen/cgen.v b/vlib/v/gen/cgen.v index 25d0caaefe..64099f5cf0 100644 --- a/vlib/v/gen/cgen.v +++ b/vlib/v/gen/cgen.v @@ -3422,9 +3422,10 @@ fn (g &Gen) interface_table() string { // i.e. cctype is always just Cat, not Cat_ptr: cctype := g.cc_type(st) // Speaker_Cat_index = 0 + interface_index_name := '_${interface_name}_${cctype}_index' cast_functions.writeln(' -_Interface I_${cctype}_to_Interface(${cctype}* x) { +_Interface I_${cctype}_to_Interface_${interface_name}(${cctype}* x) { return (_Interface) { ._object = (void*) memdup(x, sizeof(${cctype})), ._interface_idx = ${interface_index_name} @@ -3535,7 +3536,7 @@ fn (mut g Gen) array_init(it ast.ArrayInit) { fn (g &Gen) interface_call(typ, interface_type table.Type) { interface_styp := g.cc_type(interface_type) styp := g.cc_type(typ) - g.write('/* $interface_styp */ I_${styp}_to_Interface(') + g.write('/* $interface_styp */ I_${styp}_to_Interface_${interface_styp}(') if !typ.is_ptr() { g.write('&') }