// 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 p

type T[P any] struct{}

func (T[P]) m1()

type A1 = T // ERROR cannot use generic type

func (A1[P]) m2() {}

type A2 = T[int]

func (A2 /* ERROR cannot define new methods on instantiated type T\[int\] */) m3()   {}
func (_ /* ERROR cannot define new methods on instantiated type T\[int\] */ A2) m4() {}

func (T[int]) m5()                                     {} // int is the type parameter name, not an instantiation
func (T[* /* ERROR must be an identifier */ int]) m6() {} // syntax error
