// Copyright 2020 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. // If types2.Config.AcceptMethodTypeParams is set, // the type checker accepts methods that have their // own type parameter list. package p type S struct{} func (S) m[T any](v T) {} // TODO(gri) Once we collect interface method type parameters // in the parser, we can enable these tests again. /* type I interface { m[T any](v T) } type J interface { m[T any](v T) } var _ I = S{} var _ I = J(nil) type C interface{ n() } type Sc struct{} func (Sc) m[T C](v T) type Ic interface { m[T C](v T) } type Jc interface { m[T C](v T) } var _ Ic = Sc{} var _ Ic = Jc(nil) // TODO(gri) These should fail because the constraints don't match. var _ I = Sc{} var _ I = Jc(nil) var _ Ic = S{} var _ Ic = J(nil) */