message: cargo-miri: reorder --target to after the user-defined commands
diff: @@ -584,27 +584,12 @@ fn phase_cargo_miri(mut args: env::Args) {
  MiriCommand::Run => "run",
  MiriCommand::Setup => return, // `cargo miri setup` stops here.
  };
  + let metadata = get_cargo_metadata();
  let mut cmd = cargo();
  cmd.arg(cargo_cmd);
  - // Make sure we know the build target, and cargo does, too.
  - // This is needed to make the `CARGO_TARGET_*_RUNNER` env var do something,
  - // and it later helps us detect which crates are proc-macro/build-script
  - // (host crates) and which crates are needed for the program itself.
  - let host = version_info().host;
  - let target = get_arg_flag_value("--target");
  - let target = if let Some(ref target) = target {
  - target
  - } else {
  - // No target given. Pick default and tell cargo about it.
  - cmd.arg("--target");
  - cmd.arg(&host);
  - &host
  - };
  -
  - let mut target_dir = None;
  -
  // Forward all arguments before `--` other than `--target-dir` and its value to Cargo.
  + let mut target_dir = None;
  for arg in ArgSplitFlagValue::new(&mut args, "--target-dir") {
  match arg {
  Ok(value) => {
  @@ -618,16 +603,27 @@ fn phase_cargo_miri(mut args: env::Args) {
  }
  }
  }
  -
  - let metadata = get_cargo_metadata();
  -
  // Detect the target directory if it's not specified via `--target-dir`.
  let target_dir = target_dir.get_or_insert_with(|| metadata.target_directory.clone());
  -
  // Set `--target-dir` to `miri` inside the original target directory.
  target_dir.push("miri");
  cmd.arg("--target-dir").arg(target_dir);
  + // Make sure we know the build target, and cargo does, too.
  + // This is needed to make the `CARGO_TARGET_*_RUNNER` env var do something,
  + // and it later helps us detect which crates are proc-macro/build-script
  + // (host crates) and which crates are needed for the program itself.
  + let host = version_info().host;
  + let target = get_arg_flag_value("--target");
  + let target = if let Some(ref target) = target {
  + target
  + } else {
  + // No target given. Pick default and tell cargo about it.
  + cmd.arg("--target");
  + cmd.arg(&host);
  + &host
  + };
  +
  // Forward all further arguments after `--` to cargo.
  cmd.arg("--").args(args);
  