// Test that we DO warn for a lifetime on an impl used only in `&self` // in a trait method. #![deny(single_use_lifetimes)] #![allow(dead_code)] #![allow(unused_variables)] struct Foo<'f> { data: &'f u32 } impl<'f> Iterator for Foo<'f> { type Item = &'f u32; fn next<'g>(&'g mut self) -> Option { //~ ERROR `'g` only used once //~^ HELP elide the single-use lifetime None } } trait Bar<'a> { // But we should not warn here. fn bar(x: Foo<'a>); } fn main() {}