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