diff --git a/vlib/compiler/struct.v b/vlib/compiler/struct.v index 1428efa29c..c7b4a3b5a9 100644 --- a/vlib/compiler/struct.v +++ b/vlib/compiler/struct.v @@ -166,7 +166,7 @@ fn (p mut Parser) struct_decl() { // } // Check if reserved name field_name_token_idx := p.cur_tok_index() - field_name := if name != 'Option' { p.table.var_cgen_name(p.check_name()) } else { p.check_name() } + field_name := if name != 'Option' && !is_interface { p.table.var_cgen_name(p.check_name()) } else { p.check_name() } /* if !p.first_pass() { p.fgen(strings.repeat(` `, fmt_max_len - field_name.len)) diff --git a/vlib/compiler/tests/interface_test.v b/vlib/compiler/tests/interface_test.v index c37c325058..50af93267b 100644 --- a/vlib/compiler/tests/interface_test.v +++ b/vlib/compiler/tests/interface_test.v @@ -53,3 +53,23 @@ fn test_perform_speak() { } +interface Register { + register() +} + +struct RegTest {a int} + +fn (f RegTest) register() { +} + +fn handle_reg(r Register) { +} + +fn test_register() { + f := RegTest{} + f.register() + handle_reg(f) +} + + +