summaryrefslogtreecommitdiffstats
path: root/src/test/ui/closures/closure-expected-type/expect-region-supply-region-2.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/closures/closure-expected-type/expect-region-supply-region-2.rs')
-rw-r--r--src/test/ui/closures/closure-expected-type/expect-region-supply-region-2.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/ui/closures/closure-expected-type/expect-region-supply-region-2.rs b/src/test/ui/closures/closure-expected-type/expect-region-supply-region-2.rs
new file mode 100644
index 000000000..9b51bbd58
--- /dev/null
+++ b/src/test/ui/closures/closure-expected-type/expect-region-supply-region-2.rs
@@ -0,0 +1,24 @@
+#![allow(warnings)]
+
+fn closure_expecting_bound<F>(_: F)
+where
+ F: FnOnce(&u32),
+{
+}
+
+fn expect_bound_supply_named<'x>() {
+ let mut f: Option<&u32> = None;
+
+ // Here we give a type annotation that `x` should be free. We get
+ // an error because of that.
+ closure_expecting_bound(|x: &'x u32| {
+ //~^ ERROR lifetime may not live long enough
+ //~| ERROR lifetime may not live long enough
+
+ // Borrowck doesn't get a chance to run, but if it did it should error
+ // here.
+ f = Some(x);
+ });
+}
+
+fn main() {}