// run-pass
trait Tr { type T; }
impl Tr for u8 { type T=(); }
struct S<I: Tr>(#[allow(unused_tuple_struct_fields)] I::T);

fn foo<I: Tr>(i: I::T) {
    S::<I>(i);
}

fn main() {
    foo::<u8>(());
}