github.com/JimmyHuang454/JLS-go@v0.0.0-20230831150107-90d536585ba0/internal/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() {}