| // 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<Self::Item> { //~ 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() {} |