#![feature(auto_traits, negative_impls)] auto trait Foo {} struct AdditionalLt<'a, T>(&'a (), T); impl<'a, T: 'a> !Foo for AdditionalLt<'a, T> {} //~^ ERROR `!Foo` impl requires `T: 'a` but the struct it is implemented for does not struct AdditionalBound(T); trait Bound {} impl !Foo for AdditionalBound {} //~^ ERROR `!Foo` impl requires `T: Bound` but the struct it is implemented for does not struct TwoParam(T, U); impl !Foo for TwoParam {} //~^ ERROR `!Foo` impls cannot be specialized struct ConcreteParam(T); impl !Foo for ConcreteParam {} //~^ ERROR `!Foo` impls cannot be specialized fn main() {}