github.com/go-asm/go@v1.21.1-0.20240213172139-40c5ead50c48/types/testdata/fixedbugs/issue48974.go (about)

     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  type Fooer interface {
     8  	Foo()
     9  }
    10  
    11  type Fooable[F /* ERROR "instantiation cycle" */ Fooer] struct {
    12  	ptr F
    13  }
    14  
    15  func (f *Fooable[F]) Adapter() *Fooable[*FooerImpl[F]] {
    16  	return &Fooable[*FooerImpl[F]]{&FooerImpl[F]{}}
    17  }
    18  
    19  type FooerImpl[F Fooer] struct {
    20  }
    21  
    22  func (fi *FooerImpl[F]) Foo() {}