// 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. // Embedding of stand-alone type parameters is not permitted. package p type ( _[P any] interface{ *P | []P | chan P | map[string]P } _[P any] interface{ P /* ERROR "cannot embed a type parameter" */ } _[P any] interface{ ~P /* ERROR "cannot embed a type parameter" */ } _[P any] interface{ int | P /* ERROR "cannot embed a type parameter" */ } _[P any] interface{ int | ~P /* ERROR "cannot embed a type parameter" */ } ) func _[P any]() { type ( _[P any] interface{ *P | []P | chan P | map[string]P } _[P any] interface{ P /* ERROR "cannot embed a type parameter" */ } _[P any] interface{ ~P /* ERROR "cannot embed a type parameter" */ } _[P any] interface{ int | P /* ERROR "cannot embed a type parameter" */ } _[P any] interface{ int | ~P /* ERROR "cannot embed a type parameter" */ } _ interface{ *P | []P | chan P | map[string]P } _ interface{ P /* ERROR "cannot embed a type parameter" */ } _ interface{ ~P /* ERROR "cannot embed a type parameter" */ } _ interface{ int | P /* ERROR "cannot embed a type parameter" */ } _ interface{ int | ~P /* ERROR "cannot embed a type parameter" */ } ) } func _[P any, Q interface{ *P | []P | chan P | map[string]P }]() {} func _[P any, Q interface{ P /* ERROR "cannot embed a type parameter" */ }]() {} func _[P any, Q interface{ ~P /* ERROR "cannot embed a type parameter" */ }]() {} func _[P any, Q interface{ int | P /* ERROR "cannot embed a type parameter" */ }]() {} func _[P any, Q interface{ int | ~P /* ERROR "cannot embed a type parameter" */ }]() {}