diff options
Diffstat (limited to 'src/test/ui/nll/outlives-suggestion-simple.rs')
-rw-r--r-- | src/test/ui/nll/outlives-suggestion-simple.rs | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/src/test/ui/nll/outlives-suggestion-simple.rs b/src/test/ui/nll/outlives-suggestion-simple.rs deleted file mode 100644 index 2a5c31e3a..000000000 --- a/src/test/ui/nll/outlives-suggestion-simple.rs +++ /dev/null @@ -1,75 +0,0 @@ -// Test the simplest of outlives suggestions. - -fn foo1<'a, 'b>(x: &'a usize) -> &'b usize { - x //~ERROR lifetime may not live long enough -} - -fn foo2<'a>(x: &'a usize) -> &'static usize { - x //~ERROR lifetime may not live long enough -} - -fn foo3<'a, 'b>(x: &'a usize, y: &'b usize) -> (&'b usize, &'a usize) { - (x, y) //~ERROR lifetime may not live long enough - //~^ERROR lifetime may not live long enough -} - -fn foo4<'a, 'b, 'c>(x: &'a usize) -> (&'b usize, &'c usize) { - // FIXME: ideally, we suggest 'a: 'b + 'c, but as of today (may 04, 2019), the null error - // reporting stops after the first error in a MIR def so as not to produce too many errors, so - // currently we only report 'a: 'b. The user would then re-run and get another error. - (x, x) //~ERROR lifetime may not live long enough -} - -struct Foo<'a> { - x: &'a usize, -} - -impl Foo<'static> { - pub fn foo<'a>(x: &'a usize) -> Self { - Foo { x } //~ERROR lifetime may not live long enough - } -} - -struct Bar<'a> { - x: &'a usize, -} - -impl<'a> Bar<'a> { - pub fn get<'b>(&self) -> &'b usize { - self.x //~ERROR lifetime may not live long enough - } -} - -// source: https://stackoverflow.com/questions/41417057/why-do-i-get-a-lifetime-error-when-i-use-a-mutable-reference-in-a-struct-instead -struct Baz<'a> { - x: &'a mut i32, -} - -impl<'a> Baz<'a> { - fn get<'b>(&'b self) -> &'a i32 { - self.x //~ERROR lifetime may not live long enough - } -} - -// source: https://stackoverflow.com/questions/41204134/rust-lifetime-error -struct Bar2<'a> { - bar: &'a str, -} -impl<'a> Bar2<'a> { - fn new(foo: &'a Foo2<'a>) -> Bar2<'a> { - Bar2 { bar: foo.raw } - } -} - -pub struct Foo2<'a> { - raw: &'a str, - cell: std::cell::Cell<&'a str>, -} -impl<'a> Foo2<'a> { - // should not produce outlives suggestions to name 'self - fn get_bar(&self) -> Bar2 { - Bar2::new(&self) //~ERROR lifetime may not live long enough - } -} - -fn main() {} |