github.com/JimmyHuang454/JLS-go@v0.0.0-20230831150107-90d536585ba0/internal/types/testdata/fixedbugs/issue50276.go (about) 1 // Copyright 2022 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package p 6 7 // simplified test case 8 9 type transform[T any] struct{} 10 type pair[S any] struct {} 11 12 var _ transform[step] 13 14 type box transform[step] 15 type step = pair[box] 16 17 // test case from issue 18 19 type Transform[T any] struct{ hold T } 20 type Pair[S, T any] struct { 21 First S 22 Second T 23 } 24 25 var first Transform[Step] 26 27 // This line doesn't use the Step alias, and it compiles fine if you uncomment it. 28 var second Transform[Pair[Box, interface{}]] 29 30 type Box *Transform[Step] 31 32 // This line is the same as the `first` line, but it comes after the Box declaration and 33 // does not break the compile. 34 var third Transform[Step] 35 36 type Step = Pair[Box, interface{}] 37 38 // This line also does not break the compile 39 var fourth Transform[Step]