go/types: make sure interfaces are complete before comparing them
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: Matthew Dempsky <mdempsky@google.com>
Showing
Please register or sign in to comment