error[E0373]: closure may outlive the current function, but it borrows `books`, which is owned by the current function
  --> $DIR/borrowck-escaping-closure-error-2.rs:11:14
   |
LL |     Box::new(|| books.push(4))
   |              ^^ ----- `books` is borrowed here
   |              |
   |              may outlive borrowed value `books`
   |
note: closure is returned here
  --> $DIR/borrowck-escaping-closure-error-2.rs:11:5
   |
LL |     Box::new(|| books.push(4))
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
help: to force the closure to take ownership of `books` (and any other referenced variables), use the `move` keyword
   |
LL |     Box::new(move || books.push(4))
   |              ++++

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0373`.