parser: fix register() bug in interfaces
parent
28117353a9
commit
3e564a2506
|
@ -166,7 +166,7 @@ fn (p mut Parser) struct_decl() {
|
||||||
// }
|
// }
|
||||||
// Check if reserved name
|
// Check if reserved name
|
||||||
field_name_token_idx := p.cur_tok_index()
|
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() {
|
if !p.first_pass() {
|
||||||
p.fgen(strings.repeat(` `, fmt_max_len - field_name.len))
|
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