parser: fix register() bug in interfaces
parent
28117353a9
commit
3e564a2506
|
@ -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))
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue