error[E0367]: `!Foo` impl requires `T: 'a` but the struct it is implemented for does not --> $DIR/negated-auto-traits-validity-error.rs:6:13 | LL | impl<'a, T: 'a> !Foo for AdditionalLt<'a, T> {} | ^^ | note: the implementor must specify the same requirement --> $DIR/negated-auto-traits-validity-error.rs:5:1 | LL | struct AdditionalLt<'a, T>(&'a (), T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0367]: `!Foo` impl requires `T: Bound` but the struct it is implemented for does not --> $DIR/negated-auto-traits-validity-error.rs:11:9 | LL | impl !Foo for AdditionalBound {} | ^^^^^ | note: the implementor must specify the same requirement --> $DIR/negated-auto-traits-validity-error.rs:9:1 | LL | struct AdditionalBound(T); | ^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0366]: `!Foo` impls cannot be specialized --> $DIR/negated-auto-traits-validity-error.rs:15:1 | LL | impl !Foo for TwoParam {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `T` is mentioned multiple times note: use the same sequence of generic lifetime, type and const parameters as the struct definition --> $DIR/negated-auto-traits-validity-error.rs:14:1 | LL | struct TwoParam(T, U); | ^^^^^^^^^^^^^^^^^^^^^ error[E0366]: `!Foo` impls cannot be specialized --> $DIR/negated-auto-traits-validity-error.rs:19:1 | LL | impl !Foo for ConcreteParam {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `i32` is not a generic parameter note: use the same sequence of generic lifetime, type and const parameters as the struct definition --> $DIR/negated-auto-traits-validity-error.rs:18:1 | LL | struct ConcreteParam(T); | ^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to 4 previous errors Some errors have detailed explanations: E0366, E0367. For more information about an error, try `rustc --explain E0366`.