| use std::cell::Cell; | |
| // this is overly conservative. The reset to `None` should clear `a` of all qualifications | |
| // while we could fix this, it would be inconsistent with `qualif_overwrite_2.rs`. | |
| // We can fix this properly in the future by allowing constants that do not depend on generics | |
| // to be checked by an analysis on the final value instead of looking at the body. | |
| const FOO: &Option<Cell<usize>> = { | |
| let mut a = Some(Cell::new(0)); | |
| a = None; // sets `qualif(a)` to `qualif(a) | qualif(None)` | |
| &{a} //~ ERROR interior mutable shared borrows of temporaries | |
| }; | |
| fn main() {} |