Source file src/internal/types/testdata/fixedbugs/issue49439.go

     1  // Copyright 2021 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  import "unsafe"
     8  
     9  type T0[P T0[P]] struct{}
    10  
    11  type T1[P T2[P /* ERROR "P does not satisfy T1[P]" */]] struct{}
    12  type T2[P T1[P /* ERROR "P does not satisfy T2[P]" */]] struct{}
    13  
    14  type T3[P interface{ ~struct{ f T3[int /* ERROR "int does not satisfy" */ ] } }] struct{}
    15  
    16  // valid cycle in M
    17  type N[P M[P]] struct{}
    18  type M[Q any] struct{ F *M[Q] }
    19  
    20  // "crazy" case
    21  type TC[P [unsafe.Sizeof(func() {
    22  	type T[P [unsafe.Sizeof(func() {})]byte] struct{}
    23  })]byte] struct{}
    24  
    25  // test case from issue
    26  type X[T any, PT X /* ERROR "not enough type arguments for type X" */ [T]] interface{}
    27  

View as plain text