• Robert Griesemer's avatar
    go/types: make sure interfaces are complete before comparing them · 04fb929a
    Robert Griesemer authored
    Complete interfaces before comparing them with Checker.identical.
    This requires passing through a *Checker to various functions that
    didn't need this before.
    
    Verified that none of the exported API entry points for interfaces
    that rely on completed interfaces are used internally except for
    Interface.Empty. Verified that interfaces are complete before
    calling Empty on them, and added a dynamic check in the exported
    functions.
    
    Unfortunately, this fix exposed another problem with an esoteric
    test case (#33656) which we need to reopen.
    
    Fixes #34151.
    Updates #33656.
    
    Change-Id: I4e14bae3df74a2c21b565c24fdd07135f22e11c0
    Reviewed-on: https://go-review.googlesource.com/c/go/+/195837
    Run-TryBot: Robert Griesemer <gri@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
    04fb929a
call.go 13.9 KB