| // run-pass | |
| // compile-flags: -Z borrowck=mir | |
| use std::cell::Cell; | |
| const FIVE: Cell<i32> = Cell::new(5); | |
| #[inline(never)] | |
| fn tuple_field() -> &'static u32 { | |
| // This test is MIR-borrowck-only because the old borrowck | |
| // doesn't agree that borrows of "frozen" (i.e., without any | |
| // interior mutability) fields of non-frozen temporaries, | |
| // should be promoted, while MIR promotion does promote them. | |
| &(FIVE, 42).1 | |
| } | |
| fn main() { | |
| assert_eq!(tuple_field().to_string(), "42"); | |
| } |