error: expected one of `)`, `,`, `.`, `?`, or an operator, found `;`
  --> $DIR/token-error-correct-3.rs:15:35
   |
LL |             callback(path.as_ref();
   |                     -             ^ help: `)` may belong here
   |                     |
   |                     unclosed delimiter

error: expected one of `.`, `;`, `?`, `}`, or an operator, found `)`
  --> $DIR/token-error-correct-3.rs:18:9
   |
LL |             fs::create_dir_all(path.as_ref()).map(|()| true)
   |                                                             - expected one of `.`, `;`, `?`, `}`, or an operator
LL |         } else {
   |         ^ unexpected token

error[E0425]: cannot find function `is_directory` in this scope
  --> $DIR/token-error-correct-3.rs:13:13
   |
LL |         if !is_directory(path.as_ref()) {
   |             ^^^^^^^^^^^^ not found in this scope

error: aborting due to 3 previous errors

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