mirror of
https://github.com/golang/go
synced 2024-07-20 07:14:08 +00:00
![Matthew Dempsky](/assets/img/avatar_default.png)
The RType field isn't needed when performing type assertions from non-empty interface types, because we use the ITab field instead. But the inline body exporter didn't know to expect this. It's possible we could use a single bool to distinguish whether we're serializing the RType or ITab field, but using two is simpler and seems safer. Fixes #54302. Change-Id: I9ddac72784fb2241fee0a0dee30493d868a2c259 Reviewed-on: https://go-review.googlesource.com/c/go/+/421755 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Keith Randall <khr@google.com> Auto-Submit: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Keith Randall <khr@golang.org>
21 lines
362 B
Go
21 lines
362 B
Go
// Copyright 2022 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 a
|
|
|
|
func A() {
|
|
B[int](new(G[int]))
|
|
}
|
|
|
|
func B[T any](iface interface{ M(T) }) {
|
|
x, ok := iface.(*G[T])
|
|
if !ok || iface != x {
|
|
panic("FAIL")
|
|
}
|
|
}
|
|
|
|
type G[T any] struct{}
|
|
|
|
func (*G[T]) M(T) {}
|