#[lang = "sized"]
pub trait Sized {}

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