summaryrefslogtreecommitdiffstats
path: root/src/test/ui/closures/binder
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/closures/binder')
-rw-r--r--src/test/ui/closures/binder/late-bound-in-body.rs9
-rw-r--r--src/test/ui/closures/binder/nested-closures-regions.rs9
-rw-r--r--src/test/ui/closures/binder/nested-closures-regions.stderr38
-rw-r--r--src/test/ui/closures/binder/nested-closures.rs7
4 files changed, 63 insertions, 0 deletions
diff --git a/src/test/ui/closures/binder/late-bound-in-body.rs b/src/test/ui/closures/binder/late-bound-in-body.rs
new file mode 100644
index 000000000..bb5c7552f
--- /dev/null
+++ b/src/test/ui/closures/binder/late-bound-in-body.rs
@@ -0,0 +1,9 @@
+// check-pass
+
+#![feature(closure_lifetime_binder)]
+
+fn main() {
+ let _ = for<'a> || -> () {
+ let _: &'a bool = &true;
+ };
+}
diff --git a/src/test/ui/closures/binder/nested-closures-regions.rs b/src/test/ui/closures/binder/nested-closures-regions.rs
new file mode 100644
index 000000000..6bfc6c80b
--- /dev/null
+++ b/src/test/ui/closures/binder/nested-closures-regions.rs
@@ -0,0 +1,9 @@
+// check-pass
+
+#![feature(closure_lifetime_binder)]
+#![feature(rustc_attrs)]
+
+#[rustc_regions]
+fn main() {
+ for<'a> || -> () { for<'c> |_: &'a ()| -> () {}; };
+}
diff --git a/src/test/ui/closures/binder/nested-closures-regions.stderr b/src/test/ui/closures/binder/nested-closures-regions.stderr
new file mode 100644
index 000000000..b385e0ed6
--- /dev/null
+++ b/src/test/ui/closures/binder/nested-closures-regions.stderr
@@ -0,0 +1,38 @@
+note: external requirements
+ --> $DIR/nested-closures-regions.rs:8:24
+ |
+LL | for<'a> || -> () { for<'c> |_: &'a ()| -> () {}; };
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^
+ |
+ = note: defining type: main::{closure#0}::{closure#0} with closure substs [
+ i8,
+ extern "rust-call" fn((&(),)),
+ (),
+ ]
+ = note: late-bound region is '_#4r
+ = note: late-bound region is '_#2r
+ = note: number of external vids: 3
+ = note: where '_#1r: '_#2r
+ = note: where '_#2r: '_#1r
+
+note: no external requirements
+ --> $DIR/nested-closures-regions.rs:8:5
+ |
+LL | for<'a> || -> () { for<'c> |_: &'a ()| -> () {}; };
+ | ^^^^^^^^^^^^^^^^
+ |
+ = note: defining type: main::{closure#0} with closure substs [
+ i8,
+ extern "rust-call" fn(()),
+ (),
+ ]
+ = note: late-bound region is '_#2r
+
+note: no external requirements
+ --> $DIR/nested-closures-regions.rs:7:1
+ |
+LL | fn main() {
+ | ^^^^^^^^^
+ |
+ = note: defining type: main
+
diff --git a/src/test/ui/closures/binder/nested-closures.rs b/src/test/ui/closures/binder/nested-closures.rs
new file mode 100644
index 000000000..b3c36e7ee
--- /dev/null
+++ b/src/test/ui/closures/binder/nested-closures.rs
@@ -0,0 +1,7 @@
+// check-pass
+
+#![feature(closure_lifetime_binder)]
+
+fn main() {
+ for<'a> || -> () { for<'c> |_: &'a ()| -> () {}; };
+}