mirror of
https://github.com/golang/go
synced 2024-11-17 19:54:45 -07:00
3081f817da
If a type T has a method foo, then var t T var i interface{} = t.foo The type of foo is a method type, but the type of t.foo should be a standard function type. Make sure we always do that conversion. Fixes #47775 Change-Id: I464ec792196b050aba1914e070a4ede34bfd0bfa Reviewed-on: https://go-review.googlesource.com/c/go/+/343881 Trust: Keith Randall <khr@golang.org> Trust: Dan Scales <danscales@google.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dan Scales <danscales@google.com>
29 lines
384 B
Go
29 lines
384 B
Go
// run -gcflags=-G=3
|
|
|
|
// Copyright 2021 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 main
|
|
|
|
type C[T any] struct {
|
|
}
|
|
|
|
func (c *C[T]) reset() {
|
|
}
|
|
|
|
func New[T any]() {
|
|
c := &C[T]{}
|
|
i = c.reset
|
|
z(c.reset)
|
|
}
|
|
|
|
var i interface{}
|
|
|
|
func z(interface{}) {
|
|
}
|
|
|
|
func main() {
|
|
New[int]()
|
|
}
|