#![deny(redundant_lifetimes)] fn a<'a, 'b>(x: &'a &'b &'a ()) {} //~ ERROR unnecessary lifetime parameter `'b` fn b<'a: 'b, 'b: 'a>() {} //~ ERROR unnecessary lifetime parameter `'b` struct Foo(T); fn c<'a>(_: Foo<&'a ()>) {} //~ ERROR unnecessary lifetime parameter `'a` struct Bar<'a>(&'a ()); impl<'a> Bar<'a> { fn d<'b: 'a>(&'b self) {} //~ ERROR unnecessary lifetime parameter `'b` } fn ok(x: &'static &()) {} trait Tr<'a> {} impl<'a: 'static> Tr<'a> for () {} //~ ERROR unnecessary lifetime parameter `'a` fn main() {}