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

     1  // -gotypesalias=1
     2  
     3  // Copyright 2021 The Go Authors. All rights reserved.
     4  // Use of this source code is governed by a BSD-style
     5  // license that can be found in the LICENSE file.
     6  
     7  package p
     8  
     9  // test case 1
    10  type T /* ERROR "invalid recursive type" */ [U interface{ M() T[U] }] int
    11  
    12  type X int
    13  
    14  func (X) M() T[X] { return 0 }
    15  
    16  // test case 2
    17  type A /* ERROR "invalid recursive type" */ [T interface{ A[T] }] interface{}
    18  
    19  // test case 3
    20  // TODO(gri) should report error only once
    21  type A2 /* ERROR "invalid recursive type" */ /* ERROR "invalid recursive type" */ [U interface{ A2[U] }] interface{ M() A2[U] }
    22  
    23  type I interface{ A2[I]; M() A2[I] }
    24  

View as plain text