blob: 3b058534cd365a10ab78ad44cd987918bf0f4348 [file] [log] [blame]
This test verifies that implementations uses the correct object when querying
local implementations . As described in golang/go#67041), a bug led to it
comparing types from different realms.
-- go.mod --
module example.com
go 1.18
-- a/a.go --
package a
type A struct{}
type Aer interface { //@loc(Aer, "Aer")
GetA() A
}
type X struct{} //@loc(X, "X")
func (X) GetA() A
-- a/a_test.go --
package a
// Verify that we also find implementations in a test variant.
type Y struct{} //@loc(Y, "Y")
func (Y) GetA() A
-- b/b.go --
package b
import "example.com/a"
var _ a.X //@implementation("X", Aer)
var _ a.Aer //@implementation("Aer", X, Y)