1
0
mirror of https://github.com/golang/go synced 2024-11-26 02:27:56 -07:00
go/test/fixedbugs/issue30862.dir/b/b.go
Matthew Dempsky bfcb7c4c8a [dev.typeparams] cmd/compile: fix unified IR support for //go:nointerface
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>
2021-07-26 18:43:12 +00:00

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
}