about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRémy Rakic <remy.rakic+github@gmail.com>2021-08-03 21:57:57 +0200
committerRémy Rakic <remy.rakic+github@gmail.com>2021-08-03 21:57:57 +0200
commitf2a4d7fdbe4fd5b91632c30cf67ea7f3249a3030 (patch)
treeba823db896e17840ac8a416aee681d5e9154cbb4
parent8a21c2f7f2f4d9cba837f186eb66c0478343b458 (diff)
downloadrust-f2a4d7fdbe4fd5b91632c30cf67ea7f3249a3030.tar.gz
rust-f2a4d7fdbe4fd5b91632c30cf67ea7f3249a3030.zip
bless `expect-region-supply-region-2` test under polonius
Polonius also emits the error that NLL doesn't get a chance to: see comment
"Borrowck doesn't get a chance to run, but if it did it should error here."
-rw-r--r--src/test/ui/closures/closure-expected-type/expect-region-supply-region-2.polonius.stderr37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/test/ui/closures/closure-expected-type/expect-region-supply-region-2.polonius.stderr b/src/test/ui/closures/closure-expected-type/expect-region-supply-region-2.polonius.stderr
new file mode 100644
index 00000000000..8846ccef34e
--- /dev/null
+++ b/src/test/ui/closures/closure-expected-type/expect-region-supply-region-2.polonius.stderr
@@ -0,0 +1,37 @@
+error: lifetime may not live long enough
+  --> $DIR/expect-region-supply-region-2.rs:14:30
+   |
+LL | fn expect_bound_supply_named<'x>() {
+   |                              -- lifetime `'x` defined here
+...
+LL |     closure_expecting_bound(|x: &'x u32| {
+   |                              ^  - let's call the lifetime of this reference `'1`
+   |                              |
+   |                              requires that `'1` must outlive `'x`
+
+error[E0521]: borrowed data escapes outside of closure
+  --> $DIR/expect-region-supply-region-2.rs:20:9
+   |
+LL |     let mut f: Option<&u32> = None;
+   |         ----- `f` declared here, outside of the closure body
+...
+LL |     closure_expecting_bound(|x: &'x u32| {
+   |                              - `x` is a reference that is only valid in the closure body
+...
+LL |         f = Some(x);
+   |         ^^^^^^^^^^^ `x` escapes the closure body here
+
+error: lifetime may not live long enough
+  --> $DIR/expect-region-supply-region-2.rs:14:30
+   |
+LL | fn expect_bound_supply_named<'x>() {
+   |                              -- lifetime `'x` defined here
+...
+LL |     closure_expecting_bound(|x: &'x u32| {
+   |                              ^ requires that `'x` must outlive `'static`
+   |
+   = help: consider replacing `'x` with `'static`
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0521`.