summaryrefslogtreecommitdiffstats
path: root/src/test/ui/nll/closure-requirements/propagate-fail-to-approximate-longer-wrong-bounds.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/nll/closure-requirements/propagate-fail-to-approximate-longer-wrong-bounds.rs')
-rw-r--r--src/test/ui/nll/closure-requirements/propagate-fail-to-approximate-longer-wrong-bounds.rs46
1 files changed, 0 insertions, 46 deletions
diff --git a/src/test/ui/nll/closure-requirements/propagate-fail-to-approximate-longer-wrong-bounds.rs b/src/test/ui/nll/closure-requirements/propagate-fail-to-approximate-longer-wrong-bounds.rs
deleted file mode 100644
index 98be92d1c..000000000
--- a/src/test/ui/nll/closure-requirements/propagate-fail-to-approximate-longer-wrong-bounds.rs
+++ /dev/null
@@ -1,46 +0,0 @@
-// Similarly to escape-argument-callee, a test case where the closure
-// requires a relationship between 2 unrelated higher-ranked regions,
-// with no helpful relations between the HRRs and free regions.
-//
-// In this case, the error is reported by the closure itself. This is
-// because it is unable to approximate the higher-ranked region `'x`,
-// as it only knows of regions that `'x` is outlived by, and none that
-// `'x` outlives.
-
-// compile-flags:-Zverbose
-
-#![feature(rustc_attrs)]
-
-use std::cell::Cell;
-
-// Callee knows that:
-//
-// 'a: 'x
-// 'b: 'y
-//
-// but this doesn't really help us in proving that `'x: 'y`, so
-// closure gets an error. In particular, we would need to know that
-// `'x: 'a`, so that we could approximate `'x` "downwards" to `'a`.
-fn establish_relationships<'a, 'b, F>(_cell_a: &Cell<&'a u32>, _cell_b: &Cell<&'b u32>, _closure: F)
-where
- F: for<'x, 'y> FnMut(
- &Cell<&'x &'a u32>, // shows that 'a: 'x
- &Cell<&'y &'b u32>, // shows that 'b: 'y
- &Cell<&'x u32>,
- &Cell<&'y u32>,
- ),
-{
-}
-
-fn demand_y<'x, 'y>(_cell_x: &Cell<&'x u32>, _cell_y: &Cell<&'y u32>, _y: &'y u32) {}
-
-#[rustc_regions]
-fn supply<'a, 'b>(cell_a: Cell<&'a u32>, cell_b: Cell<&'b u32>) {
- establish_relationships(&cell_a, &cell_b, |_outlives1, _outlives2, x, y| {
- // Only works if 'x: 'y:
- demand_y(x, y, x.get())
- //~^ ERROR
- });
-}
-
-fn main() {}