diff options
Diffstat (limited to 'src/test/ui/nll/closure-requirements/propagate-approximated-val.rs')
| -rw-r--r-- | src/test/ui/nll/closure-requirements/propagate-approximated-val.rs | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/src/test/ui/nll/closure-requirements/propagate-approximated-val.rs b/src/test/ui/nll/closure-requirements/propagate-approximated-val.rs deleted file mode 100644 index 5bb5eea991b..00000000000 --- a/src/test/ui/nll/closure-requirements/propagate-approximated-val.rs +++ /dev/null @@ -1,43 +0,0 @@ -// A simpler variant of `outlives-from-argument` where cells are -// passed by value. -// -// This is simpler because there are no "extraneous" region -// relationships. In the 'main' variant, there are a number of -// anonymous regions as well. - -// compile-flags:-Zverbose - -#![feature(rustc_attrs)] - -use std::cell::Cell; - -// Callee knows that: -// -// 'x: 'a -// 'b: 'y -// -// so if we are going to ensure that `'x: 'y`, then `'a: 'b` must -// hold. -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<&'a &'x u32>, // shows that 'x: 'a - Cell<&'y &'b u32>, // shows that 'b: 'y - Cell<&'x u32>, - Cell<&'y u32>, - ), -{ -} - -fn demand_y<'x, 'y>(_outlives1: Cell<&&'x u32>, _outlives2: Cell<&'y &u32>, _y: &'y u32) {} - -#[rustc_regions] -fn test<'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(outlives1, outlives2, x.get()) - //~^ ERROR lifetime may not live long enough - }); -} - -fn main() {} |
