• Matthew Dempsky's avatar
    cmd/compile: ignore receiver name when checking duplicate methods · 3eaa3046
    Matthew Dempsky authored
    In golang.org/cl/20602, I changed the semantics of Eqtype to stop
    checking the receiver parameters for type equality, and pushed this
    responsibility to addmethod (the only Eqtype caller that cared).
    However, I accidentally made the check stricter by making it start
    requiring that receiver names were identical.
    
    In general, this is a non-problem because the receiver names in export
    data will always match the original source. But running
    GO_GCFLAGS=-newexport ./all.bash at one point tries to load both old
    and new format export data for package sync, which reveals the
    problem. (See golang.org/issue/14877 for details.)
    
    Easy fix: just check the receiver type for type equality in addmethod,
    instead of the entire receiver parameter list.
    
    Fixes #14877.
    
    Change-Id: If10b79f66ba58a1b7774622b4fbad1916aba32f1
    Reviewed-on: https://go-review.googlesource.com/20906
    Run-TryBot: Matthew Dempsky <mdempsky@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
    3eaa3046
dcl.go 29.1 KB