trait Foo<T> {
    type Output;
    fn test(self, slice: &T) -> &Self::Output;
}
struct Bar<T>(T);
// { dg-warning "struct is never constructed" "" { target *-*-* } .-1 }
impl<T> Foo<[T]> for Bar<usize> {
    type Output = [T];
    fn test(self, slice: &[T]) -> &[T] {
        slice
    }
}