1
0
mirror of https://github.com/golang/go synced 2024-11-16 19:54:55 -07:00
go/test/fixedbugs/issue65962.go

49 lines
625 B
Go
Raw Normal View History

// run
// Copyright 2024 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
func main() {
test1()
test2()
}
type I interface {
f()
g()
h()
}
//go:noinline
func ld[T any]() {
var x I
if _, ok := x.(T); ok {
}
}
func isI(x any) {
_ = x.(I)
}
func test1() {
defer func() { recover() }()
ld[bool]() // add <bool,I> itab to binary
_ = any(false).(I)
}
type B bool
func (B) f() {
}
func (B) g() {
}
func test2() {
defer func() { recover() }()
ld[B]() // add <B,I> itab to binary
_ = any(B(false)).(I)
}