diff --git a/vlib/v/gen/fn.v b/vlib/v/gen/fn.v index 47e906808e..0ca6ab4968 100644 --- a/vlib/v/gen/fn.v +++ b/vlib/v/gen/fn.v @@ -347,7 +347,8 @@ fn (mut g Gen) method_call(node ast.CallExpr) { g.write('${c_name(receiver_type_name)}_name_table[') g.expr(node.left) dot := if node.left_type.is_ptr() { '->' } else { '.' } - g.write('${dot}_interface_idx].${node.name}(') + mname := c_name(node.name) + g.write('${dot}_interface_idx].${mname}(') g.expr(node.left) g.write('${dot}_object') if node.args.len > 0 { diff --git a/vlib/v/tests/interface_test.v b/vlib/v/tests/interface_test.v index 286205b5db..ae9d5fcb21 100644 --- a/vlib/v/tests/interface_test.v +++ b/vlib/v/tests/interface_test.v @@ -177,6 +177,7 @@ fn (f RegTest) register() { } fn handle_reg(r Register) { + r.register() } fn test_register() {