//@ run-pass // This is largely checking that we now accept code where temp values // are borrowing from the input parameters (the `foo` case below). // // Compare to run-pass/issue-23338-params-outlive-temps-of-body.rs // // (The `foo2` case is just for parity with the above test, which // shows what happens when you move the `y`-binding to the inside of // the inner block.) use std::cell::RefCell; fn foo(x: RefCell) -> String { x.borrow().clone() } fn foo2(x: RefCell) -> String { let y = x; let ret = { y.borrow().clone() }; ret } pub fn main() { let r = RefCell::new(format!("data")); assert_eq!(foo(r), "data"); let r = RefCell::new(format!("data")); assert_eq!(foo2(r), "data"); }