summaryrefslogtreecommitdiffstats
path: root/src/test/ui/nll/outlives-suggestion-simple.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/nll/outlives-suggestion-simple.rs')
-rw-r--r--src/test/ui/nll/outlives-suggestion-simple.rs75
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() {}