go/parser:当一个有效的函数声明跟随一个损坏的函数声明时失败

nhaq1z21  于 2个月前  发布在  Go
关注(0)|答案(1)|浏览(31)

重现案例:

package main

type e struct {
	error
}

func (*e) random() {}

func main() {
	var diags []error
	for _, err := range diags {
		handled := handle(err)
                handled.
	}
}

func handle(err error) *e {
	return &e{err}
}

没有 " Sel " 字段的选择器在 main 函数中破坏了解析,导致其下面的代码解析失败。handle 函数从未被注册为函数声明。将 handle 函数移到 main 函数上方使这段代码按预期进行类型检查。这对于需要处理损坏代码的编辑器集成工具来说是一个问题。

相关问题