about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorDavid Wood <david@davidtw.co>2018-07-28 00:09:23 +0200
committerDavid Wood <david@davidtw.co>2018-08-01 17:30:01 +0200
commit8bbf0422d44ff54fff5760987d06250ebb5b60af (patch)
treeb64f9c2e38b849bc27daf36da80107cbdf3c4900 /src
parent43e6e2ef6abd28d564fc7a5c0e2b1b8b766adb53 (diff)
downloadrust-8bbf0422d44ff54fff5760987d06250ebb5b60af.tar.gz
rust-8bbf0422d44ff54fff5760987d06250ebb5b60af.zip
Added test for #49824.
Diffstat (limited to 'src')
-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
+