diff options
Diffstat (limited to 'src/test/ui/single-use-lifetime/one-use-in-trait-method-argument.rs')
-rw-r--r-- | src/test/ui/single-use-lifetime/one-use-in-trait-method-argument.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/test/ui/single-use-lifetime/one-use-in-trait-method-argument.rs b/src/test/ui/single-use-lifetime/one-use-in-trait-method-argument.rs new file mode 100644 index 000000000..1848fc91c --- /dev/null +++ b/src/test/ui/single-use-lifetime/one-use-in-trait-method-argument.rs @@ -0,0 +1,26 @@ +// 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() {} |