Initial commit: Go 1.23 release state
This commit is contained in:
9
test/typeparam/issue51250a.dir/a.go
Normal file
9
test/typeparam/issue51250a.dir/a.go
Normal file
@@ -0,0 +1,9 @@
|
||||
// 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
|
||||
|
||||
type G[T any] struct {
|
||||
x T
|
||||
}
|
||||
24
test/typeparam/issue51250a.dir/b.go
Normal file
24
test/typeparam/issue51250a.dir/b.go
Normal file
@@ -0,0 +1,24 @@
|
||||
// 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 b
|
||||
|
||||
import "./a"
|
||||
|
||||
type T struct { a int }
|
||||
|
||||
var I interface{} = a.G[T]{}
|
||||
|
||||
//go:noinline
|
||||
func F(x interface{}) {
|
||||
switch x.(type) {
|
||||
case a.G[T]:
|
||||
case int:
|
||||
panic("bad")
|
||||
case float64:
|
||||
panic("bad")
|
||||
default:
|
||||
panic("bad")
|
||||
}
|
||||
}
|
||||
24
test/typeparam/issue51250a.dir/main.go
Normal file
24
test/typeparam/issue51250a.dir/main.go
Normal file
@@ -0,0 +1,24 @@
|
||||
// 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
|
||||
|
||||
import (
|
||||
"./a"
|
||||
"./b"
|
||||
)
|
||||
|
||||
func main() {
|
||||
switch b.I.(type) {
|
||||
case a.G[b.T]:
|
||||
case int:
|
||||
panic("bad")
|
||||
case float64:
|
||||
panic("bad")
|
||||
default:
|
||||
panic("bad")
|
||||
}
|
||||
|
||||
b.F(a.G[b.T]{})
|
||||
}
|
||||
Reference in New Issue
Block a user