mirror of https://github.com/golang/go.git
45 lines
529 B
Plaintext
45 lines
529 B
Plaintext
// run
|
|
|
|
// Copyright 2020 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 T[A any] struct {
|
|
V A
|
|
}
|
|
|
|
type S1 struct {
|
|
T[int]
|
|
V string
|
|
}
|
|
|
|
type Tint = T[int]
|
|
type Tbool = T[bool]
|
|
|
|
type S2 struct {
|
|
Tint
|
|
Tbool
|
|
V string
|
|
}
|
|
|
|
type S3 struct {
|
|
*T[int]
|
|
}
|
|
|
|
func main() {
|
|
var s1 S1
|
|
if s1.T.V != 0 {
|
|
panic(s1)
|
|
}
|
|
var s2 S2
|
|
if s2.Tint.V != 0 || s2.Tbool.V {
|
|
panic(s2)
|
|
}
|
|
var s3 S3
|
|
if s3.T != nil {
|
|
panic(s3)
|
|
}
|
|
}
|