This is from #48974. The following program
package p
type Fooer interface {
Foo()
}
type Fooable[F Fooer] struct {
ptr F
}
func (f *Fooable[F]) Adapter() *Fooable[*FooerImpl[F]] {
return &Fooable[*FooerImpl[F]]{&FooerImpl[F]{}}
}
//
// By removing the 'F Fooer' type param, program compiles sucessfully
// |||||||||
// vvvvvvvvv
type FooerImpl[F Fooer] struct {
}
func (fi *FooerImpl[F]) Foo() {}
type-checks successfully now (after fixing #48974) but the compiler appears to hang.
cc: @danscales
This is from #48974. The following program
type-checks successfully now (after fixing #48974) but the compiler appears to hang.
cc: @danscales