message: Drop files explicitly when closing them
diff: @@ -143,7 +143,13 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
  let fd = this.read_scalar(fd_op)?.to_i32()?;
  if let Some(handle) = this.machine.file_handler.handles.remove(&fd) {
  - this.try_unwrap_io_result(handle.file.sync_all().map(|_| 0i32))
  + // `File::sync_all` does the checks that are done when closing a file. We do this to
  + // to handle possible errors correctly.
  + let result = this.try_unwrap_io_result(handle.file.sync_all().map(|_| 0i32));
  + // Now we actually drop the handle.
  + drop(handle);
  + // And return the result.
  + result
  } else {
  this.handle_not_found()
  }
  