Why does the compiler tell me to consider using a `let` binding\" when I already am?
What is my error and how to fix it? fn get_m() -> Vec<i8> { vec![1, 2, 3] } fn main() { let mut vals = get_m().iter().peekable(); println!("Saw a {:?}", vals.peek()); } ( playground ) The compiler's error suggests "consider using a let binding" — but I already am: error[E0597]: borrowed value does not live long enough --> src/main.rs:6:45 | 6 | let mut vals = get_m().iter().peekable(); | ------- ^ temporary value dropped here while still borrowed | | | temporary value created here 7 | println!("Saw a {:?}", vals.peek()); 8 | } | - temporary value needs to live until here | = note: consider