mirror of
https://github.com/golang/go
synced 2024-11-26 02:27:56 -07:00
bfcb7c4c8a
This CL changes fixedbugs/issue30862.go into a "runindir" test so that it can use '-goexperiment fieldtrack' and test that //go:nointerface works with cmd/compile. In particular, this revealed that -G=3 and unified IR did not handle it correctly. This CL also fixes unified IR's support for //go:nointerface and adds a test that checks that //go:nointerface, promoted methods, and generics all interact as expected. Updates #47045. Change-Id: Ib8acff8ae18bf124520d00c98e8915699cba2abd Reviewed-on: https://go-review.googlesource.com/c/go/+/332611 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Go Bot <gobot@golang.org> Trust: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Robert Griesemer <gri@golang.org>
30 lines
562 B
Go
30 lines
562 B
Go
// Copyright 2019 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package b
|
|
|
|
import "issue30862.dir/a"
|
|
|
|
type EmbedImported struct {
|
|
a.NoitfStruct
|
|
}
|
|
|
|
func Test() []string {
|
|
bad := []string{}
|
|
x := interface{}(new(a.NoitfStruct))
|
|
if _, ok := x.(interface {
|
|
NoInterfaceMethod()
|
|
}); ok {
|
|
bad = append(bad, "fail 1")
|
|
}
|
|
|
|
x = interface{}(new(EmbedImported))
|
|
if _, ok := x.(interface {
|
|
NoInterfaceMethod()
|
|
}); ok {
|
|
bad = append(bad, "fail 2")
|
|
}
|
|
return bad
|
|
}
|