// compile-flags:-Zborrowck=mir -Zverbose // build-pass (FIXME(62277): could be check-pass?) // Test that we assume that universal types like `T` outlive the // function body. use std::cell::Cell; fn twice(value: T, mut f: F) where F: FnMut(Cell<&T>), { f(Cell::new(&value)); f(Cell::new(&value)); } fn generic(value: T) { // No error here: twice(value, |r| invoke(r)); } fn invoke<'a, T>(x: Cell<&'a T>) where T: 'a, { } fn main() {}