1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

fix bugs breaking tests

This commit is contained in:
Joe Conigliaro
2019-09-03 21:57:04 +10:00
committed by Alexander Medvednikov
parent ecb661f719
commit 1f67d9edd8
6 changed files with 47 additions and 41 deletions

View File

@ -611,8 +611,11 @@ fn (p mut Parser) struct_decl() {
names << field_name
// We are in an interface?
// `run() string` => run is a method, not a struct field
if is_interface { //&& p.first_pass() {
p.table.add_method(typ.name, p.interface_method(field_name, name))
if is_interface {
f := p.interface_method(field_name, name)
if p.first_pass() {
p.table.add_method(typ.name, f)
}
continue
}
// `pub` access mod

View File

@ -458,7 +458,9 @@ fn (table &Table) type_has_method(typ &Type, name string) bool {
// TODO use `?Fn`
fn (table &Table) find_method(typ &Type, name string) Fn {
// println('TYPE HAS METHOD $name')
method := typ.find_method(name)
// method := typ.find_method(name)
t := table.typesmap[typ.name]
method := t.find_method(name)
if method.name.len == 0 && typ.parent.len > 0 {
parent := table.find_type(typ.parent)
return parent.find_method(name)