Initial commit: Go 1.23 release state
This commit is contained in:
30
test/typeparam/issue52228.go
Normal file
30
test/typeparam/issue52228.go
Normal file
@@ -0,0 +1,30 @@
|
||||
// run
|
||||
|
||||
// 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 main
|
||||
|
||||
type SomeInterface interface {
|
||||
Whatever()
|
||||
}
|
||||
|
||||
func X[T any]() T {
|
||||
var m T
|
||||
|
||||
// for this example, this block should never run
|
||||
if _, ok := any(m).(SomeInterface); ok {
|
||||
var dst SomeInterface
|
||||
_, _ = dst.(T)
|
||||
return dst.(T)
|
||||
}
|
||||
|
||||
return m
|
||||
}
|
||||
|
||||
type holder struct{}
|
||||
|
||||
func main() {
|
||||
X[holder]()
|
||||
}
|
||||
Reference in New Issue
Block a user