// Copyright 2022 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 func f[S []T, T any](S, T) {} func _() { type L chan int f([]L{}, make(chan int)) f([]L{}, make(L)) f([]chan int{}, make(chan int)) f /* ERROR "[]chan int does not satisfy []L ([]chan int missing in []p.L)" */ ([]chan int{}, make(L)) } // test case from issue func Append[S ~[]T, T any](s S, x ...T) S { /* implementation of append */ return s } func _() { type MyPtr *int var x []MyPtr _ = append(x, new(int)) _ = Append(x, new(int)) }