// 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 // indirection func _[P any](p P) { _ = *p // ERROR "cannot indirect p" } func _[P interface{ int }](p P) { _ = *p // ERROR "cannot indirect p" } func _[P interface{ *int }](p P) { _ = *p } func _[P interface{ *int | *string }](p P) { _ = *p // ERROR "must have identical base types" } type intPtr *int func _[P interface{ *int | intPtr } ](p P) { var _ int = *p }