// run -gcflags="-G=3"

// Copyright 2021 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package main

import (
	"reflect"
)

type A[T any] struct {
	B[int]
}

type B[T any] struct {
}

func (b B[T]) Bat() {
	t := new(T)
	if tt := reflect.TypeOf(t); tt.Kind() != reflect.Pointer || tt.Elem().Kind() != reflect.Int {
		panic("unexpected type, want: *int, got: "+tt.String())
	}
}

type Foo struct {
	A[string]
}
func main() {
	Foo{}.A.Bat()
	Foo{}.A.B.Bat()
	Foo{}.Bat()
}
