// run-pass #![allow(unused_assignments)] #![allow(unused_variables)] // Check that the type checker permits us to reassign `z` which // started out with a longer lifetime and was reassigned to a shorter // one (it should infer to be the intersection). // pretty-expanded FIXME #23616 fn foo(x: &isize) { let a = 1; let mut z = x; z = &a; } pub fn main() { foo(&1); }