fn main() { let x = 3; // Here, the variable `p` gets inferred to a type with a lifetime // of the loop body. The regionck then determines that this type // is invalid. let mut p = &x; loop { let x = 1 + *p; p = &x; } //~^^ ERROR `x` does not live long enough }