about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPietro Albini <pietro@pietroalbini.org>2018-08-01 21:46:22 +0200
committerGitHub <noreply@github.com>2018-08-01 21:46:22 +0200
commit334da29e9841a2bc6fbea0991d6e984ec669a20f (patch)
tree8c470e5ec72ec3a62c3894e9fac71e9bb6f6141e
parent11f812aa7d1df09724f94c2b095f6dbfd367da17 (diff)
parent8bbf0422d44ff54fff5760987d06250ebb5b60af (diff)
downloadrust-334da29e9841a2bc6fbea0991d6e984ec669a20f.tar.gz
rust-334da29e9841a2bc6fbea0991d6e984ec669a20f.zip
Rollup merge of #52793 - davidtwco:issue-49824, r=pnkfelix
Add test for NLL: unexpected "free region `` does not outlive" error

Fixes #49824.

r? @pnkfelix @nikomatsakis
-rw-r--r--src/test/ui/issue-49824.nll.stderr20
-rw-r--r--src/test/ui/issue-49824.rs26
-rw-r--r--src/test/ui/issue-49824.stderr14
3 files changed, 60 insertions, 0 deletions
diff --git a/src/test/ui/issue-49824.nll.stderr b/src/test/ui/issue-49824.nll.stderr
new file mode 100644
index 00000000000..59345754e9f
--- /dev/null
+++ b/src/test/ui/issue-49824.nll.stderr
@@ -0,0 +1,20 @@
+error: unsatisfied lifetime constraints
+  --> $DIR/issue-49824.rs:22:9
+   |
+LL |         || {
+   |    _____-
+   |   |_____|
+   |  ||
+LL |  ||         || {
+   |  ||_________^
+LL | |||             let _y = &mut x;
+LL | |||         }
+   | |||_________^ requires that `'1` must outlive `'2`
+LL |  ||     };
+   |  ||     -
+   |  ||_____|
+   |  |______lifetime `'1` represents the closure body
+   |         lifetime `'2` appears in return type
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/issue-49824.rs b/src/test/ui/issue-49824.rs
new file mode 100644
index 00000000000..1f3e5752884
--- /dev/null
+++ b/src/test/ui/issue-49824.rs
@@ -0,0 +1,26 @@
+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![feature(rustc_attrs)]
+
+// This test checks that a failure occurs with NLL but does not fail with the
+// legacy AST output. Check issue-49824.nll.stderr for expected compilation error
+// output under NLL and #49824 for more information.
+
+#[rustc_error]
+fn main() {
+    //~^ compilation successful
+    let mut x = 0;
+    || {
+        || {
+            let _y = &mut x;
+        }
+    };
+}
diff --git a/src/test/ui/issue-49824.stderr b/src/test/ui/issue-49824.stderr
new file mode 100644
index 00000000000..b6cafe5e9e9
--- /dev/null
+++ b/src/test/ui/issue-49824.stderr
@@ -0,0 +1,14 @@
+error: compilation successful
+  --> $DIR/issue-49824.rs:18:1
+   |
+LL | / fn main() {
+LL | |     //~^ compilation successful
+LL | |     let mut x = 0;
+LL | |     || {
+...  |
+LL | |     };
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+