Commit c8e9fd5d authored by Austin Clements's avatar Austin Clements

Revert "Revert "cmd/compile: discard duplicate inline method bodies""

This reverts commit f612cd70.

Reason for revert: We thought the original change had broken the
linux/amd64 and linux/386 builders, but it turned out to be a problem
with the build infrastructure, not the change.

Change-Id: Ic3318a63464fcba8d845ac04494115a7ba620364
Reviewed-on: https://go-review.googlesource.com/55050
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: 's avatarMatthew Dempsky <mdempsky@google.com>
parent e0789d73
......@@ -484,6 +484,7 @@ func (p *importer) typ() *types.Type {
t = pkgtype(p.imp, tsym)
p.typList = append(p.typList, t)
dup := !t.IsKind(types.TFORW) // type already imported
// read underlying type
t0 := p.typ()
......@@ -514,10 +515,19 @@ func (p *importer) typ() *types.Type {
result := p.paramList()
nointerface := p.bool()
mt := functypefield(recv[0], params, result)
addmethod(sym, mt, false, nointerface)
if dup {
// An earlier import already declared this type and its methods.
// Discard the duplicate method declaration.
p.funcList = append(p.funcList, nil)
continue
}
n := newfuncname(methodname(sym, recv[0].Type))
n.Type = functypefield(recv[0], params, result)
n.Type = mt
checkwidth(n.Type)
addmethod(sym, n.Type, false, nointerface)
p.funcList = append(p.funcList, n)
importlist = append(importlist, n)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment