diff --git a/benches/benchsuite/benches/global_cache_tracker.rs b/benches/benchsuite/benches/global_cache_tracker.rs
index f879b07..2342546 100644
--- a/benches/benchsuite/benches/global_cache_tracker.rs
+++ b/benches/benchsuite/benches/global_cache_tracker.rs
@@ -1,10 +1,10 @@
 //! Benchmarks for the global cache tracker.
 
 use cargo::core::global_cache_tracker::{self, DeferredGlobalLastUse, GlobalCacheTracker};
+use cargo::util::GlobalContext;
 use cargo::util::cache_lock::CacheLockMode;
 use cargo::util::interning::InternedString;
-use cargo::util::GlobalContext;
-use criterion::{criterion_group, criterion_main, Criterion};
+use criterion::{Criterion, criterion_group, criterion_main};
 use std::fs;
 use std::path::{Path, PathBuf};
 
diff --git a/benches/benchsuite/benches/resolve.rs b/benches/benchsuite/benches/resolve.rs
index d798dd6..5190bb2 100644
--- a/benches/benchsuite/benches/resolve.rs
+++ b/benches/benchsuite/benches/resolve.rs
@@ -1,11 +1,11 @@
 use benchsuite::fixtures;
+use cargo::GlobalContext;
 use cargo::core::compiler::{CompileKind, RustcTargetData};
 use cargo::core::resolver::features::{FeatureOpts, FeatureResolver};
 use cargo::core::resolver::{CliFeatures, ForceAllTargets, HasDevUnits, ResolveBehavior};
 use cargo::core::{PackageIdSpec, Workspace};
 use cargo::ops::WorkspaceResolve;
-use cargo::GlobalContext;
-use criterion::{criterion_group, criterion_main, Criterion};
+use criterion::{Criterion, criterion_group, criterion_main};
 use std::path::Path;
 
 struct ResolveInfo<'gctx> {
diff --git a/benches/benchsuite/benches/workspace_initialization.rs b/benches/benchsuite/benches/workspace_initialization.rs
index b94539f..5a210b4 100644
--- a/benches/benchsuite/benches/workspace_initialization.rs
+++ b/benches/benchsuite/benches/workspace_initialization.rs
@@ -1,6 +1,6 @@
 use benchsuite::fixtures;
 use cargo::core::Workspace;
-use criterion::{criterion_group, criterion_main, Criterion};
+use criterion::{Criterion, criterion_group, criterion_main};
 
 fn workspace_initialization(c: &mut Criterion) {
     let fixtures = fixtures!();
diff --git a/benches/benchsuite/src/bin/capture-last-use.rs b/benches/benchsuite/src/bin/capture-last-use.rs
index d2079cd..4e4bf41 100644
--- a/benches/benchsuite/src/bin/capture-last-use.rs
+++ b/benches/benchsuite/src/bin/capture-last-use.rs
@@ -12,9 +12,9 @@
 //! The database is kept in git. It usually shouldn't need to be re-generated
 //! unless there is a change in the schema or the benchmark.
 
+use cargo::GlobalContext;
 use cargo::core::global_cache_tracker::{self, DeferredGlobalLastUse, GlobalCacheTracker};
 use cargo::util::cache_lock::CacheLockMode;
-use cargo::GlobalContext;
 use rand::prelude::*;
 use std::collections::HashMap;
 use std::fs;
diff --git a/crates/cargo-platform/src/cfg.rs b/crates/cargo-platform/src/cfg.rs
index 5928e4c..6b87fd9 100644
--- a/crates/cargo-platform/src/cfg.rs
+++ b/crates/cargo-platform/src/cfg.rs
@@ -261,11 +261,11 @@
                                     expected: "a string",
                                     found: t.classify(),
                                 },
-                            ))
+                            ));
                         }
                         Some(Err(e)) => return Err(e),
                         None => {
-                            return Err(ParseError::new(self.t.orig, IncompleteExpr("a string")))
+                            return Err(ParseError::new(self.t.orig, IncompleteExpr("a string")));
                         }
                     };
                     Cfg::KeyPair(
diff --git a/crates/cargo-test-support/src/compare.rs b/crates/cargo-test-support/src/compare.rs
index b8b5548..f1f3e4c 100644
--- a/crates/cargo-test-support/src/compare.rs
+++ b/crates/cargo-test-support/src/compare.rs
@@ -44,7 +44,7 @@
 use crate::cross_compile::try_alternate;
 use crate::paths;
 use crate::rustc_host;
-use anyhow::{bail, Result};
+use anyhow::{Result, bail};
 use snapbox::Data;
 use snapbox::IntoData;
 use std::fmt;
diff --git a/crates/cargo-test-support/src/containers.rs b/crates/cargo-test-support/src/containers.rs
index d0277d0..4ebbec9 100644
--- a/crates/cargo-test-support/src/containers.rs
+++ b/crates/cargo-test-support/src/containers.rs
@@ -12,8 +12,8 @@
 use std::io::Read;
 use std::path::PathBuf;
 use std::process::Command;
-use std::sync::atomic::{AtomicUsize, Ordering};
 use std::sync::Mutex;
+use std::sync::atomic::{AtomicUsize, Ordering};
 use tar::Header;
 
 /// A builder for configuring a container to run.
diff --git a/crates/cargo-test-support/src/git.rs b/crates/cargo-test-support/src/git.rs
index 803e4da..d082629 100644
--- a/crates/cargo-test-support/src/git.rs
+++ b/crates/cargo-test-support/src/git.rs
@@ -40,7 +40,7 @@
 //! tags), you can use `git2::Repository::open()` to open the repository and then
 //! use some of the helper functions in this file to interact with the repository.
 
-use crate::{paths::CargoPathExt, project, Project, ProjectBuilder, SymlinkBuilder};
+use crate::{Project, ProjectBuilder, SymlinkBuilder, paths::CargoPathExt, project};
 use std::fs;
 use std::path::{Path, PathBuf};
 use std::sync::Once;
@@ -146,7 +146,7 @@
 
 fn default_search_path() {
     use crate::paths::global_root;
-    use git2::{opts::set_search_path, ConfigLevel};
+    use git2::{ConfigLevel, opts::set_search_path};
 
     static INIT: Once = Once::new();
     INIT.call_once(|| unsafe {
diff --git a/crates/cargo-test-support/src/lib.rs b/crates/cargo-test-support/src/lib.rs
index 2c8c2c6..ef593b2 100644
--- a/crates/cargo-test-support/src/lib.rs
+++ b/crates/cargo-test-support/src/lib.rs
@@ -54,8 +54,8 @@
 use std::thread::JoinHandle;
 use std::time::{self, Duration};
 
-use anyhow::{bail, Result};
-use cargo_util::{is_ci, ProcessError};
+use anyhow::{Result, bail};
+use cargo_util::{ProcessError, is_ci};
 use snapbox::IntoData as _;
 use url::Url;
 
@@ -112,11 +112,11 @@
 pub mod registry;
 
 pub mod prelude {
-    pub use crate::cargo_test;
-    pub use crate::paths::CargoPathExt;
     pub use crate::ArgLineCommandExt;
     pub use crate::ChannelChangerCommandExt;
     pub use crate::TestEnvCommandExt;
+    pub use crate::cargo_test;
+    pub use crate::paths::CargoPathExt;
     pub use snapbox::IntoData;
 }
 
diff --git a/crates/cargo-test-support/src/paths.rs b/crates/cargo-test-support/src/paths.rs
index 17fe861..cc6119b 100644
--- a/crates/cargo-test-support/src/paths.rs
+++ b/crates/cargo-test-support/src/paths.rs
@@ -8,9 +8,9 @@
 use std::io::{self, ErrorKind};
 use std::path::{Path, PathBuf};
 use std::process::Command;
-use std::sync::atomic::{AtomicUsize, Ordering};
 use std::sync::Mutex;
 use std::sync::OnceLock;
+use std::sync::atomic::{AtomicUsize, Ordering};
 
 static CARGO_INTEGRATION_TEST_DIR: &str = "cit";
 
diff --git a/crates/cargo-test-support/src/publish.rs b/crates/cargo-test-support/src/publish.rs
index bd967a5..b538615 100644
--- a/crates/cargo-test-support/src/publish.rs
+++ b/crates/cargo-test-support/src/publish.rs
@@ -35,13 +35,13 @@
 //! ```
 
 use crate::compare::InMemoryDir;
-use crate::registry::{self, alt_api_path, FeatureMap};
+use crate::registry::{self, FeatureMap, alt_api_path};
 use flate2::read::GzDecoder;
 use snapbox::prelude::*;
 use std::collections::HashSet;
 use std::fs;
 use std::fs::File;
-use std::io::{self, prelude::*, SeekFrom};
+use std::io::{self, SeekFrom, prelude::*};
 use std::path::Path;
 use tar::Archive;
 
diff --git a/crates/cargo-test-support/src/registry.rs b/crates/cargo-test-support/src/registry.rs
index 54f3ff7..afcf3f7 100644
--- a/crates/cargo-test-support/src/registry.rs
+++ b/crates/cargo-test-support/src/registry.rs
@@ -45,10 +45,10 @@
 use crate::git::repo;
 use crate::paths;
 use crate::publish::{create_index_line, write_to_index};
-use cargo_util::paths::append;
 use cargo_util::Sha256;
-use flate2::write::GzEncoder;
+use cargo_util::paths::append;
 use flate2::Compression;
+use flate2::write::GzEncoder;
 use pasetors::keys::{AsymmetricPublicKey, AsymmetricSecretKey};
 use pasetors::paserk::FormatAsPaserk;
 use pasetors::token::UntrustedToken;
diff --git a/crates/cargo-util-schemas/src/manifest/mod.rs b/crates/cargo-util-schemas/src/manifest/mod.rs
index 165228d..bca8d15 100644
--- a/crates/cargo-util-schemas/src/manifest/mod.rs
+++ b/crates/cargo-util-schemas/src/manifest/mod.rs
@@ -1151,7 +1151,7 @@
                         return Err(serde_untagged::de::Error::invalid_value(
                             Unexpected::Signed(value),
                             &expecting,
-                        ))
+                        ));
                     }
                 };
                 Ok(debuginfo)
@@ -1167,7 +1167,7 @@
                         return Err(serde_untagged::de::Error::invalid_value(
                             Unexpected::Str(value),
                             &expecting,
-                        ))
+                        ));
                     }
                 };
                 Ok(debuginfo)
diff --git a/crates/cargo-util/src/lib.rs b/crates/cargo-util/src/lib.rs
index 0734118..0994464 100644
--- a/crates/cargo-util/src/lib.rs
+++ b/crates/cargo-util/src/lib.rs
@@ -9,7 +9,7 @@
 pub use self::read2::read2;
 pub use du::du;
 pub use process_builder::ProcessBuilder;
-pub use process_error::{exit_status_to_string, is_simple_exit_code, ProcessError};
+pub use process_error::{ProcessError, exit_status_to_string, is_simple_exit_code};
 pub use sha256::Sha256;
 
 mod du;
diff --git a/crates/cargo-util/src/paths.rs b/crates/cargo-util/src/paths.rs
index dd70861..51f0390 100644
--- a/crates/cargo-util/src/paths.rs
+++ b/crates/cargo-util/src/paths.rs
@@ -825,7 +825,7 @@
         use std::iter::once;
         use std::os::windows::prelude::OsStrExt;
         use windows_sys::Win32::Storage::FileSystem::{
-            GetFileAttributesW, SetFileAttributesW, FILE_ATTRIBUTE_NOT_CONTENT_INDEXED,
+            FILE_ATTRIBUTE_NOT_CONTENT_INDEXED, GetFileAttributesW, SetFileAttributesW,
         };
 
         let path: Vec<u16> = path.as_os_str().encode_wide().chain(once(0)).collect();
diff --git a/crates/cargo-util/src/process_builder.rs b/crates/cargo-util/src/process_builder.rs
index 18329e9..0e1236c 100644
--- a/crates/cargo-util/src/process_builder.rs
+++ b/crates/cargo-util/src/process_builder.rs
@@ -1,7 +1,7 @@
 use crate::process_error::ProcessError;
 use crate::read2;
 
-use anyhow::{bail, Context, Result};
+use anyhow::{Context, Result, bail};
 use jobserver::Client;
 use shell_escape::escape;
 use tempfile::NamedTempFile;
@@ -564,7 +564,7 @@
 
 #[cfg(unix)]
 mod imp {
-    use super::{close_tempfile_and_log_error, debug_force_argfile, ProcessBuilder, ProcessError};
+    use super::{ProcessBuilder, ProcessError, close_tempfile_and_log_error, debug_force_argfile};
     use anyhow::Result;
     use std::io;
     use std::os::unix::process::CommandExt;
@@ -606,9 +606,9 @@
     use super::{ProcessBuilder, ProcessError};
     use anyhow::Result;
     use std::io;
-    use windows_sys::core::BOOL;
     use windows_sys::Win32::Foundation::{FALSE, TRUE};
     use windows_sys::Win32::System::Console::SetConsoleCtrlHandler;
+    use windows_sys::core::BOOL;
 
     unsafe extern "system" fn ctrlc_handler(_: u32) -> BOOL {
         // Do nothing; let the child process handle it.
diff --git a/crates/cargo-util/src/read2.rs b/crates/cargo-util/src/read2.rs
index 2e6b66a..8c2e070 100644
--- a/crates/cargo-util/src/read2.rs
+++ b/crates/cargo-util/src/read2.rs
@@ -2,7 +2,7 @@
 
 #[cfg(unix)]
 mod imp {
-    use libc::{c_int, fcntl, F_GETFL, F_SETFL, O_NONBLOCK};
+    use libc::{F_GETFL, F_SETFL, O_NONBLOCK, c_int, fcntl};
     use std::io;
     use std::io::prelude::*;
     use std::mem;
@@ -88,9 +88,9 @@
     use std::process::{ChildStderr, ChildStdout};
     use std::slice;
 
+    use miow::Overlapped;
     use miow::iocp::{CompletionPort, CompletionStatus};
     use miow::pipe::NamedPipe;
-    use miow::Overlapped;
     use windows_sys::Win32::Foundation::ERROR_BROKEN_PIPE;
 
     struct Pipe<'a> {
diff --git a/crates/crates-io/lib.rs b/crates/crates-io/lib.rs
index a208cf4..ade5937 100644
--- a/crates/crates-io/lib.rs
+++ b/crates/crates-io/lib.rs
@@ -8,7 +8,7 @@
 use std::time::Instant;
 
 use curl::easy::{Easy, List};
-use percent_encoding::{percent_encode, NON_ALPHANUMERIC};
+use percent_encoding::{NON_ALPHANUMERIC, percent_encode};
 use serde::{Deserialize, Serialize};
 use url::Url;
 
diff --git a/crates/home/src/windows.rs b/crates/home/src/windows.rs
index e03cb31..5746797 100644
--- a/crates/home/src/windows.rs
+++ b/crates/home/src/windows.rs
@@ -7,7 +7,7 @@
 
 use windows_sys::Win32::Foundation::S_OK;
 use windows_sys::Win32::System::Com::CoTaskMemFree;
-use windows_sys::Win32::UI::Shell::{FOLDERID_Profile, SHGetKnownFolderPath, KF_FLAG_DONT_VERIFY};
+use windows_sys::Win32::UI::Shell::{FOLDERID_Profile, KF_FLAG_DONT_VERIFY, SHGetKnownFolderPath};
 
 pub fn home_dir_inner() -> Option<PathBuf> {
     env::var_os("USERPROFILE")
diff --git a/crates/mdman/src/format/man.rs b/crates/mdman/src/format/man.rs
index 8b8cb67..d59ea4c 100644
--- a/crates/mdman/src/format/man.rs
+++ b/crates/mdman/src/format/man.rs
@@ -1,8 +1,8 @@
 //! Man-page formatter.
 
-use crate::util::{header_text, parse_name_and_section};
 use crate::EventIter;
-use anyhow::{bail, Error};
+use crate::util::{header_text, parse_name_and_section};
+use anyhow::{Error, bail};
 use pulldown_cmark::{Alignment, Event, HeadingLevel, LinkType, Tag, TagEnd};
 use std::fmt::Write;
 use url::Url;
diff --git a/crates/mdman/src/format/md.rs b/crates/mdman/src/format/md.rs
index f821cdf..091e006 100644
--- a/crates/mdman/src/format/md.rs
+++ b/crates/mdman/src/format/md.rs
@@ -1,8 +1,8 @@
 //! Markdown formatter.
 
-use crate::util::unwrap;
 use crate::ManMap;
-use anyhow::{bail, format_err, Error};
+use crate::util::unwrap;
+use anyhow::{Error, bail, format_err};
 use std::fmt::Write;
 
 pub struct MdFormatter {
diff --git a/crates/mdman/src/format/text.rs b/crates/mdman/src/format/text.rs
index 7590fd2..0b5aea3 100644
--- a/crates/mdman/src/format/text.rs
+++ b/crates/mdman/src/format/text.rs
@@ -1,8 +1,8 @@
 //! Text formatter.
 
-use crate::util::{header_text, unwrap};
 use crate::EventIter;
-use anyhow::{bail, Error};
+use crate::util::{header_text, unwrap};
+use anyhow::{Error, bail};
 use pulldown_cmark::{Alignment, Event, HeadingLevel, LinkType, Tag, TagEnd};
 use std::fmt::Write;
 use std::mem;
diff --git a/crates/mdman/src/hbs.rs b/crates/mdman/src/hbs.rs
index ad9f5ff..9cdd604 100644
--- a/crates/mdman/src/hbs.rs
+++ b/crates/mdman/src/hbs.rs
@@ -5,8 +5,8 @@
 
 use anyhow::Error;
 use handlebars::{
-    handlebars_helper, Context, Decorator, DirectorySourceOptions, Handlebars, Helper, HelperDef,
-    HelperResult, Output, RenderContext, RenderError, RenderErrorReason, Renderable,
+    Context, Decorator, DirectorySourceOptions, Handlebars, Helper, HelperDef, HelperResult,
+    Output, RenderContext, RenderError, RenderErrorReason, Renderable, handlebars_helper,
 };
 
 use crate::format::Formatter;
diff --git a/crates/mdman/src/lib.rs b/crates/mdman/src/lib.rs
index 0b0e6e7..b597f6a 100644
--- a/crates/mdman/src/lib.rs
+++ b/crates/mdman/src/lib.rs
@@ -4,7 +4,7 @@
 //! > and not intended for external use (except as a transitive dependency). This
 //! > crate may make major changes to its APIs or be deprecated without warning.
 
-use anyhow::{bail, Context, Error};
+use anyhow::{Context, Error, bail};
 use pulldown_cmark::{CowStr, Event, LinkType, Options, Parser, Tag, TagEnd};
 use std::collections::HashMap;
 use std::fs;
diff --git a/crates/mdman/src/main.rs b/crates/mdman/src/main.rs
index 3c09bc4..a87ec3b 100644
--- a/crates/mdman/src/main.rs
+++ b/crates/mdman/src/main.rs
@@ -1,6 +1,6 @@
 #![allow(clippy::print_stderr)]
 
-use anyhow::{bail, format_err, Context, Error};
+use anyhow::{Context, Error, bail, format_err};
 use mdman::{Format, ManMap};
 use std::collections::HashMap;
 use std::path::{Path, PathBuf};
diff --git a/crates/mdman/src/util.rs b/crates/mdman/src/util.rs
index 0a23ce6..d90c27d 100644
--- a/crates/mdman/src/util.rs
+++ b/crates/mdman/src/util.rs
@@ -1,6 +1,6 @@
 ///! General utilities.
 use crate::EventIter;
-use anyhow::{bail, format_err, Context, Error};
+use anyhow::{Context, Error, bail, format_err};
 use pulldown_cmark::{CowStr, Event, TagEnd};
 
 /// Splits the text `foo(1)` into "foo" and `1`.
diff --git a/crates/resolver-tests/src/lib.rs b/crates/resolver-tests/src/lib.rs
index 3b0d2e8..d332e39 100644
--- a/crates/resolver-tests/src/lib.rs
+++ b/crates/resolver-tests/src/lib.rs
@@ -13,18 +13,18 @@
 use std::task::Poll;
 use std::time::Instant;
 
-use cargo::core::dependency::DepKind;
-use cargo::core::resolver::{self, ResolveOpts, VersionOrdering, VersionPreferences};
 use cargo::core::Resolve;
 use cargo::core::ResolveVersion;
 use cargo::core::SourceId;
+use cargo::core::dependency::DepKind;
+use cargo::core::resolver::{self, ResolveOpts, VersionOrdering, VersionPreferences};
 use cargo::core::{Dependency, PackageId, Registry, Summary};
-use cargo::sources::source::QueryKind;
 use cargo::sources::IndexSummary;
+use cargo::sources::source::QueryKind;
 use cargo::util::interning::InternedString;
 use cargo::util::{CargoResult, GlobalContext};
 
-use crate::helpers::{dep_req, dep_req_kind, pkg_dep, pkg_id, ToPkgId};
+use crate::helpers::{ToPkgId, dep_req, dep_req_kind, pkg_dep, pkg_id};
 use crate::sat::SatResolver;
 
 use proptest::collection::{btree_map, vec};
@@ -406,24 +406,24 @@
     #[test]
     fn meta_test_deep_pretty_print_registry() {
         assert_eq!(
-        &format!(
-            "{:?}",
-            PrettyPrintRegistry(vec![
-                pkg!(("foo", "1.0.1") => [dep_req("bar", "1")]),
-                pkg!(("foo", "1.0.0") => [dep_req("bar", "2")]),
-                pkg!(("foo", "2.0.0") => [dep_req("bar", "*")]),
-                pkg!(("bar", "1.0.0") => [dep_req("baz", "=1.0.2"),
+            &format!(
+                "{:?}",
+                PrettyPrintRegistry(vec![
+                    pkg!(("foo", "1.0.1") => [dep_req("bar", "1")]),
+                    pkg!(("foo", "1.0.0") => [dep_req("bar", "2")]),
+                    pkg!(("foo", "2.0.0") => [dep_req("bar", "*")]),
+                    pkg!(("bar", "1.0.0") => [dep_req("baz", "=1.0.2"),
                                           dep_req("other", "1")]),
-                pkg!(("bar", "2.0.0") => [dep_req("baz", "=1.0.1")]),
-                pkg!(("baz", "1.0.2") => [dep_req("other", "2")]),
-                pkg!(("baz", "1.0.1")),
-                pkg!(("cat", "1.0.2") => [dep_req_kind("other", "2", DepKind::Build)]),
-                pkg!(("cat", "1.0.3") => [dep_req_kind("other", "2", DepKind::Development)]),
-                pkg!(("dep_req", "1.0.0")),
-                pkg!(("dep_req", "2.0.0")),
-            ])
-        ),
-        "vec![pkg!((\"foo\", \"1.0.1\") => [dep_req(\"bar\", \"^1\"),]),\
+                    pkg!(("bar", "2.0.0") => [dep_req("baz", "=1.0.1")]),
+                    pkg!(("baz", "1.0.2") => [dep_req("other", "2")]),
+                    pkg!(("baz", "1.0.1")),
+                    pkg!(("cat", "1.0.2") => [dep_req_kind("other", "2", DepKind::Build)]),
+                    pkg!(("cat", "1.0.3") => [dep_req_kind("other", "2", DepKind::Development)]),
+                    pkg!(("dep_req", "1.0.0")),
+                    pkg!(("dep_req", "2.0.0")),
+                ])
+            ),
+            "vec![pkg!((\"foo\", \"1.0.1\") => [dep_req(\"bar\", \"^1\"),]),\
          pkg!((\"foo\", \"1.0.0\") => [dep_req(\"bar\", \"^2\"),]),\
          pkg!((\"foo\", \"2.0.0\") => [dep(\"bar\"),]),\
          pkg!((\"bar\", \"1.0.0\") => [dep_req(\"baz\", \"=1.0.2\"),dep_req(\"other\", \"^1\"),]),\
@@ -434,7 +434,7 @@
          pkg!((\"cat\", \"1.0.3\") => [dep_req_kind(\"other\", \"^2\", DepKind::Development, false),]),\
          pkg!((\"dep_req\", \"1.0.0\")),\
          pkg!((\"dep_req\", \"2.0.0\")),]"
-    )
+        )
     }
 
     /// This test is to test the generator to ensure
diff --git a/crates/resolver-tests/src/sat.rs b/crates/resolver-tests/src/sat.rs
index d67a1c2..3a0fd9e 100644
--- a/crates/resolver-tests/src/sat.rs
+++ b/crates/resolver-tests/src/sat.rs
@@ -4,7 +4,7 @@
 
 use cargo::core::dependency::DepKind;
 use cargo::core::{Dependency, FeatureMap, FeatureValue, PackageId, Summary};
-use cargo::util::interning::{InternedString, INTERNED_DEFAULT};
+use cargo::util::interning::{INTERNED_DEFAULT, InternedString};
 use cargo_platform::Platform;
 use varisat::ExtendFormula;
 
diff --git a/crates/resolver-tests/tests/proptests.rs b/crates/resolver-tests/tests/proptests.rs
index e2eb9a3..1dce3d4 100644
--- a/crates/resolver-tests/tests/proptests.rs
+++ b/crates/resolver-tests/tests/proptests.rs
@@ -4,10 +4,10 @@
 use cargo_util::is_ci;
 
 use resolver_tests::{
+    PrettyPrintRegistry,
     helpers::{dep_req, registry, remove_dep},
     registry_strategy, resolve, resolve_and_validated, resolve_with_global_context,
     sat::SatResolver,
-    PrettyPrintRegistry,
 };
 
 use proptest::prelude::*;
diff --git a/crates/resolver-tests/tests/pubgrub.rs b/crates/resolver-tests/tests/pubgrub.rs
index fec5a87..4d2f6a4 100644
--- a/crates/resolver-tests/tests/pubgrub.rs
+++ b/crates/resolver-tests/tests/pubgrub.rs
@@ -1,9 +1,9 @@
-use cargo::core::{dependency::DepKind, Dependency};
+use cargo::core::{Dependency, dependency::DepKind};
 
 use resolver_tests::{
     helpers::{
-        dep, dep_kind, dep_req, dep_req_kind, pkg, pkg_dep, pkg_dep_link, pkg_dep_with,
-        pkg_id_source, registry, ToDep,
+        ToDep, dep, dep_kind, dep_req, dep_req_kind, pkg, pkg_dep, pkg_dep_link, pkg_dep_with,
+        pkg_id_source, registry,
     },
     pkg, resolve, resolve_and_validated, resolve_and_validated_raw,
     sat::SatResolver,
diff --git a/crates/resolver-tests/tests/resolve.rs b/crates/resolver-tests/tests/resolve.rs
index 6654e3e..2ac4d29 100644
--- a/crates/resolver-tests/tests/resolve.rs
+++ b/crates/resolver-tests/tests/resolve.rs
@@ -1,11 +1,11 @@
-use cargo::core::dependency::DepKind;
 use cargo::core::Dependency;
+use cargo::core::dependency::DepKind;
 use cargo::util::GlobalContext;
 
 use resolver_tests::{
     helpers::{
-        assert_contains, assert_same, dep, dep_kind, dep_loc, dep_req, loc_names, names, pkg,
-        pkg_dep, pkg_dep_with, pkg_id, pkg_loc, registry, ToDep, ToPkgId,
+        ToDep, ToPkgId, assert_contains, assert_same, dep, dep_kind, dep_loc, dep_req, loc_names,
+        names, pkg, pkg_dep, pkg_dep_with, pkg_id, pkg_loc, registry,
     },
     pkg, resolve, resolve_with_global_context,
 };
diff --git a/crates/resolver-tests/tests/validated.rs b/crates/resolver-tests/tests/validated.rs
index 5eaccf2..f975068 100644
--- a/crates/resolver-tests/tests/validated.rs
+++ b/crates/resolver-tests/tests/validated.rs
@@ -1,9 +1,9 @@
-use cargo::core::{dependency::DepKind, Dependency};
+use cargo::core::{Dependency, dependency::DepKind};
 
 use resolver_tests::{
     helpers::{
-        dep, dep_kind, dep_platform, dep_req, dep_req_kind, dep_req_platform, pkg, pkg_dep,
-        pkg_dep_with, registry, ToDep,
+        ToDep, dep, dep_kind, dep_platform, dep_req, dep_req_kind, dep_req_platform, pkg, pkg_dep,
+        pkg_dep_with, registry,
     },
     pkg, resolve, resolve_and_validated,
     sat::SatResolver,
diff --git a/crates/rustfix/examples/fix-json.rs b/crates/rustfix/examples/fix-json.rs
index 93a8a55..e1ac1b5 100644
--- a/crates/rustfix/examples/fix-json.rs
+++ b/crates/rustfix/examples/fix-json.rs
@@ -1,6 +1,6 @@
 #![allow(clippy::print_stderr)]
 
-use std::io::{stdin, BufReader, Read};
+use std::io::{BufReader, Read, stdin};
 use std::{collections::HashMap, collections::HashSet, env, fs};
 
 use anyhow::Error;
diff --git a/crates/rustfix/src/lib.rs b/crates/rustfix/src/lib.rs
index ce72127..204b4d3 100644
--- a/crates/rustfix/src/lib.rs
+++ b/crates/rustfix/src/lib.rs
@@ -175,8 +175,8 @@
                 .spans
                 .iter()
                 .filter(|span| {
-                    use crate::diagnostics::Applicability::*;
                     use crate::Filter::*;
+                    use crate::diagnostics::Applicability::*;
 
                     match (filter, &span.suggestion_applicability) {
                         (MachineApplicableOnly, Some(MachineApplicable)) => true,
diff --git a/crates/rustfix/tests/parse_and_replace.rs b/crates/rustfix/tests/parse_and_replace.rs
index cb08f1c..f86ad1f 100644
--- a/crates/rustfix/tests/parse_and_replace.rs
+++ b/crates/rustfix/tests/parse_and_replace.rs
@@ -14,7 +14,7 @@
 
 #![allow(clippy::disallowed_methods, clippy::print_stdout, clippy::print_stderr)]
 
-use anyhow::{anyhow, Context, Error};
+use anyhow::{Context, Error, anyhow};
 use rustfix::apply_suggestions;
 use serde_json::Value;
 use snapbox::data::DataFormat;
diff --git a/crates/xtask-bump-check/src/xtask.rs b/crates/xtask-bump-check/src/xtask.rs
index dff0798..4251fe4 100644
--- a/crates/xtask-bump-check/src/xtask.rs
+++ b/crates/xtask-bump-check/src/xtask.rs
@@ -17,15 +17,15 @@
 use std::fs;
 use std::task;
 
-use cargo::core::dependency::Dependency;
+use cargo::CargoResult;
 use cargo::core::Package;
 use cargo::core::Registry;
 use cargo::core::SourceId;
 use cargo::core::Workspace;
+use cargo::core::dependency::Dependency;
 use cargo::sources::source::QueryKind;
 use cargo::util::cache_lock::CacheLockMode;
 use cargo::util::command_prelude::*;
-use cargo::CargoResult;
 use cargo_util::ProcessBuilder;
 
 const UPSTREAM_BRANCH: &str = "master";
diff --git a/crates/xtask-lint-docs/src/main.rs b/crates/xtask-lint-docs/src/main.rs
index 79862d6..5fcd645 100644
--- a/crates/xtask-lint-docs/src/main.rs
+++ b/crates/xtask-lint-docs/src/main.rs
@@ -1,4 +1,4 @@
-use cargo::util::command_prelude::{flag, ArgMatchesExt};
+use cargo::util::command_prelude::{ArgMatchesExt, flag};
 use cargo::util::lints::{Lint, LintLevel};
 use itertools::Itertools;
 use std::fmt::Write;
diff --git a/credential/cargo-credential-libsecret/src/lib.rs b/credential/cargo-credential-libsecret/src/lib.rs
index 684f0f8..8eb06d6 100644
--- a/credential/cargo-credential-libsecret/src/lib.rs
+++ b/credential/cargo-credential-libsecret/src/lib.rs
@@ -8,8 +8,8 @@
 
     use anyhow::Context;
     use cargo_credential::{
-        read_token, Action, CacheControl, Credential, CredentialResponse, Error, RegistryInfo,
-        Secret,
+        Action, CacheControl, Credential, CredentialResponse, Error, RegistryInfo, Secret,
+        read_token,
     };
     use libloading::{Library, Symbol};
     use std::ffi::{CStr, CString};
diff --git a/credential/cargo-credential-macos-keychain/src/lib.rs b/credential/cargo-credential-macos-keychain/src/lib.rs
index f6d253c..7fb5831 100644
--- a/credential/cargo-credential-macos-keychain/src/lib.rs
+++ b/credential/cargo-credential-macos-keychain/src/lib.rs
@@ -9,7 +9,7 @@
 #[cfg(target_os = "macos")]
 mod macos {
     use cargo_credential::{
-        read_token, Action, CacheControl, Credential, CredentialResponse, Error, RegistryInfo,
+        Action, CacheControl, Credential, CredentialResponse, Error, RegistryInfo, read_token,
     };
     use security_framework::os::macos::keychain::SecKeychain;
 
diff --git a/credential/cargo-credential-wincred/src/lib.rs b/credential/cargo-credential-wincred/src/lib.rs
index eb6ea39..d53b1a5 100644
--- a/credential/cargo-credential-wincred/src/lib.rs
+++ b/credential/cargo-credential-wincred/src/lib.rs
@@ -6,22 +6,22 @@
 
 #[cfg(windows)]
 mod win {
-    use cargo_credential::{read_token, Action, CacheControl, CredentialResponse, RegistryInfo};
+    use cargo_credential::{Action, CacheControl, CredentialResponse, RegistryInfo, read_token};
     use cargo_credential::{Credential, Error};
     use std::ffi::OsStr;
 
     use std::os::windows::ffi::OsStrExt;
 
-    use windows_sys::core::PWSTR;
     use windows_sys::Win32::Foundation::ERROR_NOT_FOUND;
     use windows_sys::Win32::Foundation::FILETIME;
     use windows_sys::Win32::Foundation::TRUE;
-    use windows_sys::Win32::Security::Credentials::CredReadW;
-    use windows_sys::Win32::Security::Credentials::CredWriteW;
-    use windows_sys::Win32::Security::Credentials::CREDENTIALW;
     use windows_sys::Win32::Security::Credentials::CRED_PERSIST_LOCAL_MACHINE;
     use windows_sys::Win32::Security::Credentials::CRED_TYPE_GENERIC;
+    use windows_sys::Win32::Security::Credentials::CREDENTIALW;
+    use windows_sys::Win32::Security::Credentials::CredReadW;
+    use windows_sys::Win32::Security::Credentials::CredWriteW;
     use windows_sys::Win32::Security::Credentials::{CredDeleteW, CredFree};
+    use windows_sys::core::PWSTR;
 
     pub struct WindowsCredential;
 
diff --git a/credential/cargo-credential/src/error.rs b/credential/cargo-credential/src/error.rs
index 8c5fe19..7dbb3d3 100644
--- a/credential/cargo-credential/src/error.rs
+++ b/credential/cargo-credential/src/error.rs
@@ -102,7 +102,7 @@
     use std::error::Error as StdError;
     use std::ops::Deref;
 
-    use serde::{ser::SerializeStruct, Deserialize, Deserializer, Serializer};
+    use serde::{Deserialize, Deserializer, Serializer, ser::SerializeStruct};
 
     use crate::error::StringTypedError;
 
diff --git a/credential/cargo-credential/src/stdio.rs b/credential/cargo-credential/src/stdio.rs
index 5aa2e4e..8ca0e7d 100644
--- a/credential/cargo-credential/src/stdio.rs
+++ b/credential/cargo-credential/src/stdio.rs
@@ -28,7 +28,7 @@
     use windows_sys::Win32::{
         Foundation::{HANDLE, INVALID_HANDLE_VALUE},
         System::Console::{
-            GetStdHandle, SetStdHandle, STD_HANDLE, STD_INPUT_HANDLE, STD_OUTPUT_HANDLE,
+            GetStdHandle, STD_HANDLE, STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, SetStdHandle,
         },
     };
     pub const OUT_DEVICE: &str = "CONOUT$";
@@ -82,7 +82,7 @@
 #[cfg(unix)]
 mod imp {
     use super::Stdio;
-    use libc::{close, dup, dup2, STDIN_FILENO, STDOUT_FILENO};
+    use libc::{STDIN_FILENO, STDOUT_FILENO, close, dup, dup2};
     use std::{fs::File, io::Error, os::fd::AsRawFd};
     pub const IN_DEVICE: &str = "/dev/tty";
     pub const OUT_DEVICE: &str = "/dev/tty";
@@ -138,8 +138,8 @@
     use std::fs::OpenOptions;
     use std::io::{Seek, Write};
 
-    use super::imp::ReplacementGuard;
     use super::Stdio;
+    use super::imp::ReplacementGuard;
 
     #[test]
     fn stdin() {
diff --git a/rustfmt.toml b/rustfmt.toml
new file mode 100644
index 0000000..3501136
--- /dev/null
+++ b/rustfmt.toml
@@ -0,0 +1 @@
+style_edition = "2024"
diff --git a/src/bin/cargo/cli.rs b/src/bin/cargo/cli.rs
index 188fafd..94dc55d 100644
--- a/src/bin/cargo/cli.rs
+++ b/src/bin/cargo/cli.rs
@@ -1,7 +1,7 @@
-use anyhow::{anyhow, Context as _};
-use cargo::core::{features, CliUnstable};
+use anyhow::{Context as _, anyhow};
+use cargo::core::{CliUnstable, features};
 use cargo::util::context::TermConfig;
-use cargo::{drop_print, drop_println, CargoResult};
+use cargo::{CargoResult, drop_print, drop_println};
 use clap::builder::UnknownArgumentValueParser;
 use itertools::Itertools;
 use std::collections::HashMap;
@@ -556,9 +556,13 @@
     };
 
     let usage = if is_rustup() {
-        color_print::cstr!("<cyan,bold>cargo</> <cyan>[+toolchain] [OPTIONS] [COMMAND]</>\n       <cyan,bold>cargo</> <cyan>[+toolchain] [OPTIONS]</> <cyan,bold>-Zscript</> <cyan><<MANIFEST_RS>> [ARGS]...</>")
+        color_print::cstr!(
+            "<cyan,bold>cargo</> <cyan>[+toolchain] [OPTIONS] [COMMAND]</>\n       <cyan,bold>cargo</> <cyan>[+toolchain] [OPTIONS]</> <cyan,bold>-Zscript</> <cyan><<MANIFEST_RS>> [ARGS]...</>"
+        )
     } else {
-        color_print::cstr!("<cyan,bold>cargo</> <cyan>[OPTIONS] [COMMAND]</>\n       <cyan,bold>cargo</> <cyan>[OPTIONS]</> <cyan,bold>-Zscript</> <cyan><<MANIFEST_RS>> [ARGS]...</>")
+        color_print::cstr!(
+            "<cyan,bold>cargo</> <cyan>[OPTIONS] [COMMAND]</>\n       <cyan,bold>cargo</> <cyan>[OPTIONS]</> <cyan,bold>-Zscript</> <cyan><<MANIFEST_RS>> [ARGS]...</>"
+        )
     };
 
     let styles = {
diff --git a/src/bin/cargo/commands/add.rs b/src/bin/cargo/commands/add.rs
index 5ccd7b1..166e56d 100644
--- a/src/bin/cargo/commands/add.rs
+++ b/src/bin/cargo/commands/add.rs
@@ -3,15 +3,15 @@
 use indexmap::IndexMap;
 use indexmap::IndexSet;
 
-use cargo::core::dependency::DepKind;
+use cargo::CargoResult;
 use cargo::core::FeatureValue;
-use cargo::ops::cargo_add::add;
+use cargo::core::dependency::DepKind;
 use cargo::ops::cargo_add::AddOptions;
 use cargo::ops::cargo_add::DepOp;
+use cargo::ops::cargo_add::add;
 use cargo::ops::resolve_ws;
 use cargo::util::command_prelude::*;
 use cargo::util::toml_mut::manifest::DepTable;
-use cargo::CargoResult;
 
 pub fn cli() -> Command {
     clap::Command::new("add")
@@ -300,7 +300,10 @@
                             )
                         })
                         .collect::<Vec<_>>();
-                    anyhow::bail!("feature `{feature}` must be qualified by the dependency it's being activated for, like {}", candidates.join(", "));
+                    anyhow::bail!(
+                        "feature `{feature}` must be qualified by the dependency it's being activated for, like {}",
+                        candidates.join(", ")
+                    );
                 }
                 crates
                     .first_mut()
@@ -318,7 +321,9 @@
                 ..
             } => {
                 if infer_crate_name {
-                    anyhow::bail!("`{feature}` is unsupported when inferring the crate name, use `{dep_feature}`");
+                    anyhow::bail!(
+                        "`{feature}` is unsupported when inferring the crate name, use `{dep_feature}`"
+                    );
                 }
                 if dep_feature.contains('/') {
                     anyhow::bail!("multiple slashes in feature `{feature}` is not allowed");
diff --git a/src/bin/cargo/commands/clean.rs b/src/bin/cargo/commands/clean.rs
index d9414b4..c179238 100644
--- a/src/bin/cargo/commands/clean.rs
+++ b/src/bin/cargo/commands/clean.rs
@@ -1,7 +1,7 @@
 use crate::command_prelude::*;
 use crate::util::cache_lock::CacheLockMode;
 use cargo::core::gc::Gc;
-use cargo::core::gc::{parse_human_size, parse_time_span, GcOpts};
+use cargo::core::gc::{GcOpts, parse_human_size, parse_time_span};
 use cargo::core::global_cache_tracker::GlobalCacheTracker;
 use cargo::ops::CleanContext;
 use cargo::ops::{self, CleanOptions};
diff --git a/src/bin/cargo/commands/install.rs b/src/bin/cargo/commands/install.rs
index 7619196..30ec888 100644
--- a/src/bin/cargo/commands/install.rs
+++ b/src/bin/cargo/commands/install.rs
@@ -3,11 +3,11 @@
 use anyhow::anyhow;
 use anyhow::bail;
 use anyhow::format_err;
+use cargo::CargoResult;
 use cargo::core::{GitReference, SourceId, Workspace};
 use cargo::ops;
 use cargo::util::IntoUrl;
 use cargo::util::VersionExt;
-use cargo::CargoResult;
 use cargo_util_schemas::manifest::PackageName;
 use itertools::Itertools;
 use semver::VersionReq;
diff --git a/src/bin/cargo/commands/locate_project.rs b/src/bin/cargo/commands/locate_project.rs
index 439f2d5..9272965 100644
--- a/src/bin/cargo/commands/locate_project.rs
+++ b/src/bin/cargo/commands/locate_project.rs
@@ -1,6 +1,6 @@
 use crate::command_prelude::*;
 use anyhow::bail;
-use cargo::{drop_println, CargoResult};
+use cargo::{CargoResult, drop_println};
 use serde::Serialize;
 
 pub fn cli() -> Command {
diff --git a/src/bin/cargo/commands/remove.rs b/src/bin/cargo/commands/remove.rs
index c3f7cc2..f5e2237 100644
--- a/src/bin/cargo/commands/remove.rs
+++ b/src/bin/cargo/commands/remove.rs
@@ -1,10 +1,11 @@
-use cargo::core::dependency::DepKind;
+use cargo::CargoResult;
 use cargo::core::PackageIdSpec;
 use cargo::core::PackageIdSpecQuery;
 use cargo::core::Resolve;
 use cargo::core::Workspace;
-use cargo::ops::cargo_remove::remove;
+use cargo::core::dependency::DepKind;
 use cargo::ops::cargo_remove::RemoveOptions;
+use cargo::ops::cargo_remove::remove;
 use cargo::ops::resolve_ws;
 use cargo::util::command_prelude::*;
 use cargo::util::print_available_packages;
@@ -13,7 +14,6 @@
 use cargo::util::toml_mut::dependency::Source;
 use cargo::util::toml_mut::manifest::DepTable;
 use cargo::util::toml_mut::manifest::LocalManifest;
-use cargo::CargoResult;
 
 pub fn cli() -> clap::Command {
     clap::Command::new("remove")
diff --git a/src/bin/cargo/commands/run.rs b/src/bin/cargo/commands/run.rs
index d467951..2f1ce6a 100644
--- a/src/bin/cargo/commands/run.rs
+++ b/src/bin/cargo/commands/run.rs
@@ -121,7 +121,9 @@
                         args.into_iter().map(|os| os.to_string_lossy()).join(" ")
                     )
                 };
-                format!("\nhelp: there is a command with a similar name: `{suggested_command} {actual_args}{args}`")
+                format!(
+                    "\nhelp: there is a command with a similar name: `{suggested_command} {actual_args}{args}`"
+                )
             } else {
                 "".to_owned()
             };
@@ -153,12 +155,16 @@
                         args.into_iter().map(|os| os.to_string_lossy()).join(" ")
                     )
                 };
-                format!("\nhelp: there is a command with a similar name: `{suggested_command} {actual_args}{args}`")
+                format!(
+                    "\nhelp: there is a command with a similar name: `{suggested_command} {actual_args}{args}`"
+                )
             } else {
                 "".to_owned()
             };
             let suggested_script = if let Some(suggested_script) = suggested_script(cmd) {
-                format!("\nhelp: there is a script with a similar name: `{suggested_script}` (requires `-Zscript`)")
+                format!(
+                    "\nhelp: there is a script with a similar name: `{suggested_script}` (requires `-Zscript`)"
+                )
             } else {
                 "".to_owned()
             };
diff --git a/src/bin/cargo/commands/tree.rs b/src/bin/cargo/commands/tree.rs
index 98b21db..367dfd9 100644
--- a/src/bin/cargo/commands/tree.rs
+++ b/src/bin/cargo/commands/tree.rs
@@ -2,10 +2,10 @@
 use crate::command_prelude::*;
 use anyhow::{bail, format_err};
 use cargo::core::dependency::DepKind;
-use cargo::ops::tree::{self, DisplayDepth, EdgeKind};
 use cargo::ops::Packages;
-use cargo::util::print_available_packages;
+use cargo::ops::tree::{self, DisplayDepth, EdgeKind};
 use cargo::util::CargoResult;
+use cargo::util::print_available_packages;
 use std::collections::HashSet;
 use std::str::FromStr;
 
diff --git a/src/bin/cargo/main.rs b/src/bin/cargo/main.rs
index 5af0bf0..20ebb8d 100644
--- a/src/bin/cargo/main.rs
+++ b/src/bin/cargo/main.rs
@@ -4,7 +4,7 @@
 use cargo::core::shell::Shell;
 use cargo::util::network::http::http_handle;
 use cargo::util::network::http::needs_custom_http_transport;
-use cargo::util::{self, closest_msg, command_prelude, CargoResult};
+use cargo::util::{self, CargoResult, closest_msg, command_prelude};
 use cargo_util::{ProcessBuilder, ProcessError};
 use cargo_util_schemas::manifest::StringOrVec;
 use std::collections::BTreeMap;
@@ -278,15 +278,16 @@
     let command = match path {
         Some(command) => command,
         None => {
-            let script_suggestion =
-                if gctx.cli_unstable().script && std::path::Path::new(cmd).is_file() {
-                    let sep = std::path::MAIN_SEPARATOR;
-                    format!(
+            let script_suggestion = if gctx.cli_unstable().script
+                && std::path::Path::new(cmd).is_file()
+            {
+                let sep = std::path::MAIN_SEPARATOR;
+                format!(
                     "\nhelp: To run the file `{cmd}`, provide a relative path like `.{sep}{cmd}`"
                 )
-                } else {
-                    "".to_owned()
-                };
+            } else {
+                "".to_owned()
+            };
             let err = if cmd.starts_with('+') {
                 anyhow::format_err!(
                     "no such command: `{cmd}`\n\n\
diff --git a/src/cargo/core/compiler/artifact.rs b/src/cargo/core/compiler/artifact.rs
index eb31cef..42d979e 100644
--- a/src/cargo/core/compiler/artifact.rs
+++ b/src/cargo/core/compiler/artifact.rs
@@ -1,10 +1,10 @@
 //! Generate artifact information from unit dependencies for configuring the compiler environment.
 
+use crate::CargoResult;
 use crate::core::compiler::unit_graph::UnitDep;
 use crate::core::compiler::{BuildRunner, CrateType, FileFlavor, Unit};
 use crate::core::dependency::ArtifactKind;
 use crate::core::{Dependency, Target, TargetKind};
-use crate::CargoResult;
 use std::collections::{HashMap, HashSet};
 use std::ffi::OsString;
 
diff --git a/src/cargo/core/compiler/build_config.rs b/src/cargo/core/compiler/build_config.rs
index e042f21..044cf4a 100644
--- a/src/cargo/core/compiler/build_config.rs
+++ b/src/cargo/core/compiler/build_config.rs
@@ -2,7 +2,7 @@
 use crate::util::context::JobsConfig;
 use crate::util::interning::InternedString;
 use crate::util::{CargoResult, GlobalContext, RustfixDiagnosticServer};
-use anyhow::{bail, Context as _};
+use anyhow::{Context as _, bail};
 use cargo_util::ProcessBuilder;
 use serde::ser;
 use std::cell::RefCell;
@@ -96,8 +96,9 @@
                 JobsConfig::String(j) => match j.as_str() {
                     "default" => default_parallelism()?,
                     _ => {
-                        anyhow::bail!(
-			    format!("could not parse `{j}`. Number of parallel jobs should be `default` or a number."))
+                        anyhow::bail!(format!(
+                            "could not parse `{j}`. Number of parallel jobs should be `default` or a number."
+                        ))
                     }
                 },
             },
diff --git a/src/cargo/core/compiler/build_context/mod.rs b/src/cargo/core/compiler/build_context/mod.rs
index 8fbf054..a0df444 100644
--- a/src/cargo/core/compiler/build_context/mod.rs
+++ b/src/cargo/core/compiler/build_context/mod.rs
@@ -1,14 +1,14 @@
 //! [`BuildContext`] is a (mostly) static information about a build task.
 
+use crate::core::PackageSet;
+use crate::core::Workspace;
 use crate::core::compiler::unit_graph::UnitGraph;
 use crate::core::compiler::{BuildConfig, CompileKind, Unit};
 use crate::core::profiles::Profiles;
-use crate::core::PackageSet;
-use crate::core::Workspace;
+use crate::util::Rustc;
 use crate::util::context::GlobalContext;
 use crate::util::errors::CargoResult;
 use crate::util::interning::InternedString;
-use crate::util::Rustc;
 use std::collections::{HashMap, HashSet};
 
 mod target_info;
diff --git a/src/cargo/core/compiler/build_context/target_info.rs b/src/cargo/core/compiler/build_context/target_info.rs
index aa05819..ce1ab9a 100644
--- a/src/cargo/core/compiler/build_context/target_info.rs
+++ b/src/cargo/core/compiler/build_context/target_info.rs
@@ -15,7 +15,7 @@
 use crate::util::{CargoResult, Rustc};
 use anyhow::Context as _;
 use cargo_platform::{Cfg, CfgExpr};
-use cargo_util::{paths, ProcessBuilder};
+use cargo_util::{ProcessBuilder, paths};
 use serde::{Deserialize, Serialize};
 use std::cell::RefCell;
 use std::collections::hash_map::{Entry, HashMap};
@@ -214,9 +214,9 @@
 
             let (output, error) = rustc
                 .cached_output(&process, extra_fingerprint)
-                .with_context(|| {
-                    "failed to run `rustc` to learn about target-specific information"
-                })?;
+                .with_context(
+                    || "failed to run `rustc` to learn about target-specific information",
+                )?;
 
             let mut lines = output.lines();
             let mut map = HashMap::new();
@@ -254,7 +254,7 @@
                                 &process,
                                 &output,
                                 &error,
-                            )
+                            );
                         }
                     }
                 }
diff --git a/src/cargo/core/compiler/build_plan.rs b/src/cargo/core/compiler/build_plan.rs
index ad3e656..d0d607d 100644
--- a/src/cargo/core/compiler/build_plan.rs
+++ b/src/cargo/core/compiler/build_plan.rs
@@ -14,7 +14,7 @@
 use super::build_runner::OutputFile;
 use super::{BuildRunner, CompileKind, CompileMode, Unit};
 use crate::core::TargetKind;
-use crate::util::{internal, CargoResult, GlobalContext};
+use crate::util::{CargoResult, GlobalContext, internal};
 use cargo_util::ProcessBuilder;
 
 #[derive(Debug, Serialize)]
diff --git a/src/cargo/core/compiler/build_runner/mod.rs b/src/cargo/core/compiler/build_runner/mod.rs
index 692e36d..bd50b48 100644
--- a/src/cargo/core/compiler/build_runner/mod.rs
+++ b/src/cargo/core/compiler/build_runner/mod.rs
@@ -4,12 +4,12 @@
 use std::path::{Path, PathBuf};
 use std::sync::{Arc, Mutex};
 
-use crate::core::compiler::compilation::{self, UnitOutput};
-use crate::core::compiler::{self, artifact, Unit};
 use crate::core::PackageId;
+use crate::core::compiler::compilation::{self, UnitOutput};
+use crate::core::compiler::{self, Unit, artifact};
 use crate::util::cache_lock::CacheLockMode;
 use crate::util::errors::CargoResult;
-use anyhow::{bail, Context as _};
+use anyhow::{Context as _, bail};
 use filetime::FileTime;
 use itertools::Itertools;
 use jobserver::Client;
@@ -507,12 +507,10 @@
                 path.display()
             )
         };
-        let suggestion =
-            "Consider changing their names to be unique or compiling them separately.\n\
+        let suggestion = "Consider changing their names to be unique or compiling them separately.\n\
              This may become a hard error in the future; see \
              <https://github.com/rust-lang/cargo/issues/6313>.";
-        let rustdoc_suggestion =
-            "This is a known bug where multiple crates with the same name use\n\
+        let rustdoc_suggestion = "This is a known bug where multiple crates with the same name use\n\
              the same path; see <https://github.com/rust-lang/cargo/issues/6313>.";
         let report_collision = |unit: &Unit,
                                 other_unit: &Unit,
diff --git a/src/cargo/core/compiler/compilation.rs b/src/cargo/core/compiler/compilation.rs
index c30343e..5eed28a 100644
--- a/src/cargo/core/compiler/compilation.rs
+++ b/src/cargo/core/compiler/compilation.rs
@@ -5,13 +5,13 @@
 use std::path::PathBuf;
 
 use cargo_platform::CfgExpr;
-use cargo_util::{paths, ProcessBuilder};
+use cargo_util::{ProcessBuilder, paths};
 
-use crate::core::compiler::apply_env_config;
-use crate::core::compiler::BuildContext;
-use crate::core::compiler::{CompileKind, Unit, UnitHash};
 use crate::core::Package;
-use crate::util::{context, CargoResult, GlobalContext};
+use crate::core::compiler::BuildContext;
+use crate::core::compiler::apply_env_config;
+use crate::core::compiler::{CompileKind, Unit, UnitHash};
+use crate::util::{CargoResult, GlobalContext, context};
 
 /// Represents the kind of process we are creating.
 #[derive(Debug)]
diff --git a/src/cargo/core/compiler/compile_kind.rs b/src/cargo/core/compiler/compile_kind.rs
index 3c35140..b9cca37 100644
--- a/src/cargo/core/compiler/compile_kind.rs
+++ b/src/cargo/core/compiler/compile_kind.rs
@@ -3,7 +3,7 @@
 use crate::core::Target;
 use crate::util::errors::CargoResult;
 use crate::util::interning::InternedString;
-use crate::util::{try_canonicalize, GlobalContext, StableHasher};
+use crate::util::{GlobalContext, StableHasher, try_canonicalize};
 use anyhow::Context as _;
 use serde::Serialize;
 use std::collections::BTreeSet;
diff --git a/src/cargo/core/compiler/custom_build.rs b/src/cargo/core/compiler/custom_build.rs
index d65b23f..417badd 100644
--- a/src/cargo/core/compiler/custom_build.rs
+++ b/src/cargo/core/compiler/custom_build.rs
@@ -31,17 +31,17 @@
 //! [`CompileMode::RunCustomBuild`]: crate::core::compiler::CompileMode::RunCustomBuild
 //! [instructions]: https://doc.rust-lang.org/cargo/reference/build-scripts.html#outputs-of-the-build-script
 
-use super::{fingerprint, get_dynamic_search_path, BuildRunner, Job, Unit, Work};
+use super::{BuildRunner, Job, Unit, Work, fingerprint, get_dynamic_search_path};
+use crate::core::compiler::CompileMode;
 use crate::core::compiler::artifact;
 use crate::core::compiler::build_runner::UnitHash;
 use crate::core::compiler::fingerprint::DirtyReason;
 use crate::core::compiler::job_queue::JobState;
-use crate::core::compiler::CompileMode;
-use crate::core::{profiles::ProfileRoot, PackageId, Target};
+use crate::core::{PackageId, Target, profiles::ProfileRoot};
 use crate::util::errors::CargoResult;
 use crate::util::internal;
 use crate::util::machine_message::{self, Message};
-use anyhow::{bail, Context as _};
+use anyhow::{Context as _, bail};
 use cargo_platform::Cfg;
 use cargo_util::paths;
 use cargo_util_schemas::manifest::RustVersion;
@@ -836,7 +836,9 @@
                         )
                     } else if flag.starts_with("metadata=") {
                         let old_format_flag = flag.strip_prefix("metadata=").unwrap();
-                        format!("Switch to the old `cargo:{old_format_flag}` syntax instead of `cargo::{flag}` (note the single colon).\n")
+                        format!(
+                            "Switch to the old `cargo:{old_format_flag}` syntax instead of `cargo::{flag}` (note the single colon).\n"
+                        )
                     } else {
                         String::new()
                     };
@@ -1067,7 +1069,8 @@
                         } else {
                             // Setting RUSTC_BOOTSTRAP would change the behavior of the crate.
                             // Abort with an error.
-                            bail!("Cannot set `RUSTC_BOOTSTRAP={}` from {}.\n\
+                            bail!(
+                                "Cannot set `RUSTC_BOOTSTRAP={}` from {}.\n\
                                 note: Crates cannot set `RUSTC_BOOTSTRAP` themselves, as doing so would subvert the stability guarantees of Rust for your project.\n\
                                 help: If you're sure you want to do this in your project, set the environment variable `RUSTC_BOOTSTRAP={}` before running cargo instead.",
                                 val,
diff --git a/src/cargo/core/compiler/fingerprint/dep_info.rs b/src/cargo/core/compiler/fingerprint/dep_info.rs
index 294942d..25adac7 100644
--- a/src/cargo/core/compiler/fingerprint/dep_info.rs
+++ b/src/cargo/core/compiler/fingerprint/dep_info.rs
@@ -15,13 +15,13 @@
 use std::sync::Arc;
 
 use anyhow::bail;
-use cargo_util::paths;
 use cargo_util::ProcessBuilder;
 use cargo_util::Sha256;
+use cargo_util::paths;
 
-use crate::core::manifest::ManifestMetadata;
-use crate::CargoResult;
 use crate::CARGO_ENV;
+use crate::CargoResult;
+use crate::core::manifest::ManifestMetadata;
 
 /// The current format version of [`EncodedDepInfo`].
 const CURRENT_ENCODED_DEP_INFO_VERSION: u8 = 1;
diff --git a/src/cargo/core/compiler/fingerprint/mod.rs b/src/cargo/core/compiler/fingerprint/mod.rs
index fce4866..34bff3d 100644
--- a/src/cargo/core/compiler/fingerprint/mod.rs
+++ b/src/cargo/core/compiler/fingerprint/mod.rs
@@ -383,8 +383,8 @@
 use std::sync::{Arc, Mutex};
 use std::time::SystemTime;
 
-use anyhow::format_err;
 use anyhow::Context as _;
+use anyhow::format_err;
 use cargo_util::paths;
 use filetime::FileTime;
 use serde::de;
@@ -392,21 +392,21 @@
 use serde::{Deserialize, Serialize};
 use tracing::{debug, info};
 
-use crate::core::compiler::unit_graph::UnitDep;
 use crate::core::Package;
+use crate::core::compiler::unit_graph::UnitDep;
 use crate::util;
 use crate::util::errors::CargoResult;
 use crate::util::interning::InternedString;
-use crate::util::{internal, path_args, StableHasher};
-use crate::{GlobalContext, CARGO_ENV};
+use crate::util::{StableHasher, internal, path_args};
+use crate::{CARGO_ENV, GlobalContext};
 
 use super::custom_build::BuildDeps;
 use super::{BuildContext, BuildRunner, FileFlavor, Job, Unit, Work};
 
+pub use self::dep_info::Checksum;
 pub use self::dep_info::parse_dep_info;
 pub use self::dep_info::parse_rustc_dep_info;
 pub use self::dep_info::translate_dep_info;
-pub use self::dep_info::Checksum;
 pub use self::dirty_reason::DirtyReason;
 
 /// Determines if a [`Unit`] is up-to-date, and if not prepares necessary work to
@@ -1100,7 +1100,7 @@
                     return DirtyReason::LocalFingerprintTypeChanged {
                         old: b.kind(),
                         new: a.kind(),
-                    }
+                    };
                 }
             }
         }
@@ -1557,7 +1557,7 @@
     let compile_kind = unit.kind.fingerprint_hash();
     let mut declared_features = unit.pkg.summary().features().keys().collect::<Vec<_>>();
     declared_features.sort(); // to avoid useless rebuild if the user orders it's features
-                              // differently
+    // differently
     Ok(Fingerprint {
         rustc: util::hash_u64(&build_runner.bcx.rustc().verbose_version),
         target: util::hash_u64(&unit.target),
diff --git a/src/cargo/core/compiler/future_incompat.rs b/src/cargo/core/compiler/future_incompat.rs
index 8cc3878..c7501bd 100644
--- a/src/cargo/core/compiler/future_incompat.rs
+++ b/src/cargo/core/compiler/future_incompat.rs
@@ -35,11 +35,11 @@
 
 use crate::core::compiler::BuildContext;
 use crate::core::{Dependency, PackageId, Workspace};
-use crate::sources::source::QueryKind;
 use crate::sources::SourceConfigMap;
-use crate::util::cache_lock::CacheLockMode;
+use crate::sources::source::QueryKind;
 use crate::util::CargoResult;
-use anyhow::{bail, format_err, Context};
+use crate::util::cache_lock::CacheLockMode;
+use anyhow::{Context, bail, format_err};
 use serde::{Deserialize, Serialize};
 use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
 use std::fmt::Write as _;
diff --git a/src/cargo/core/compiler/job_queue/job_state.rs b/src/cargo/core/compiler/job_queue/job_state.rs
index 5a85875..2ab19b6 100644
--- a/src/cargo/core/compiler/job_queue/job_state.rs
+++ b/src/cargo/core/compiler/job_queue/job_state.rs
@@ -4,10 +4,10 @@
 
 use cargo_util::ProcessBuilder;
 
+use crate::CargoResult;
 use crate::core::compiler::build_runner::OutputFile;
 use crate::core::compiler::future_incompat::FutureBreakageItem;
 use crate::util::Queue;
-use crate::CargoResult;
 
 use super::{Artifact, DiagDedupe, Job, JobId, Message};
 
diff --git a/src/cargo/core/compiler/job_queue/mod.rs b/src/cargo/core/compiler/job_queue/mod.rs
index 1b63cda..744b2ea 100644
--- a/src/cargo/core/compiler/job_queue/mod.rs
+++ b/src/cargo/core/compiler/job_queue/mod.rs
@@ -122,7 +122,7 @@
 use std::thread::{self, Scope};
 use std::time::Duration;
 
-use anyhow::{format_err, Context as _};
+use anyhow::{Context as _, format_err};
 use cargo_util::ProcessBuilder;
 use jobserver::{Acquired, HelperThread};
 use semver::Version;
@@ -141,11 +141,11 @@
 };
 use crate::core::resolver::ResolveBehavior;
 use crate::core::{PackageId, Shell, TargetKind};
+use crate::util::CargoResult;
 use crate::util::context::WarningHandling;
 use crate::util::diagnostic_server::{self, DiagnosticPrinter};
 use crate::util::errors::AlreadyPrintedError;
 use crate::util::machine_message::{self, Message as _};
-use crate::util::CargoResult;
 use crate::util::{self, internal};
 use crate::util::{DependencyQueue, GlobalContext, Progress, ProgressStyle, Queue};
 
diff --git a/src/cargo/core/compiler/layout.rs b/src/cargo/core/compiler/layout.rs
index 3638887..b1d54c8 100644
--- a/src/cargo/core/compiler/layout.rs
+++ b/src/cargo/core/compiler/layout.rs
@@ -101,8 +101,8 @@
 //! When cross-compiling, the layout is the same, except it appears in
 //! `target/$TRIPLE`.
 
-use crate::core::compiler::CompileTarget;
 use crate::core::Workspace;
+use crate::core::compiler::CompileTarget;
 use crate::util::{CargoResult, FileLock};
 use cargo_util::paths;
 use std::path::{Path, PathBuf};
diff --git a/src/cargo/core/compiler/mod.rs b/src/cargo/core/compiler/mod.rs
index 2775e1d..926cf28 100644
--- a/src/cargo/core/compiler/mod.rs
+++ b/src/cargo/core/compiler/mod.rs
@@ -99,7 +99,7 @@
 use crate::util::interning::InternedString;
 use crate::util::machine_message::{self, Message};
 use crate::util::{add_path_args, internal};
-use cargo_util::{paths, ProcessBuilder, ProcessError};
+use cargo_util::{ProcessBuilder, ProcessError, paths};
 use cargo_util_schemas::manifest::TomlDebugInfo;
 use cargo_util_schemas::manifest::TomlTrimPaths;
 use cargo_util_schemas::manifest::TomlTrimPathsValue;
@@ -1398,7 +1398,7 @@
     match trim_paths {
         // rustdoc supports diagnostics trimming only.
         TomlTrimPaths::Values(values) if !values.contains(&TomlTrimPathsValue::Diagnostics) => {
-            return Ok(())
+            return Ok(());
         }
         _ => {}
     }
diff --git a/src/cargo/core/compiler/output_depinfo.rs b/src/cargo/core/compiler/output_depinfo.rs
index 80f6ffc..e106595 100644
--- a/src/cargo/core/compiler/output_depinfo.rs
+++ b/src/cargo/core/compiler/output_depinfo.rs
@@ -6,8 +6,8 @@
 use std::io::{BufWriter, Write};
 use std::path::{Path, PathBuf};
 
-use super::{fingerprint, BuildRunner, FileFlavor, Unit};
-use crate::util::{internal, CargoResult};
+use super::{BuildRunner, FileFlavor, Unit, fingerprint};
+use crate::util::{CargoResult, internal};
 use cargo_util::paths;
 use tracing::debug;
 
diff --git a/src/cargo/core/compiler/output_sbom.rs b/src/cargo/core/compiler/output_sbom.rs
index 78f4a37..4fe058d 100644
--- a/src/cargo/core/compiler/output_sbom.rs
+++ b/src/cargo/core/compiler/output_sbom.rs
@@ -8,10 +8,10 @@
 use itertools::Itertools;
 use serde::Serialize;
 
-use crate::core::TargetKind;
-use crate::util::interning::InternedString;
-use crate::util::Rustc;
 use crate::CargoResult;
+use crate::core::TargetKind;
+use crate::util::Rustc;
+use crate::util::interning::InternedString;
 
 use super::{BuildRunner, CompileMode, Unit};
 
diff --git a/src/cargo/core/compiler/rustdoc.rs b/src/cargo/core/compiler/rustdoc.rs
index ad56137..231d84d 100644
--- a/src/cargo/core/compiler/rustdoc.rs
+++ b/src/cargo/core/compiler/rustdoc.rs
@@ -4,7 +4,7 @@
 use crate::core::compiler::unit::Unit;
 use crate::core::compiler::{BuildContext, CompileKind};
 use crate::sources::CRATES_IO_REGISTRY;
-use crate::util::errors::{internal, CargoResult};
+use crate::util::errors::{CargoResult, internal};
 use cargo_util::ProcessBuilder;
 use std::collections::HashMap;
 use std::collections::HashSet;
diff --git a/src/cargo/core/compiler/standard_lib.rs b/src/cargo/core/compiler/standard_lib.rs
index 17cb4f6..2b93119 100644
--- a/src/cargo/core/compiler/standard_lib.rs
+++ b/src/cargo/core/compiler/standard_lib.rs
@@ -1,11 +1,11 @@
 //! Code for building the standard library.
 
-use crate::core::compiler::unit_dependencies::IsArtifact;
 use crate::core::compiler::UnitInterner;
+use crate::core::compiler::unit_dependencies::IsArtifact;
 use crate::core::compiler::{CompileKind, CompileMode, RustcTargetData, Unit};
 use crate::core::profiles::{Profiles, UnitFor};
-use crate::core::resolver::features::{CliFeatures, FeaturesFor, ResolvedFeatures};
 use crate::core::resolver::HasDevUnits;
+use crate::core::resolver::features::{CliFeatures, FeaturesFor, ResolvedFeatures};
 use crate::core::{PackageId, PackageSet, Resolve, Workspace};
 use crate::ops::{self, Packages};
 use crate::util::errors::CargoResult;
diff --git a/src/cargo/core/compiler/timings.rs b/src/cargo/core/compiler/timings.rs
index 6fb15aa..523996a 100644
--- a/src/cargo/core/compiler/timings.rs
+++ b/src/cargo/core/compiler/timings.rs
@@ -3,9 +3,9 @@
 //! This module implements some simple tracking information for timing of how
 //! long it takes for different units to compile.
 use super::{CompileMode, Unit};
+use crate::core::PackageId;
 use crate::core::compiler::job_queue::JobId;
 use crate::core::compiler::{BuildContext, BuildRunner, TimingOutput};
-use crate::core::PackageId;
 use crate::util::cpu::State;
 use crate::util::machine_message::{self, Message};
 use crate::util::style;
diff --git a/src/cargo/core/compiler/unit.rs b/src/cargo/core/compiler/unit.rs
index 43068b7..279cdcc 100644
--- a/src/cargo/core/compiler/unit.rs
+++ b/src/cargo/core/compiler/unit.rs
@@ -1,13 +1,13 @@
 //! Types and impls for [`Unit`].
 
+use crate::core::Package;
 use crate::core::compiler::unit_dependencies::IsArtifact;
 use crate::core::compiler::{CompileKind, CompileMode, CompileTarget, CrateType};
 use crate::core::manifest::{Target, TargetKind};
 use crate::core::profiles::Profile;
-use crate::core::Package;
+use crate::util::GlobalContext;
 use crate::util::hex::short_hash;
 use crate::util::interning::InternedString;
-use crate::util::GlobalContext;
 use std::cell::RefCell;
 use std::collections::{BTreeMap, HashSet};
 use std::fmt;
diff --git a/src/cargo/core/compiler/unit_dependencies.rs b/src/cargo/core/compiler/unit_dependencies.rs
index 8f71156..425a2ba 100644
--- a/src/cargo/core/compiler/unit_dependencies.rs
+++ b/src/cargo/core/compiler/unit_dependencies.rs
@@ -19,21 +19,21 @@
 
 use tracing::trace;
 
+use crate::CargoResult;
+use crate::core::compiler::UserIntent;
 use crate::core::compiler::artifact::match_artifacts_kind_with_targets;
 use crate::core::compiler::unit_graph::{UnitDep, UnitGraph};
-use crate::core::compiler::UserIntent;
 use crate::core::compiler::{
     CompileKind, CompileMode, CrateType, RustcTargetData, Unit, UnitInterner,
 };
 use crate::core::dependency::{Artifact, ArtifactKind, ArtifactTarget, DepKind};
 use crate::core::profiles::{Profile, Profiles, UnitFor};
-use crate::core::resolver::features::{FeaturesFor, ResolvedFeatures};
 use crate::core::resolver::Resolve;
+use crate::core::resolver::features::{FeaturesFor, ResolvedFeatures};
 use crate::core::{Dependency, Package, PackageId, PackageSet, Target, TargetKind, Workspace};
 use crate::ops::resolve_all_features;
-use crate::util::interning::InternedString;
 use crate::util::GlobalContext;
-use crate::CargoResult;
+use crate::util::interning::InternedString;
 
 const IS_NO_ARTIFACT_DEP: Option<&'static Artifact> = None;
 
diff --git a/src/cargo/core/compiler/unit_graph.rs b/src/cargo/core/compiler/unit_graph.rs
index b38313e..fa1fae4 100644
--- a/src/cargo/core/compiler/unit_graph.rs
+++ b/src/cargo/core/compiler/unit_graph.rs
@@ -4,13 +4,13 @@
 
 use cargo_util_schemas::core::PackageIdSpec;
 
+use crate::GlobalContext;
+use crate::core::Target;
 use crate::core::compiler::Unit;
 use crate::core::compiler::{CompileKind, CompileMode};
 use crate::core::profiles::{Profile, UnitFor};
-use crate::core::Target;
-use crate::util::interning::InternedString;
 use crate::util::CargoResult;
-use crate::GlobalContext;
+use crate::util::interning::InternedString;
 use std::collections::HashMap;
 
 /// The dependency graph of Units.
diff --git a/src/cargo/core/dependency.rs b/src/cargo/core/dependency.rs
index f3d526f..17a7e4b 100644
--- a/src/cargo/core/dependency.rs
+++ b/src/cargo/core/dependency.rs
@@ -1,7 +1,7 @@
 use cargo_platform::Platform;
 use semver::VersionReq;
-use serde::ser;
 use serde::Serialize;
+use serde::ser;
 use std::borrow::Cow;
 use std::fmt;
 use std::path::PathBuf;
@@ -10,9 +10,9 @@
 
 use crate::core::compiler::{CompileKind, CompileTarget};
 use crate::core::{CliUnstable, Feature, Features, PackageId, SourceId, Summary};
+use crate::util::OptVersionReq;
 use crate::util::errors::CargoResult;
 use crate::util::interning::InternedString;
-use crate::util::OptVersionReq;
 
 /// Information about a dependency requested by a Cargo manifest.
 /// Cheap to copy.
@@ -126,7 +126,7 @@
                     return Err(anyhow::Error::new(err).context(format!(
                         "failed to parse the version requirement `{}` for dependency `{}`",
                         v, name,
-                    )))
+                    )));
                 }
             },
             None => (false, OptVersionReq::Any),
@@ -633,7 +633,9 @@
                 return kind
                     .strip_prefix("bin:")
                     .map(|bin_name| ArtifactKind::SelectedBinary(bin_name.into()))
-                    .ok_or_else(|| anyhow::anyhow!("'{}' is not a valid artifact specifier", kind))
+                    .ok_or_else(|| {
+                        anyhow::anyhow!("'{}' is not a valid artifact specifier", kind)
+                    });
             }
         })
     }
@@ -644,7 +646,9 @@
                 .iter()
                 .any(|k| matches!(k, ArtifactKind::SelectedBinary(_)))
         {
-            anyhow::bail!("Cannot specify both 'bin' and 'bin:<name>' binary artifacts, as 'bin' selects all available binaries.");
+            anyhow::bail!(
+                "Cannot specify both 'bin' and 'bin:<name>' binary artifacts, as 'bin' selects all available binaries."
+            );
         }
         let mut kinds_without_dupes = kinds.clone();
         kinds_without_dupes.sort();
diff --git a/src/cargo/core/features.rs b/src/cargo/core/features.rs
index a0a1a93..1e9dd73 100644
--- a/src/cargo/core/features.rs
+++ b/src/cargo/core/features.rs
@@ -124,17 +124,16 @@
 use std::path::PathBuf;
 use std::str::FromStr;
 
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
 use cargo_util::ProcessBuilder;
 use serde::{Deserialize, Serialize};
 
+use crate::GlobalContext;
 use crate::core::resolver::ResolveBehavior;
 use crate::util::errors::CargoResult;
 use crate::util::indented_lines;
-use crate::GlobalContext;
 
-pub const SEE_CHANNELS: &str =
-    "See https://doc.rust-lang.org/book/appendix-07-nightly-rust.html for more information \
+pub const SEE_CHANNELS: &str = "See https://doc.rust-lang.org/book/appendix-07-nightly-rust.html for more information \
      about Rust release channels.";
 
 /// Value of [`allow-features`](CliUnstable::allow_features)
diff --git a/src/cargo/core/gc.rs b/src/cargo/core/gc.rs
index bf1bac8..b51e9a7 100644
--- a/src/cargo/core/gc.rs
+++ b/src/cargo/core/gc.rs
@@ -23,7 +23,7 @@
 use crate::ops::CleanContext;
 use crate::util::cache_lock::{CacheLock, CacheLockMode};
 use crate::{CargoResult, GlobalContext};
-use anyhow::{format_err, Context as _};
+use anyhow::{Context as _, format_err};
 use serde::Deserialize;
 use std::time::Duration;
 
@@ -430,7 +430,7 @@
         None => {
             return cap[1]
                 .parse()
-                .with_context(|| format!("expected an integer size, got `{}`", &cap[1]))
+                .with_context(|| format!("expected an integer size, got `{}`", &cap[1]));
         }
     };
     let num = cap[1]
diff --git a/src/cargo/core/global_cache_tracker.rs b/src/cargo/core/global_cache_tracker.rs
index acacaa2..6198368 100644
--- a/src/cargo/core/global_cache_tracker.rs
+++ b/src/cargo/core/global_cache_tracker.rs
@@ -114,18 +114,18 @@
 //!
 //! There are checks for read-only filesystems, which is generally ignored.
 
-use crate::core::gc::GcOpts;
 use crate::core::Verbosity;
+use crate::core::gc::GcOpts;
 use crate::ops::CleanContext;
 use crate::util::cache_lock::CacheLockMode;
 use crate::util::interning::InternedString;
-use crate::util::sqlite::{self, basic_migration, Migration};
+use crate::util::sqlite::{self, Migration, basic_migration};
 use crate::util::{Filesystem, Progress, ProgressStyle};
 use crate::{CargoResult, GlobalContext};
-use anyhow::{bail, Context as _};
+use anyhow::{Context as _, bail};
 use cargo_util::paths;
-use rusqlite::{params, Connection, ErrorCode};
-use std::collections::{hash_map, HashMap};
+use rusqlite::{Connection, ErrorCode, params};
+use std::collections::{HashMap, hash_map};
 use std::path::{Path, PathBuf};
 use std::time::{Duration, SystemTime};
 use tracing::{debug, trace};
@@ -1743,7 +1743,9 @@
                     &encoded_registry_name,
                 )?
                 else {
-                    bail!("expected registry_index {encoded_registry_name} to exist, but wasn't found");
+                    bail!(
+                        "expected registry_index {encoded_registry_name} to exist, but wasn't found"
+                    );
                 };
                 self.registry_keys.insert(encoded_registry_name, id);
                 Ok(id)
diff --git a/src/cargo/core/manifest.rs b/src/cargo/core/manifest.rs
index 8199568..76e90f9 100644
--- a/src/cargo/core/manifest.rs
+++ b/src/cargo/core/manifest.rs
@@ -10,8 +10,8 @@
 use cargo_util_schemas::manifest::RustVersion;
 use cargo_util_schemas::manifest::{TomlManifest, TomlProfiles};
 use semver::Version;
-use serde::ser;
 use serde::Serialize;
+use serde::ser;
 use url::Url;
 
 use crate::core::compiler::rustdoc::RustdocScrapeExamples;
@@ -21,7 +21,7 @@
 use crate::core::{Edition, Feature, Features, WorkspaceConfig};
 use crate::util::errors::*;
 use crate::util::interning::InternedString;
-use crate::util::{short_hash, Filesystem, GlobalContext};
+use crate::util::{Filesystem, GlobalContext, short_hash};
 
 pub const MANIFEST_PREAMBLE: &str = "\
 # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
diff --git a/src/cargo/core/mod.rs b/src/cargo/core/mod.rs
index e857ca3..786883f 100644
--- a/src/cargo/core/mod.rs
+++ b/src/cargo/core/mod.rs
@@ -11,8 +11,8 @@
 pub use self::source_id::SourceId;
 pub use self::summary::{FeatureMap, FeatureValue, Summary};
 pub use self::workspace::{
-    find_workspace_root, resolve_relative_path, MaybePackage, Workspace, WorkspaceConfig,
-    WorkspaceRootConfig,
+    MaybePackage, Workspace, WorkspaceConfig, WorkspaceRootConfig, find_workspace_root,
+    resolve_relative_path,
 };
 pub use cargo_util_schemas::core::{GitReference, PackageIdSpec, SourceKind};
 
diff --git a/src/cargo/core/package.rs b/src/cargo/core/package.rs
index ebb10ac..916f02e 100644
--- a/src/cargo/core/package.rs
+++ b/src/cargo/core/package.rs
@@ -27,15 +27,15 @@
 };
 use crate::core::{Summary, Workspace};
 use crate::sources::source::{MaybePackage, SourceMap};
+use crate::util::HumanBytes;
 use crate::util::cache_lock::{CacheLock, CacheLockMode};
 use crate::util::errors::{CargoResult, HttpNotSuccessful};
 use crate::util::interning::InternedString;
-use crate::util::network::http::http_handle_and_timeout;
 use crate::util::network::http::HttpTimeout;
+use crate::util::network::http::http_handle_and_timeout;
 use crate::util::network::retry::{Retry, RetryResult};
 use crate::util::network::sleep::SleepTracker;
-use crate::util::HumanBytes;
-use crate::util::{self, internal, GlobalContext, Progress, ProgressStyle};
+use crate::util::{self, GlobalContext, Progress, ProgressStyle, internal};
 
 /// Information about a package that is available somewhere in the file system.
 ///
@@ -881,7 +881,7 @@
             match ret {
                 RetryResult::Success(data) => break (dl, data),
                 RetryResult::Err(e) => {
-                    return Err(e.context(format!("failed to download from `{}`", dl.url)))
+                    return Err(e.context(format!("failed to download from `{}`", dl.url)));
                 }
                 RetryResult::Retry(sleep) => {
                     debug!(target: "network", "download retry {} for {sleep}ms", dl.url);
diff --git a/src/cargo/core/package_id.rs b/src/cargo/core/package_id.rs
index 3294429..d30292f 100644
--- a/src/cargo/core/package_id.rs
+++ b/src/cargo/core/package_id.rs
@@ -12,8 +12,8 @@
 
 use crate::core::PackageIdSpec;
 use crate::core::SourceId;
-use crate::util::interning::InternedString;
 use crate::util::CargoResult;
+use crate::util::interning::InternedString;
 
 static PACKAGE_ID_CACHE: OnceLock<Mutex<HashSet<&'static PackageIdInner>>> = OnceLock::new();
 
diff --git a/src/cargo/core/package_id_spec.rs b/src/cargo/core/package_id_spec.rs
index 3796c0d..3403bac 100644
--- a/src/cargo/core/package_id_spec.rs
+++ b/src/cargo/core/package_id_spec.rs
@@ -1,6 +1,6 @@
 use std::collections::HashMap;
 
-use anyhow::{bail, Context as _};
+use anyhow::{Context as _, bail};
 
 use crate::core::PackageId;
 use crate::core::PackageIdSpec;
@@ -165,53 +165,77 @@
         assert!(PackageIdSpec::parse("foo@1.2.3").unwrap().matches(foo));
         assert!(!PackageIdSpec::parse("foo@1.2.2").unwrap().matches(foo));
         assert!(PackageIdSpec::parse("foo@1.2").unwrap().matches(foo));
-        assert!(PackageIdSpec::parse("https://example.com#foo@1.2")
-            .unwrap()
-            .matches(foo));
-        assert!(!PackageIdSpec::parse("https://bob.com#foo@1.2")
-            .unwrap()
-            .matches(foo));
-        assert!(PackageIdSpec::parse("registry+https://example.com#foo@1.2")
-            .unwrap()
-            .matches(foo));
-        assert!(!PackageIdSpec::parse("git+https://example.com#foo@1.2")
-            .unwrap()
-            .matches(foo));
+        assert!(
+            PackageIdSpec::parse("https://example.com#foo@1.2")
+                .unwrap()
+                .matches(foo)
+        );
+        assert!(
+            !PackageIdSpec::parse("https://bob.com#foo@1.2")
+                .unwrap()
+                .matches(foo)
+        );
+        assert!(
+            PackageIdSpec::parse("registry+https://example.com#foo@1.2")
+                .unwrap()
+                .matches(foo)
+        );
+        assert!(
+            !PackageIdSpec::parse("git+https://example.com#foo@1.2")
+                .unwrap()
+                .matches(foo)
+        );
 
         let meta = PackageId::try_new("meta", "1.2.3+hello", sid).unwrap();
         assert!(PackageIdSpec::parse("meta").unwrap().matches(meta));
         assert!(PackageIdSpec::parse("meta@1").unwrap().matches(meta));
         assert!(PackageIdSpec::parse("meta@1.2").unwrap().matches(meta));
         assert!(PackageIdSpec::parse("meta@1.2.3").unwrap().matches(meta));
-        assert!(!PackageIdSpec::parse("meta@1.2.3-alpha.0")
-            .unwrap()
-            .matches(meta));
-        assert!(PackageIdSpec::parse("meta@1.2.3+hello")
-            .unwrap()
-            .matches(meta));
-        assert!(!PackageIdSpec::parse("meta@1.2.3+bye")
-            .unwrap()
-            .matches(meta));
+        assert!(
+            !PackageIdSpec::parse("meta@1.2.3-alpha.0")
+                .unwrap()
+                .matches(meta)
+        );
+        assert!(
+            PackageIdSpec::parse("meta@1.2.3+hello")
+                .unwrap()
+                .matches(meta)
+        );
+        assert!(
+            !PackageIdSpec::parse("meta@1.2.3+bye")
+                .unwrap()
+                .matches(meta)
+        );
 
         let pre = PackageId::try_new("pre", "1.2.3-alpha.0", sid).unwrap();
         assert!(PackageIdSpec::parse("pre").unwrap().matches(pre));
         assert!(!PackageIdSpec::parse("pre@1").unwrap().matches(pre));
         assert!(!PackageIdSpec::parse("pre@1.2").unwrap().matches(pre));
         assert!(!PackageIdSpec::parse("pre@1.2.3").unwrap().matches(pre));
-        assert!(PackageIdSpec::parse("pre@1.2.3-alpha.0")
-            .unwrap()
-            .matches(pre));
-        assert!(!PackageIdSpec::parse("pre@1.2.3-alpha.1")
-            .unwrap()
-            .matches(pre));
-        assert!(!PackageIdSpec::parse("pre@1.2.3-beta.0")
-            .unwrap()
-            .matches(pre));
-        assert!(!PackageIdSpec::parse("pre@1.2.3+hello")
-            .unwrap()
-            .matches(pre));
-        assert!(!PackageIdSpec::parse("pre@1.2.3-alpha.0+hello")
-            .unwrap()
-            .matches(pre));
+        assert!(
+            PackageIdSpec::parse("pre@1.2.3-alpha.0")
+                .unwrap()
+                .matches(pre)
+        );
+        assert!(
+            !PackageIdSpec::parse("pre@1.2.3-alpha.1")
+                .unwrap()
+                .matches(pre)
+        );
+        assert!(
+            !PackageIdSpec::parse("pre@1.2.3-beta.0")
+                .unwrap()
+                .matches(pre)
+        );
+        assert!(
+            !PackageIdSpec::parse("pre@1.2.3+hello")
+                .unwrap()
+                .matches(pre)
+        );
+        assert!(
+            !PackageIdSpec::parse("pre@1.2.3-alpha.0+hello")
+                .unwrap()
+                .matches(pre)
+        );
     }
 }
diff --git a/src/cargo/core/profiles.rs b/src/cargo/core/profiles.rs
index 0989475..69dc997 100644
--- a/src/cargo/core/profiles.rs
+++ b/src/cargo/core/profiles.rs
@@ -21,17 +21,17 @@
 //! The precedence is explained in [`ProfileMaker`].
 //! The algorithm happens within [`ProfileMaker::get_profile`].
 
+use crate::core::Feature;
 use crate::core::compiler::{CompileKind, CompileTarget, Unit};
 use crate::core::dependency::Artifact;
 use crate::core::resolver::features::FeaturesFor;
-use crate::core::Feature;
 use crate::core::{
     PackageId, PackageIdSpec, PackageIdSpecQuery, Resolve, Shell, Target, Workspace,
 };
 use crate::util::interning::InternedString;
 use crate::util::toml::validate_profile;
-use crate::util::{closest_msg, context, CargoResult, GlobalContext};
-use anyhow::{bail, Context as _};
+use crate::util::{CargoResult, GlobalContext, closest_msg, context};
+use anyhow::{Context as _, bail};
 use cargo_util_schemas::manifest::TomlTrimPaths;
 use cargo_util_schemas::manifest::TomlTrimPathsValue;
 use cargo_util_schemas::manifest::{
diff --git a/src/cargo/core/registry.rs b/src/cargo/core/registry.rs
index 52cb1b0..e9f7286 100644
--- a/src/cargo/core/registry.rs
+++ b/src/cargo/core/registry.rs
@@ -10,19 +10,19 @@
 //! while the latter involves operations on the registry Web API.
 
 use std::collections::{HashMap, HashSet};
-use std::task::{ready, Poll};
+use std::task::{Poll, ready};
 
 use crate::core::PackageSet;
 use crate::core::{Dependency, PackageId, SourceId, Summary};
+use crate::sources::IndexSummary;
 use crate::sources::config::SourceConfigMap;
 use crate::sources::source::QueryKind;
 use crate::sources::source::Source;
 use crate::sources::source::SourceMap;
-use crate::sources::IndexSummary;
 use crate::util::errors::CargoResult;
 use crate::util::interning::InternedString;
 use crate::util::{CanonicalUrl, GlobalContext};
-use anyhow::{bail, Context as _};
+use anyhow::{Context as _, bail};
 use tracing::{debug, trace};
 use url::Url;
 
@@ -709,7 +709,7 @@
         let source = self.sources.get_mut(dep.source_id());
         match (override_summary, source) {
             (Some(_), None) => {
-                return Poll::Ready(Err(anyhow::anyhow!("override found but no real ones")))
+                return Poll::Ready(Err(anyhow::anyhow!("override found but no real ones")));
             }
             (None, None) => return Poll::Ready(Ok(())),
 
diff --git a/src/cargo/core/resolver/context.rs b/src/cargo/core/resolver/context.rs
index ebfb52a..ae0f520 100644
--- a/src/cargo/core/resolver/context.rs
+++ b/src/cargo/core/resolver/context.rs
@@ -1,10 +1,10 @@
+use super::RequestedFeatures;
 use super::dep_cache::RegistryQueryer;
 use super::errors::ActivateResult;
 use super::types::{ActivationsKey, ConflictMap, ConflictReason, FeaturesSet, ResolveOpts};
-use super::RequestedFeatures;
 use crate::core::{Dependency, PackageId, Summary};
-use crate::util::interning::{InternedString, INTERNED_DEFAULT};
 use crate::util::Graph;
+use crate::util::interning::{INTERNED_DEFAULT, InternedString};
 use anyhow::format_err;
 use std::collections::{BTreeSet, HashMap};
 use tracing::debug;
diff --git a/src/cargo/core/resolver/dep_cache.rs b/src/cargo/core/resolver/dep_cache.rs
index 2a93ced..5999750 100644
--- a/src/cargo/core/resolver/dep_cache.rs
+++ b/src/cargo/core/resolver/dep_cache.rs
@@ -22,7 +22,7 @@
 use crate::sources::source::QueryKind;
 use crate::util::closest_msg;
 use crate::util::errors::CargoResult;
-use crate::util::interning::{InternedString, INTERNED_DEFAULT};
+use crate::util::interning::{INTERNED_DEFAULT, InternedString};
 
 use anyhow::Context as _;
 use std::collections::{BTreeSet, HashMap, HashSet};
diff --git a/src/cargo/core/resolver/encode.rs b/src/cargo/core/resolver/encode.rs
index 8e4780e..d7b232c 100644
--- a/src/cargo/core/resolver/encode.rs
+++ b/src/cargo/core/resolver/encode.rs
@@ -115,8 +115,8 @@
 use crate::core::{Dependency, GitReference, Package, PackageId, SourceId, Workspace};
 use crate::util::errors::CargoResult;
 use crate::util::interning::InternedString;
-use crate::util::{internal, Graph};
-use anyhow::{bail, Context as _};
+use crate::util::{Graph, internal};
+use anyhow::{Context as _, bail};
 use serde::de;
 use serde::ser;
 use serde::{Deserialize, Serialize};
diff --git a/src/cargo/core/resolver/errors.rs b/src/cargo/core/resolver/errors.rs
index 169fcd1..15bb496 100644
--- a/src/cargo/core/resolver/errors.rs
+++ b/src/cargo/core/resolver/errors.rs
@@ -3,8 +3,8 @@
 use std::task::Poll;
 
 use crate::core::{Dependency, PackageId, Registry, Summary};
-use crate::sources::source::QueryKind;
 use crate::sources::IndexSummary;
+use crate::sources::source::QueryKind;
 use crate::util::edit_distance::{closest, edit_distance};
 use crate::util::errors::CargoResult;
 use crate::util::{GlobalContext, OptVersionReq, VersionExt};
@@ -327,7 +327,10 @@
 
         // If we have a pre-release candidate, then that may be what our user is looking for
         if let Some(pre) = candidates.iter().find(|c| c.version().is_prerelease()) {
-            let _ = write!(&mut hints, "\nif you are looking for the prerelease package it needs to be specified explicitly");
+            let _ = write!(
+                &mut hints,
+                "\nif you are looking for the prerelease package it needs to be specified explicitly"
+            );
             let _ = write!(
                 &mut hints,
                 "\n    {} = {{ version = \"{}\" }}",
diff --git a/src/cargo/core/resolver/features.rs b/src/cargo/core/resolver/features.rs
index 828138a..e7d4da8 100644
--- a/src/cargo/core/resolver/features.rs
+++ b/src/cargo/core/resolver/features.rs
@@ -43,9 +43,9 @@
 use crate::core::resolver::types::FeaturesSet;
 use crate::core::resolver::{Resolve, ResolveBehavior};
 use crate::core::{FeatureValue, PackageId, PackageIdSpec, PackageSet, Workspace};
-use crate::util::interning::{InternedString, INTERNED_DEFAULT};
 use crate::util::CargoResult;
-use anyhow::{bail, Context};
+use crate::util::interning::{INTERNED_DEFAULT, InternedString};
+use anyhow::{Context, bail};
 use itertools::Itertools;
 use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
 use std::rc::Rc;
diff --git a/src/cargo/core/resolver/resolve.rs b/src/cargo/core/resolver/resolve.rs
index a20c5d4..ef5b7f2 100644
--- a/src/cargo/core/resolver/resolve.rs
+++ b/src/cargo/core/resolver/resolve.rs
@@ -4,9 +4,9 @@
 use super::encode::Metadata;
 use crate::core::dependency::DepKind;
 use crate::core::{Dependency, PackageId, PackageIdSpec, PackageIdSpecQuery, Summary, Target};
+use crate::util::Graph;
 use crate::util::errors::CargoResult;
 use crate::util::interning::InternedString;
-use crate::util::Graph;
 use std::borrow::Borrow;
 use std::collections::{HashMap, HashSet};
 use std::fmt;
diff --git a/src/cargo/core/resolver/types.rs b/src/cargo/core/resolver/types.rs
index 8bc1c9f..345b6cc 100644
--- a/src/cargo/core/resolver/types.rs
+++ b/src/cargo/core/resolver/types.rs
@@ -1,8 +1,8 @@
 use super::features::{CliFeatures, RequestedFeatures};
 use crate::core::{Dependency, PackageId, SourceId, Summary};
+use crate::util::GlobalContext;
 use crate::util::errors::CargoResult;
 use crate::util::interning::InternedString;
-use crate::util::GlobalContext;
 use std::cmp::Ordering;
 use std::collections::{BTreeMap, BTreeSet};
 use std::num::NonZeroU64;
diff --git a/src/cargo/core/shell.rs b/src/cargo/core/shell.rs
index ccd2783..53b1896 100644
--- a/src/cargo/core/shell.rs
+++ b/src/cargo/core/shell.rs
@@ -1,6 +1,6 @@
 use std::fmt;
-use std::io::prelude::*;
 use std::io::IsTerminal;
+use std::io::prelude::*;
 
 use annotate_snippets::{Message, Renderer};
 use anstream::AutoStream;
@@ -655,7 +655,6 @@
 mod imp {
     use std::{cmp, mem, ptr};
 
-    use windows_sys::core::PCSTR;
     use windows_sys::Win32::Foundation::CloseHandle;
     use windows_sys::Win32::Foundation::INVALID_HANDLE_VALUE;
     use windows_sys::Win32::Foundation::{GENERIC_READ, GENERIC_WRITE};
@@ -663,10 +662,11 @@
         CreateFileA, FILE_SHARE_READ, FILE_SHARE_WRITE, OPEN_EXISTING,
     };
     use windows_sys::Win32::System::Console::{
-        GetConsoleScreenBufferInfo, GetStdHandle, CONSOLE_SCREEN_BUFFER_INFO, STD_ERROR_HANDLE,
+        CONSOLE_SCREEN_BUFFER_INFO, GetConsoleScreenBufferInfo, GetStdHandle, STD_ERROR_HANDLE,
     };
+    use windows_sys::core::PCSTR;
 
-    pub(super) use super::{default_err_erase_line as err_erase_line, TtyWidth};
+    pub(super) use super::{TtyWidth, default_err_erase_line as err_erase_line};
 
     pub fn stderr_width() -> TtyWidth {
         unsafe {
diff --git a/src/cargo/core/source_id.rs b/src/cargo/core/source_id.rs
index 27bf89f..fc1cef8 100644
--- a/src/cargo/core/source_id.rs
+++ b/src/cargo/core/source_id.rs
@@ -3,10 +3,10 @@
 use crate::core::SourceKind;
 use crate::sources::registry::CRATES_IO_HTTP_INDEX;
 use crate::sources::source::Source;
-use crate::sources::{DirectorySource, CRATES_IO_DOMAIN, CRATES_IO_INDEX, CRATES_IO_REGISTRY};
+use crate::sources::{CRATES_IO_DOMAIN, CRATES_IO_INDEX, CRATES_IO_REGISTRY, DirectorySource};
 use crate::sources::{GitSource, PathSource, RegistrySource};
 use crate::util::interning::InternedString;
-use crate::util::{context, CanonicalUrl, CargoResult, GlobalContext, IntoUrl};
+use crate::util::{CanonicalUrl, CargoResult, GlobalContext, IntoUrl, context};
 use anyhow::Context as _;
 use serde::de;
 use serde::ser;
@@ -809,12 +809,12 @@
         use std::hash::Hasher;
         use std::path::Path;
 
+        use snapbox::IntoData as _;
         use snapbox::assert_data_eq;
         use snapbox::str;
-        use snapbox::IntoData as _;
 
-        use crate::util::hex::short_hash;
         use crate::util::StableHasher;
+        use crate::util::hex::short_hash;
 
         #[cfg(not(windows))]
         let ws_root = Path::new("/tmp/ws");
diff --git a/src/cargo/core/summary.rs b/src/cargo/core/summary.rs
index 590da98..92cc8ce 100644
--- a/src/cargo/core/summary.rs
+++ b/src/cargo/core/summary.rs
@@ -1,7 +1,7 @@
 use crate::core::{Dependency, PackageId, SourceId};
+use crate::util::CargoResult;
 use crate::util::closest_msg;
 use crate::util::interning::InternedString;
-use crate::util::CargoResult;
 use anyhow::bail;
 use cargo_util_schemas::manifest::FeatureName;
 use cargo_util_schemas::manifest::RustVersion;
@@ -246,7 +246,7 @@
                             bail!(
                                 "feature `{feature}` includes `{fv}` which is neither a dependency \
                                  nor another feature{closest}"
-                              );
+                            );
                         }
                         if is_optional_dep {
                             if !map.contains_key(f) {
@@ -257,15 +257,19 @@
                                 );
                             }
                         } else {
-                            bail!("feature `{feature}` includes `{fv}`, but `{f}` is not an optional dependency\n\
+                            bail!(
+                                "feature `{feature}` includes `{fv}`, but `{f}` is not an optional dependency\n\
                                 A non-optional dependency of the same name is defined; \
-                                consider adding `optional = true` to its definition.");
+                                consider adding `optional = true` to its definition."
+                            );
                         }
                     }
                 }
                 Dep { dep_name } => {
                     if !is_any_dep {
-                        bail!("feature `{feature}` includes `{fv}`, but `{dep_name}` is not listed as a dependency");
+                        bail!(
+                            "feature `{feature}` includes `{fv}`, but `{dep_name}` is not listed as a dependency"
+                        );
                     }
                     if !is_optional_dep {
                         bail!(
@@ -282,7 +286,9 @@
                 } => {
                     // Early check for some unlikely syntax.
                     if dep_feature.contains('/') {
-                        bail!("multiple slashes in feature `{fv}` (included by feature `{feature}`) are not allowed");
+                        bail!(
+                            "multiple slashes in feature `{fv}` (included by feature `{feature}`) are not allowed"
+                        );
                     }
 
                     // dep: cannot be combined with /
diff --git a/src/cargo/core/workspace.rs b/src/cargo/core/workspace.rs
index 2a7541c..90568ad 100644
--- a/src/cargo/core/workspace.rs
+++ b/src/cargo/core/workspace.rs
@@ -4,7 +4,7 @@
 use std::path::{Path, PathBuf};
 use std::rc::Rc;
 
-use anyhow::{anyhow, bail, Context as _};
+use anyhow::{Context as _, anyhow, bail};
 use glob::glob;
 use itertools::Itertools;
 use tracing::debug;
@@ -13,23 +13,23 @@
 use crate::core::compiler::Unit;
 use crate::core::features::Features;
 use crate::core::registry::PackageRegistry;
-use crate::core::resolver::features::CliFeatures;
 use crate::core::resolver::ResolveBehavior;
+use crate::core::resolver::features::CliFeatures;
 use crate::core::{
     Dependency, Edition, FeatureValue, PackageId, PackageIdSpec, PackageIdSpecQuery,
 };
 use crate::core::{EitherManifest, Package, SourceId, VirtualManifest};
 use crate::ops;
-use crate::sources::{PathSource, SourceConfigMap, CRATES_IO_INDEX, CRATES_IO_REGISTRY};
+use crate::sources::{CRATES_IO_INDEX, CRATES_IO_REGISTRY, PathSource, SourceConfigMap};
 use crate::util::context::FeatureUnification;
 use crate::util::edit_distance;
 use crate::util::errors::{CargoResult, ManifestError};
 use crate::util::interning::InternedString;
 use crate::util::lints::{analyze_cargo_lints_table, check_im_a_teapot};
-use crate::util::toml::{read_manifest, InheritableFields};
+use crate::util::toml::{InheritableFields, read_manifest};
 use crate::util::{
-    context::CargoResolverConfig, context::ConfigRelativePath, context::IncompatibleRustVersions,
-    Filesystem, GlobalContext, IntoUrl,
+    Filesystem, GlobalContext, IntoUrl, context::CargoResolverConfig, context::ConfigRelativePath,
+    context::IncompatibleRustVersions,
 };
 use cargo_util::paths;
 use cargo_util::paths::normalize_path;
@@ -1597,7 +1597,10 @@
             )
         } else {
             let names = selected_members.iter().map(|m| m.name()).join(", ");
-            format!("none of the selected packages contains {these_features}: {}\nselected packages: {names}", unknown.join(", "))
+            format!(
+                "none of the selected packages contains {these_features}: {}\nselected packages: {names}",
+                unknown.join(", ")
+            )
         };
 
         use std::fmt::Write;
diff --git a/src/cargo/lib.rs b/src/cargo/lib.rs
index 7dc25ad..2da4310 100644
--- a/src/cargo/lib.rs
+++ b/src/cargo/lib.rs
@@ -139,13 +139,13 @@
 //! [The Cargo Book]: https://doc.rust-lang.org/cargo/
 //! [Cargo Contributor Guide]: https://doc.crates.io/contrib/
 
-use crate::core::shell::Verbosity::Verbose;
 use crate::core::Shell;
+use crate::core::shell::Verbosity::Verbose;
 use anyhow::Error;
 use tracing::debug;
 
 pub use crate::util::errors::{AlreadyPrintedError, InternalError, VerboseError};
-pub use crate::util::{indented_lines, CargoResult, CliError, CliResult, GlobalContext};
+pub use crate::util::{CargoResult, CliError, CliResult, GlobalContext, indented_lines};
 pub use crate::version::version;
 
 pub const CARGO_ENV: &str = "CARGO";
diff --git a/src/cargo/ops/cargo_add/crate_spec.rs b/src/cargo/ops/cargo_add/crate_spec.rs
index 9fb48fd..93887d4 100644
--- a/src/cargo/ops/cargo_add/crate_spec.rs
+++ b/src/cargo/ops/cargo_add/crate_spec.rs
@@ -3,8 +3,8 @@
 use anyhow::Context as _;
 
 use super::Dependency;
-use crate::util::toml_mut::dependency::RegistrySource;
 use crate::CargoResult;
+use crate::util::toml_mut::dependency::RegistrySource;
 use cargo_util_schemas::manifest::PackageName;
 
 /// User-specified crate
diff --git a/src/cargo/ops/cargo_add/mod.rs b/src/cargo/ops/cargo_add/mod.rs
index 6871f66..ed8506d 100644
--- a/src/cargo/ops/cargo_add/mod.rs
+++ b/src/cargo/ops/cargo_add/mod.rs
@@ -18,8 +18,8 @@
 use itertools::Itertools;
 use toml_edit::Item as TomlItem;
 
-use crate::core::dependency::DepKind;
-use crate::core::registry::PackageRegistry;
+use crate::CargoResult;
+use crate::GlobalContext;
 use crate::core::FeatureValue;
 use crate::core::Features;
 use crate::core::Package;
@@ -27,6 +27,8 @@
 use crate::core::Shell;
 use crate::core::Summary;
 use crate::core::Workspace;
+use crate::core::dependency::DepKind;
+use crate::core::registry::PackageRegistry;
 use crate::sources::source::QueryKind;
 use crate::util::cache_lock::CacheLockMode;
 use crate::util::edit_distance;
@@ -40,8 +42,6 @@
 use crate::util::toml_mut::dependency::WorkspaceSource;
 use crate::util::toml_mut::manifest::DepTable;
 use crate::util::toml_mut::manifest::LocalManifest;
-use crate::CargoResult;
-use crate::GlobalContext;
 use crate_spec::CrateSpec;
 
 const MAX_FEATURE_PRINTS: usize = 30;
diff --git a/src/cargo/ops/cargo_clean.rs b/src/cargo/ops/cargo_clean.rs
index 6082888..43ab615 100644
--- a/src/cargo/ops/cargo_clean.rs
+++ b/src/cargo/ops/cargo_clean.rs
@@ -2,10 +2,10 @@
 use crate::core::profiles::Profiles;
 use crate::core::{PackageIdSpec, PackageIdSpecQuery, TargetKind, Workspace};
 use crate::ops;
+use crate::util::HumanBytes;
 use crate::util::edit_distance;
 use crate::util::errors::CargoResult;
 use crate::util::interning::InternedString;
-use crate::util::HumanBytes;
 use crate::util::{GlobalContext, Progress, ProgressStyle};
 use anyhow::bail;
 use cargo_util::paths;
diff --git a/src/cargo/ops/cargo_compile/mod.rs b/src/cargo/ops/cargo_compile/mod.rs
index 0090974..0e79a7a 100644
--- a/src/cargo/ops/cargo_compile/mod.rs
+++ b/src/cargo/ops/cargo_compile/mod.rs
@@ -39,12 +39,12 @@
 use std::hash::{Hash, Hasher};
 use std::sync::Arc;
 
+use crate::core::compiler::UserIntent;
 use crate::core::compiler::unit_dependencies::build_unit_dependencies;
 use crate::core::compiler::unit_graph::{self, UnitDep, UnitGraph};
-use crate::core::compiler::UserIntent;
-use crate::core::compiler::{apply_env_config, standard_lib, CrateType, TargetInfo};
 use crate::core::compiler::{BuildConfig, BuildContext, BuildRunner, Compilation};
 use crate::core::compiler::{CompileKind, CompileTarget, RustcTargetData, Unit};
+use crate::core::compiler::{CrateType, TargetInfo, apply_env_config, standard_lib};
 use crate::core::compiler::{DefaultExecutor, Executor, UnitInterner};
 use crate::core::profiles::Profiles;
 use crate::core::resolver::features::{self, CliFeatures, FeaturesFor};
diff --git a/src/cargo/ops/cargo_compile/packages.rs b/src/cargo/ops/cargo_compile/packages.rs
index a8c8c84..f0cb7a0 100644
--- a/src/cargo/ops/cargo_compile/packages.rs
+++ b/src/cargo/ops/cargo_compile/packages.rs
@@ -4,10 +4,10 @@
 
 use crate::core::{Package, PackageIdSpecQuery};
 use crate::core::{PackageIdSpec, Workspace};
-use crate::util::restricted_names::is_glob_pattern;
 use crate::util::CargoResult;
+use crate::util::restricted_names::is_glob_pattern;
 
-use anyhow::{bail, Context as _};
+use anyhow::{Context as _, bail};
 
 /// Represents the selected packages that will be built.
 ///
diff --git a/src/cargo/ops/cargo_compile/unit_generator.rs b/src/cargo/ops/cargo_compile/unit_generator.rs
index 2e23988..0aa281d 100644
--- a/src/cargo/ops/cargo_compile/unit_generator.rs
+++ b/src/cargo/ops/cargo_compile/unit_generator.rs
@@ -2,23 +2,23 @@
 use std::collections::{HashMap, HashSet};
 use std::fmt::Write;
 
+use crate::core::Workspace;
+use crate::core::compiler::UserIntent;
 use crate::core::compiler::rustdoc::RustdocScrapeExamples;
 use crate::core::compiler::unit_dependencies::IsArtifact;
-use crate::core::compiler::UserIntent;
 use crate::core::compiler::{CompileKind, CompileMode, Unit};
 use crate::core::compiler::{RustcTargetData, UnitInterner};
 use crate::core::dependency::DepKind;
 use crate::core::profiles::{Profiles, UnitFor};
 use crate::core::resolver::features::{self, FeaturesFor};
 use crate::core::resolver::{HasDevUnits, Resolve};
-use crate::core::Workspace;
 use crate::core::{FeatureValue, Package, PackageSet, Summary, Target};
 use crate::util::restricted_names::is_glob_pattern;
-use crate::util::{closest_msg, CargoResult};
+use crate::util::{CargoResult, closest_msg};
 
+use super::Packages;
 use super::compile_filter::{CompileFilter, FilterRule, LibRule};
 use super::packages::build_glob;
-use super::Packages;
 
 /// A proposed target.
 ///
diff --git a/src/cargo/ops/cargo_config.rs b/src/cargo/ops/cargo_config.rs
index 8cddf49..ea49cd7 100644
--- a/src/cargo/ops/cargo_config.rs
+++ b/src/cargo/ops/cargo_config.rs
@@ -3,7 +3,7 @@
 use crate::util::context::{ConfigKey, ConfigValue as CV, Definition, GlobalContext};
 use crate::util::errors::CargoResult;
 use crate::{drop_eprintln, drop_println};
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
 use serde_json::json;
 use std::borrow::Cow;
 use std::fmt;
@@ -105,11 +105,7 @@
         .filter(|(env_key, _val)| env_key.starts_with(&format!("{}_", key.as_env_key())))
         .collect();
     env.sort_by_key(|x| x.0);
-    if env.is_empty() {
-        None
-    } else {
-        Some(env)
-    }
+    if env.is_empty() { None } else { Some(env) }
 }
 
 fn print_toml(gctx: &GlobalContext, opts: &GetOptions<'_>, key: &ConfigKey, cv: &CV) {
diff --git a/src/cargo/ops/cargo_doc.rs b/src/cargo/ops/cargo_doc.rs
index efca986..fa35027 100644
--- a/src/cargo/ops/cargo_doc.rs
+++ b/src/cargo/ops/cargo_doc.rs
@@ -1,9 +1,9 @@
 use crate::core::compiler::{Compilation, CompileKind};
-use crate::core::{shell::Verbosity, Shell, Workspace};
+use crate::core::{Shell, Workspace, shell::Verbosity};
 use crate::ops;
-use crate::util::context::{GlobalContext, PathAndArgs};
 use crate::util::CargoResult;
-use anyhow::{bail, Error};
+use crate::util::context::{GlobalContext, PathAndArgs};
+use anyhow::{Error, bail};
 use std::path::Path;
 use std::path::PathBuf;
 use std::process::Command;
diff --git a/src/cargo/ops/cargo_fetch.rs b/src/cargo/ops/cargo_fetch.rs
index dc90964..b63eaf6 100644
--- a/src/cargo/ops/cargo_fetch.rs
+++ b/src/cargo/ops/cargo_fetch.rs
@@ -1,12 +1,12 @@
-use crate::core::compiler::standard_lib;
 use crate::core::compiler::BuildConfig;
 use crate::core::compiler::RustcTargetData;
 use crate::core::compiler::UserIntent;
+use crate::core::compiler::standard_lib;
 use crate::core::{PackageSet, Resolve, Workspace};
 use crate::ops;
-use crate::util::context::JobsConfig;
 use crate::util::CargoResult;
 use crate::util::GlobalContext;
+use crate::util::context::JobsConfig;
 use std::collections::HashSet;
 
 pub struct FetchOptions<'a> {
diff --git a/src/cargo/ops/cargo_install.rs b/src/cargo/ops/cargo_install.rs
index 4aa56dc..4667029 100644
--- a/src/cargo/ops/cargo_install.rs
+++ b/src/cargo/ops/cargo_install.rs
@@ -5,8 +5,8 @@
 
 use crate::core::compiler::{CompileKind, DefaultExecutor, Executor, UnitOutput};
 use crate::core::{Dependency, Edition, Package, PackageId, SourceId, Target, Workspace};
-use crate::ops::{common_for_install_and_uninstall::*, FilterRule};
 use crate::ops::{CompileFilter, Packages};
+use crate::ops::{FilterRule, common_for_install_and_uninstall::*};
 use crate::sources::source::Source;
 use crate::sources::{GitSource, PathSource, SourceConfigMap};
 use crate::util::context::FeatureUnification;
@@ -14,7 +14,7 @@
 use crate::util::{Filesystem, GlobalContext, Rustc};
 use crate::{drop_println, ops};
 
-use anyhow::{bail, Context as _};
+use anyhow::{Context as _, bail};
 use cargo_util::paths;
 use cargo_util_schemas::core::PartialVersion;
 use itertools::Itertools;
diff --git a/src/cargo/ops/cargo_new.rs b/src/cargo/ops/cargo_new.rs
index 88d2d6b..9985134 100644
--- a/src/cargo/ops/cargo_new.rs
+++ b/src/cargo/ops/cargo_new.rs
@@ -1,13 +1,13 @@
 use crate::core::{Edition, Shell, Workspace};
 use crate::util::errors::CargoResult;
 use crate::util::important_paths::find_root_manifest_for_wd;
-use crate::util::{existing_vcs_repo, FossilRepo, GitRepo, HgRepo, PijulRepo};
-use crate::util::{restricted_names, GlobalContext};
-use anyhow::{anyhow, Context as _};
+use crate::util::{FossilRepo, GitRepo, HgRepo, PijulRepo, existing_vcs_repo};
+use crate::util::{GlobalContext, restricted_names};
+use anyhow::{Context as _, anyhow};
 use cargo_util::paths::{self, write_atomic};
 use cargo_util_schemas::manifest::PackageName;
-use serde::de;
 use serde::Deserialize;
+use serde::de;
 use std::collections::BTreeMap;
 use std::ffi::OsStr;
 use std::io::{BufRead, BufReader, ErrorKind};
@@ -627,7 +627,7 @@
                         return Err(anyhow!(
                             "Character at line {} is invalid. Cargo only supports UTF-8.",
                             i
-                        ))
+                        ));
                     }
                     _ => return Err(anyhow!(err)),
                 },
diff --git a/src/cargo/ops/cargo_output_metadata.rs b/src/cargo/ops/cargo_output_metadata.rs
index 9f4ae4a..bb0b281 100644
--- a/src/cargo/ops/cargo_output_metadata.rs
+++ b/src/cargo/ops/cargo_output_metadata.rs
@@ -2,11 +2,11 @@
 use crate::core::compiler::{CompileKind, CompileKindFallback, RustcTargetData};
 use crate::core::dependency::DepKind;
 use crate::core::package::SerializedPackage;
-use crate::core::resolver::{features::CliFeatures, HasDevUnits, Resolve};
+use crate::core::resolver::{HasDevUnits, Resolve, features::CliFeatures};
 use crate::core::{Package, PackageId, PackageIdSpec, Workspace};
 use crate::ops::{self, Packages};
-use crate::util::interning::InternedString;
 use crate::util::CargoResult;
+use crate::util::interning::InternedString;
 use cargo_platform::Platform;
 use serde::Serialize;
 use std::collections::BTreeMap;
diff --git a/src/cargo/ops/cargo_package/mod.rs b/src/cargo/ops/cargo_package/mod.rs
index 0a2cc69..692b962 100644
--- a/src/cargo/ops/cargo_package/mod.rs
+++ b/src/cargo/ops/cargo_package/mod.rs
@@ -2,38 +2,38 @@
 use std::collections::BTreeSet;
 use std::collections::HashMap;
 use std::fs::{self, File};
-use std::io::prelude::*;
 use std::io::SeekFrom;
+use std::io::prelude::*;
 use std::path::{Path, PathBuf};
 use std::task::Poll;
 
-use crate::core::dependency::DepKind;
-use crate::core::manifest::Target;
-use crate::core::resolver::CliFeatures;
-use crate::core::resolver::HasDevUnits;
 use crate::core::PackageIdSpecQuery;
 use crate::core::Shell;
 use crate::core::Verbosity;
 use crate::core::Workspace;
+use crate::core::dependency::DepKind;
+use crate::core::manifest::Target;
+use crate::core::resolver::CliFeatures;
+use crate::core::resolver::HasDevUnits;
 use crate::core::{Package, PackageId, PackageSet, Resolve, SourceId};
 use crate::ops::lockfile::LOCKFILE_NAME;
-use crate::ops::registry::{infer_registry, RegistryOrIndex};
+use crate::ops::registry::{RegistryOrIndex, infer_registry};
 use crate::sources::path::PathEntry;
 use crate::sources::registry::index::{IndexPackage, RegistryDependency};
-use crate::sources::{PathSource, CRATES_IO_REGISTRY};
+use crate::sources::{CRATES_IO_REGISTRY, PathSource};
+use crate::util::FileLock;
+use crate::util::Filesystem;
+use crate::util::GlobalContext;
+use crate::util::Graph;
+use crate::util::HumanBytes;
 use crate::util::cache_lock::CacheLockMode;
 use crate::util::context::JobsConfig;
 use crate::util::errors::CargoResult;
 use crate::util::errors::ManifestError;
 use crate::util::restricted_names;
 use crate::util::toml::prepare_for_publish;
-use crate::util::FileLock;
-use crate::util::Filesystem;
-use crate::util::GlobalContext;
-use crate::util::Graph;
-use crate::util::HumanBytes;
 use crate::{drop_println, ops};
-use anyhow::{bail, Context as _};
+use anyhow::{Context as _, bail};
 use cargo_util::paths;
 use cargo_util_schemas::messages;
 use flate2::{Compression, GzBuilder};
@@ -714,9 +714,11 @@
     let tip = {
         let description_name = target.description_named();
         if path.is_file() {
-            format!("the source file of {description_name} doesn't appear to be a path inside of the package.\n\
+            format!(
+                "the source file of {description_name} doesn't appear to be a path inside of the package.\n\
             It is at `{}`, whereas the root the package is `{}`.\n",
-            path.display(), pkg.root().display()
+                path.display(),
+                pkg.root().display()
             )
         } else {
             format!("the source file of {description_name} doesn't appear to exist.\n",)
@@ -726,7 +728,8 @@
         "{}\
         This may cause issue during packaging, as modules resolution and resources included via macros are often relative to the path of source files.\n\
         Please update the `build` setting in the manifest at `{}` and point to a path inside the root of the package.",
-        tip,  pkg.manifest_path().display()
+        tip,
+        pkg.manifest_path().display()
     );
     anyhow::bail!(msg)
 }
diff --git a/src/cargo/ops/cargo_package/vcs.rs b/src/cargo/ops/cargo_package/vcs.rs
index 5f29a44..09107ab 100644
--- a/src/cargo/ops/cargo_package/vcs.rs
+++ b/src/cargo/ops/cargo_package/vcs.rs
@@ -9,11 +9,11 @@
 use serde::Serialize;
 use tracing::debug;
 
+use crate::CargoResult;
+use crate::GlobalContext;
 use crate::core::Package;
 use crate::core::Workspace;
 use crate::sources::PathEntry;
-use crate::CargoResult;
-use crate::GlobalContext;
 
 use super::PackageOpts;
 
diff --git a/src/cargo/ops/cargo_package/verify.rs b/src/cargo/ops/cargo_package/verify.rs
index d253ecb..5418f7e 100644
--- a/src/cargo/ops/cargo_package/verify.rs
+++ b/src/cargo/ops/cargo_package/verify.rs
@@ -3,8 +3,8 @@
 use std::collections::HashMap;
 use std::fs;
 use std::fs::File;
-use std::io::prelude::*;
 use std::io::SeekFrom;
+use std::io::prelude::*;
 use std::path::Path;
 use std::path::PathBuf;
 use std::sync::Arc;
@@ -14,19 +14,19 @@
 use flate2::read::GzDecoder;
 use tar::Archive;
 
-use crate::core::compiler::BuildConfig;
-use crate::core::compiler::DefaultExecutor;
-use crate::core::compiler::Executor;
-use crate::core::compiler::UserIntent;
+use crate::CargoResult;
 use crate::core::Feature;
 use crate::core::Package;
 use crate::core::SourceId;
 use crate::core::Workspace;
+use crate::core::compiler::BuildConfig;
+use crate::core::compiler::DefaultExecutor;
+use crate::core::compiler::Executor;
+use crate::core::compiler::UserIntent;
 use crate::ops;
 use crate::sources::PathSource;
 use crate::util;
 use crate::util::FileLock;
-use crate::CargoResult;
 
 use super::PackageOpts;
 use super::TmpRegistry;
diff --git a/src/cargo/ops/cargo_read_manifest.rs b/src/cargo/ops/cargo_read_manifest.rs
index 2431395..5637d16 100644
--- a/src/cargo/ops/cargo_read_manifest.rs
+++ b/src/cargo/ops/cargo_read_manifest.rs
@@ -1,9 +1,9 @@
 use std::path::Path;
 
 use crate::core::{EitherManifest, Package, SourceId};
+use crate::util::GlobalContext;
 use crate::util::errors::CargoResult;
 use crate::util::toml::read_manifest;
-use crate::util::GlobalContext;
 use tracing::trace;
 
 pub fn read_package(
diff --git a/src/cargo/ops/cargo_remove.rs b/src/cargo/ops/cargo_remove.rs
index 58932fa..81d7b42 100644
--- a/src/cargo/ops/cargo_remove.rs
+++ b/src/cargo/ops/cargo_remove.rs
@@ -1,10 +1,10 @@
 //! Core of cargo-remove command
 
+use crate::CargoResult;
+use crate::GlobalContext;
 use crate::core::Package;
 use crate::util::toml_mut::manifest::DepTable;
 use crate::util::toml_mut::manifest::LocalManifest;
-use crate::CargoResult;
-use crate::GlobalContext;
 
 /// Remove a dependency from a Cargo.toml manifest file.
 #[derive(Debug)]
diff --git a/src/cargo/ops/cargo_test.rs b/src/cargo/ops/cargo_test.rs
index 6c8e97a..f79a30e 100644
--- a/src/cargo/ops/cargo_test.rs
+++ b/src/cargo/ops/cargo_test.rs
@@ -5,7 +5,7 @@
 use crate::core::{TargetKind, Workspace};
 use crate::ops;
 use crate::util::errors::CargoResult;
-use crate::util::{add_path_args, CliError, CliResult, GlobalContext};
+use crate::util::{CliError, CliResult, GlobalContext, add_path_args};
 use anyhow::format_err;
 use cargo_util::{ProcessBuilder, ProcessError};
 use std::ffi::OsString;
diff --git a/src/cargo/ops/cargo_uninstall.rs b/src/cargo/ops/cargo_uninstall.rs
index 3a2fc39..e23df40 100644
--- a/src/cargo/ops/cargo_uninstall.rs
+++ b/src/cargo/ops/cargo_uninstall.rs
@@ -2,9 +2,9 @@
 use crate::core::{PackageIdSpec, PackageIdSpecQuery, SourceId};
 use crate::ops::common_for_install_and_uninstall::*;
 use crate::sources::PathSource;
-use crate::util::errors::CargoResult;
 use crate::util::Filesystem;
 use crate::util::GlobalContext;
+use crate::util::errors::CargoResult;
 use anyhow::bail;
 use std::collections::BTreeSet;
 use std::env;
@@ -16,7 +16,9 @@
     gctx: &GlobalContext,
 ) -> CargoResult<()> {
     if specs.len() > 1 && !bins.is_empty() {
-        bail!("A binary can only be associated with a single installed package, specifying multiple specs with --bin is redundant.");
+        bail!(
+            "A binary can only be associated with a single installed package, specifying multiple specs with --bin is redundant."
+        );
     }
 
     let root = resolve_root(root, gctx)?;
@@ -135,13 +137,7 @@
         }
     }
 
-    let to_remove = {
-        if bins.is_empty() {
-            installed
-        } else {
-            bins
-        }
-    };
+    let to_remove = { if bins.is_empty() { installed } else { bins } };
 
     for bin in to_remove {
         let bin_path = dst.join(&bin);
diff --git a/src/cargo/ops/cargo_update.rs b/src/cargo/ops/cargo_update.rs
index 32f84de..2a4982e 100644
--- a/src/cargo/ops/cargo_update.rs
+++ b/src/cargo/ops/cargo_update.rs
@@ -1,20 +1,20 @@
+use crate::core::Registry as _;
 use crate::core::dependency::Dependency;
 use crate::core::registry::PackageRegistry;
 use crate::core::resolver::features::{CliFeatures, HasDevUnits};
 use crate::core::shell::Verbosity;
-use crate::core::Registry as _;
 use crate::core::{PackageId, PackageIdSpec, PackageIdSpecQuery};
 use crate::core::{Resolve, SourceId, Workspace};
 use crate::ops;
-use crate::sources::source::QueryKind;
 use crate::sources::IndexSummary;
+use crate::sources::source::QueryKind;
 use crate::util::cache_lock::CacheLockMode;
 use crate::util::context::GlobalContext;
 use crate::util::toml_mut::dependency::{MaybeWorkspace, Source};
 use crate::util::toml_mut::manifest::LocalManifest;
 use crate::util::toml_mut::upgrade::upgrade_requirement;
-use crate::util::{style, OptVersionReq};
 use crate::util::{CargoResult, VersionExt};
+use crate::util::{OptVersionReq, style};
 use anyhow::Context as _;
 use cargo_util_schemas::core::PartialVersion;
 use indexmap::IndexMap;
@@ -460,8 +460,7 @@
                 let [comparator] = &new_req.comparators[..] else {
                     trace!(
                         "skipping dependency `{}` with multiple version comparators: {:?}",
-                        name,
-                        new_req.comparators
+                        name, new_req.comparators
                     );
                     continue;
                 };
diff --git a/src/cargo/ops/common_for_install_and_uninstall.rs b/src/cargo/ops/common_for_install_and_uninstall.rs
index ce594fa..f39bfd4 100644
--- a/src/cargo/ops/common_for_install_and_uninstall.rs
+++ b/src/cargo/ops/common_for_install_and_uninstall.rs
@@ -1,27 +1,27 @@
-use std::collections::{btree_map, BTreeMap, BTreeSet};
+use std::collections::{BTreeMap, BTreeSet, btree_map};
 use std::env;
-use std::io::prelude::*;
 use std::io::SeekFrom;
+use std::io::prelude::*;
 use std::path::{Path, PathBuf};
 use std::rc::Rc;
 use std::task::Poll;
 
-use anyhow::{bail, format_err, Context as _};
+use anyhow::{Context as _, bail, format_err};
 use cargo_util::paths;
 use cargo_util_schemas::core::PartialVersion;
 use ops::FilterRule;
 use serde::{Deserialize, Serialize};
 
-use crate::core::compiler::{DirtyReason, Freshness};
 use crate::core::Target;
+use crate::core::compiler::{DirtyReason, Freshness};
 use crate::core::{Dependency, FeatureValue, Package, PackageId, SourceId};
 use crate::ops::{self, CompileFilter, CompileOptions};
+use crate::sources::PathSource;
 use crate::sources::source::QueryKind;
 use crate::sources::source::Source;
-use crate::sources::PathSource;
+use crate::util::GlobalContext;
 use crate::util::cache_lock::CacheLockMode;
 use crate::util::errors::CargoResult;
-use crate::util::GlobalContext;
 use crate::util::{FileLock, Filesystem};
 
 /// On-disk tracking for which package installed which binary.
@@ -637,9 +637,10 @@
                     } else {
                         String::new()
                     };
-                    bail!("\
+                    bail!(
+                        "\
 cannot install package `{name} {ver}`, it requires rustc {msrv} or newer, while the currently active rustc version is {current}{extra}"
-)
+                    )
                 }
             }
             let pkg = Box::new(source).download_now(summary.package_id(), gctx)?;
diff --git a/src/cargo/ops/fix/mod.rs b/src/cargo/ops/fix/mod.rs
index 89d6799..093463c 100644
--- a/src/cargo/ops/fix/mod.rs
+++ b/src/cargo/ops/fix/mod.rs
@@ -43,28 +43,28 @@
 use std::process::{self, ExitStatus, Output};
 use std::{env, fs, str};
 
-use anyhow::{bail, Context as _};
-use cargo_util::{exit_status_to_string, is_simple_exit_code, paths, ProcessBuilder};
+use anyhow::{Context as _, bail};
+use cargo_util::{ProcessBuilder, exit_status_to_string, is_simple_exit_code, paths};
 use cargo_util_schemas::manifest::TomlManifest;
-use rustfix::diagnostics::Diagnostic;
 use rustfix::CodeFix;
+use rustfix::diagnostics::Diagnostic;
 use semver::Version;
 use tracing::{debug, trace, warn};
 
 pub use self::fix_edition::fix_edition;
+use crate::core::PackageIdSpecQuery as _;
 use crate::core::compiler::CompileKind;
 use crate::core::compiler::RustcTargetData;
 use crate::core::resolver::features::{DiffMap, FeatureOpts, FeatureResolver, FeaturesFor};
 use crate::core::resolver::{HasDevUnits, Resolve, ResolveBehavior};
-use crate::core::PackageIdSpecQuery as _;
 use crate::core::{Edition, MaybePackage, Package, PackageId, Workspace};
 use crate::ops::resolve::WorkspaceResolve;
 use crate::ops::{self, CompileOptions};
+use crate::util::GlobalContext;
 use crate::util::diagnostic_server::{Message, RustfixDiagnosticServer};
 use crate::util::errors::CargoResult;
 use crate::util::toml_mut::manifest::LocalManifest;
-use crate::util::GlobalContext;
-use crate::util::{existing_vcs_repo, LockServer, LockServerClient};
+use crate::util::{LockServer, LockServerClient, existing_vcs_repo};
 use crate::{drop_eprint, drop_eprintln};
 
 mod fix_edition;
diff --git a/src/cargo/ops/lockfile.rs b/src/cargo/ops/lockfile.rs
index c1c7d6c..279c9a1 100644
--- a/src/cargo/ops/lockfile.rs
+++ b/src/cargo/ops/lockfile.rs
@@ -1,8 +1,8 @@
 use std::io::prelude::*;
 
-use crate::core::{resolver, Resolve, ResolveVersion, Workspace};
-use crate::util::errors::CargoResult;
+use crate::core::{Resolve, ResolveVersion, Workspace, resolver};
 use crate::util::Filesystem;
+use crate::util::errors::CargoResult;
 
 use anyhow::Context as _;
 
diff --git a/src/cargo/ops/mod.rs b/src/cargo/ops/mod.rs
index 5cb49b3..7a0f268 100644
--- a/src/cargo/ops/mod.rs
+++ b/src/cargo/ops/mod.rs
@@ -1,35 +1,39 @@
 use crate::sources::CRATES_IO_DOMAIN;
 
-pub use self::cargo_clean::{clean, CleanContext, CleanOptions};
-pub use self::cargo_compile::{
-    compile, compile_with_exec, compile_ws, create_bcx, print, resolve_all_features, CompileOptions,
-};
+pub use self::cargo_clean::{CleanContext, CleanOptions, clean};
 pub use self::cargo_compile::{CompileFilter, FilterRule, LibRule, Packages};
-pub use self::cargo_doc::{doc, DocOptions, OutputFormat};
-pub use self::cargo_fetch::{fetch, FetchOptions};
+pub use self::cargo_compile::{
+    CompileOptions, compile, compile_with_exec, compile_ws, create_bcx, print, resolve_all_features,
+};
+pub use self::cargo_doc::{DocOptions, OutputFormat, doc};
+pub use self::cargo_fetch::{FetchOptions, fetch};
 pub use self::cargo_install::{install, install_list};
-pub use self::cargo_new::{init, new, NewOptions, NewProjectKind, VersionControl};
-pub use self::cargo_output_metadata::{output_metadata, ExportInfo, OutputMetadataOptions};
-pub use self::cargo_package::check_yanked;
-pub use self::cargo_package::package;
+pub use self::cargo_new::{NewOptions, NewProjectKind, VersionControl, init, new};
+pub use self::cargo_output_metadata::{ExportInfo, OutputMetadataOptions, output_metadata};
 pub use self::cargo_package::PackageMessageFormat;
 pub use self::cargo_package::PackageOpts;
+pub use self::cargo_package::check_yanked;
+pub use self::cargo_package::package;
 pub use self::cargo_pkgid::pkgid;
 pub use self::cargo_read_manifest::read_package;
 pub use self::cargo_run::run;
-pub use self::cargo_test::{run_benches, run_tests, TestOptions};
+pub use self::cargo_test::{TestOptions, run_benches, run_tests};
 pub use self::cargo_uninstall::uninstall;
+pub use self::cargo_update::UpdateOptions;
 pub use self::cargo_update::generate_lockfile;
 pub use self::cargo_update::print_lockfile_changes;
 pub use self::cargo_update::update_lockfile;
 pub use self::cargo_update::upgrade_manifests;
 pub use self::cargo_update::write_manifest_upgrades;
-pub use self::cargo_update::UpdateOptions;
-pub use self::common_for_install_and_uninstall::{resolve_root, InstallTracker};
+pub use self::common_for_install_and_uninstall::{InstallTracker, resolve_root};
 pub use self::fix::{
-    fix, fix_edition, fix_exec_rustc, fix_get_proxy_lock_addr, EditionFixMode, FixOptions,
+    EditionFixMode, FixOptions, fix, fix_edition, fix_exec_rustc, fix_get_proxy_lock_addr,
 };
 pub use self::lockfile::{load_pkg_lockfile, resolve_to_string, write_pkg_lockfile};
+pub use self::registry::OwnersOptions;
+pub use self::registry::PublishOpts;
+pub use self::registry::RegistryCredentialConfig;
+pub use self::registry::RegistryOrIndex;
 pub use self::registry::info;
 pub use self::registry::modify_owners;
 pub use self::registry::publish;
@@ -37,15 +41,11 @@
 pub use self::registry::registry_logout;
 pub use self::registry::search;
 pub use self::registry::yank;
-pub use self::registry::OwnersOptions;
-pub use self::registry::PublishOpts;
-pub use self::registry::RegistryCredentialConfig;
-pub use self::registry::RegistryOrIndex;
 pub use self::resolve::{
-    add_overrides, get_resolved_packages, resolve_with_previous, resolve_ws, resolve_ws_with_opts,
-    WorkspaceResolve,
+    WorkspaceResolve, add_overrides, get_resolved_packages, resolve_with_previous, resolve_ws,
+    resolve_ws_with_opts,
 };
-pub use self::vendor::{vendor, VendorOptions};
+pub use self::vendor::{VendorOptions, vendor};
 
 pub mod cargo_add;
 mod cargo_clean;
diff --git a/src/cargo/ops/registry/info/mod.rs b/src/cargo/ops/registry/info/mod.rs
index 52ee5ee..385c637 100644
--- a/src/cargo/ops/registry/info/mod.rs
+++ b/src/cargo/ops/registry/info/mod.rs
@@ -6,7 +6,7 @@
 use crate::core::registry::PackageRegistry;
 use crate::core::{Dependency, Package, PackageId, PackageIdSpecQuery, Registry, Workspace};
 use crate::ops::registry::info::view::pretty_view;
-use crate::ops::registry::{get_source_id_with_package_id, RegistryOrIndex, RegistrySourceIds};
+use crate::ops::registry::{RegistryOrIndex, RegistrySourceIds, get_source_id_with_package_id};
 use crate::ops::resolve_ws;
 use crate::sources::source::QueryKind;
 use crate::sources::{IndexSummary, SourceConfigMap};
diff --git a/src/cargo/ops/registry/info/view.rs b/src/cargo/ops/registry/info/view.rs
index c847e86..2ac6b67 100644
--- a/src/cargo/ops/registry/info/view.rs
+++ b/src/cargo/ops/registry/info/view.rs
@@ -4,12 +4,12 @@
 use crate::core::Shell;
 use crate::util::style::{ERROR, HEADER, LITERAL, NOP, NOTE, WARN};
 use crate::{
+    CargoResult, GlobalContext,
     core::{
-        dependency::DepKind, shell::Verbosity, Dependency, FeatureMap, Package, PackageId, SourceId,
+        Dependency, FeatureMap, Package, PackageId, SourceId, dependency::DepKind, shell::Verbosity,
     },
     sources::IndexSummary,
     util::interning::InternedString,
-    CargoResult, GlobalContext,
 };
 
 // Pretty print the package information.
diff --git a/src/cargo/ops/registry/login.rs b/src/cargo/ops/registry/login.rs
index 34e78e1..31534f2 100644
--- a/src/cargo/ops/registry/login.rs
+++ b/src/cargo/ops/registry/login.rs
@@ -7,16 +7,16 @@
 
 use std::io::IsTerminal;
 
-use crate::util::auth;
-use crate::util::auth::AuthorizationError;
 use crate::CargoResult;
 use crate::GlobalContext;
+use crate::util::auth;
+use crate::util::auth::AuthorizationError;
 use cargo_credential::LoginOptions;
 use cargo_credential::Secret;
 
+use super::RegistryOrIndex;
 use super::get_source_id;
 use super::registry;
-use super::RegistryOrIndex;
 
 pub fn registry_login(
     gctx: &GlobalContext,
diff --git a/src/cargo/ops/registry/logout.rs b/src/cargo/ops/registry/logout.rs
index aee03ad..d1d9520 100644
--- a/src/cargo/ops/registry/logout.rs
+++ b/src/cargo/ops/registry/logout.rs
@@ -3,12 +3,12 @@
 //! There is no web API for logout at this moment. Instead, it's just an
 //! operation for `cargo logout`.
 
-use crate::util::auth;
 use crate::CargoResult;
 use crate::GlobalContext;
+use crate::util::auth;
 
-use super::get_source_id;
 use super::RegistryOrIndex;
+use super::get_source_id;
 
 pub fn registry_logout(
     gctx: &GlobalContext,
diff --git a/src/cargo/ops/registry/mod.rs b/src/cargo/ops/registry/mod.rs
index 0189b2b..30e6ded 100644
--- a/src/cargo/ops/registry/mod.rs
+++ b/src/cargo/ops/registry/mod.rs
@@ -14,7 +14,7 @@
 use std::str;
 use std::task::Poll;
 
-use anyhow::{bail, format_err, Context as _};
+use anyhow::{Context as _, bail, format_err};
 use cargo_credential::{Operation, Secret};
 use crates_io::Registry;
 use url::Url;
@@ -31,10 +31,10 @@
 pub use self::info::info;
 pub use self::login::registry_login;
 pub use self::logout::registry_logout;
-pub use self::owner::modify_owners;
 pub use self::owner::OwnersOptions;
-pub use self::publish::publish;
+pub use self::owner::modify_owners;
 pub use self::publish::PublishOpts;
+pub use self::publish::publish;
 pub use self::search::search;
 pub use self::yank::yank;
 
diff --git a/src/cargo/ops/registry/owner.rs b/src/cargo/ops/registry/owner.rs
index 7c8246f..df638e8 100644
--- a/src/cargo/ops/registry/owner.rs
+++ b/src/cargo/ops/registry/owner.rs
@@ -6,12 +6,12 @@
 use cargo_credential::Operation;
 use cargo_credential::Secret;
 
+use crate::CargoResult;
+use crate::GlobalContext;
 use crate::core::Workspace;
 use crate::drop_print;
 use crate::drop_println;
 use crate::util::important_paths::find_root_manifest_for_wd;
-use crate::CargoResult;
-use crate::GlobalContext;
 
 use super::RegistryOrIndex;
 
diff --git a/src/cargo/ops/registry/publish.rs b/src/cargo/ops/registry/publish.rs
index dbec58f..f6707ea 100644
--- a/src/cargo/ops/registry/publish.rs
+++ b/src/cargo/ops/registry/publish.rs
@@ -11,8 +11,8 @@
 use std::io::SeekFrom;
 use std::time::Duration;
 
-use anyhow::bail;
 use anyhow::Context as _;
+use anyhow::bail;
 use cargo_credential::Operation;
 use cargo_credential::Secret;
 use cargo_util::paths;
@@ -21,36 +21,36 @@
 use crates_io::Registry;
 use itertools::Itertools;
 
-use crate::core::dependency::DepKind;
-use crate::core::manifest::ManifestMetadata;
-use crate::core::resolver::CliFeatures;
+use crate::CargoResult;
+use crate::GlobalContext;
 use crate::core::Dependency;
 use crate::core::Package;
 use crate::core::PackageId;
 use crate::core::PackageIdSpecQuery;
 use crate::core::SourceId;
 use crate::core::Workspace;
+use crate::core::dependency::DepKind;
+use crate::core::manifest::ManifestMetadata;
+use crate::core::resolver::CliFeatures;
 use crate::ops;
-use crate::ops::registry::RegistrySourceIds;
 use crate::ops::PackageOpts;
 use crate::ops::Packages;
 use crate::ops::RegistryOrIndex;
-use crate::sources::source::QueryKind;
-use crate::sources::source::Source;
+use crate::ops::registry::RegistrySourceIds;
+use crate::sources::CRATES_IO_REGISTRY;
 use crate::sources::RegistrySource;
 use crate::sources::SourceConfigMap;
-use crate::sources::CRATES_IO_REGISTRY;
+use crate::sources::source::QueryKind;
+use crate::sources::source::Source;
+use crate::util::Graph;
+use crate::util::Progress;
+use crate::util::ProgressStyle;
+use crate::util::VersionExt as _;
 use crate::util::auth;
 use crate::util::cache_lock::CacheLockMode;
 use crate::util::context::JobsConfig;
 use crate::util::errors::ManifestError;
 use crate::util::toml::prepare_for_publish;
-use crate::util::Graph;
-use crate::util::Progress;
-use crate::util::ProgressStyle;
-use crate::util::VersionExt as _;
-use crate::CargoResult;
-use crate::GlobalContext;
 
 use super::super::check_dep_has_version;
 
@@ -339,7 +339,9 @@
                 break;
             } else {
                 let failed_list = package_list(plan.iter(), "and");
-                bail!("unable to publish {failed_list} due to a timeout while waiting for published dependencies to be available.");
+                bail!(
+                    "unable to publish {failed_list} due to a timeout while waiting for published dependencies to be available."
+                );
             }
         }
         for id in &confirmed {
@@ -494,12 +496,14 @@
             // but also prevents someone using `--index` to specify
             // something that points to crates.io.
             if registry_src.is_crates_io() || registry.host_is_crates_io() {
-                bail!("crates cannot be published to crates.io with dependencies sourced from other\n\
+                bail!(
+                    "crates cannot be published to crates.io with dependencies sourced from other\n\
                        registries. `{}` needs to be published to crates.io before publishing this crate.\n\
                        (crate `{}` is pulled from {})",
-                      dep.package_name(),
-                      dep.package_name(),
-                      dep.source_id());
+                    dep.package_name(),
+                    dep.package_name(),
+                    dep.source_id()
+                );
             }
         }
     }
diff --git a/src/cargo/ops/registry/search.rs b/src/cargo/ops/registry/search.rs
index 1b6792f..c0829e9 100644
--- a/src/cargo/ops/registry/search.rs
+++ b/src/cargo/ops/registry/search.rs
@@ -7,11 +7,11 @@
 use anyhow::Context as _;
 use url::Url;
 
+use crate::CargoResult;
+use crate::GlobalContext;
 use crate::util::style;
 use crate::util::style::LITERAL;
 use crate::util::truncate_with_ellipsis;
-use crate::CargoResult;
-use crate::GlobalContext;
 
 use super::RegistryOrIndex;
 
diff --git a/src/cargo/ops/registry/yank.rs b/src/cargo/ops/registry/yank.rs
index f46b933..7923d2a 100644
--- a/src/cargo/ops/registry/yank.rs
+++ b/src/cargo/ops/registry/yank.rs
@@ -3,8 +3,8 @@
 //! [yank]: https://doc.rust-lang.org/nightly/cargo/reference/registry-web-api.html#yank
 //! [unyank]: https://doc.rust-lang.org/nightly/cargo/reference/registry-web-api.html#unyank
 
-use anyhow::bail;
 use anyhow::Context as _;
+use anyhow::bail;
 use cargo_credential::Operation;
 use cargo_credential::Secret;
 
diff --git a/src/cargo/ops/resolve.rs b/src/cargo/ops/resolve.rs
index 9e48f35..feb0bd1 100644
--- a/src/cargo/ops/resolve.rs
+++ b/src/cargo/ops/resolve.rs
@@ -55,6 +55,14 @@
 //! [source implementations]: crate::sources
 //! [`Downloads`]: crate::core::package::Downloads
 
+use crate::core::Dependency;
+use crate::core::GitReference;
+use crate::core::PackageId;
+use crate::core::PackageIdSpec;
+use crate::core::PackageIdSpecQuery;
+use crate::core::PackageSet;
+use crate::core::SourceId;
+use crate::core::Workspace;
 use crate::core::compiler::{CompileKind, RustcTargetData};
 use crate::core::registry::{LockedPatchDependency, PackageRegistry};
 use crate::core::resolver::features::{
@@ -64,20 +72,12 @@
     self, HasDevUnits, Resolve, ResolveOpts, ResolveVersion, VersionOrdering, VersionPreferences,
 };
 use crate::core::summary::Summary;
-use crate::core::Dependency;
-use crate::core::GitReference;
-use crate::core::PackageId;
-use crate::core::PackageIdSpec;
-use crate::core::PackageIdSpecQuery;
-use crate::core::PackageSet;
-use crate::core::SourceId;
-use crate::core::Workspace;
 use crate::ops;
 use crate::sources::RecursivePathSource;
+use crate::util::CanonicalUrl;
 use crate::util::cache_lock::CacheLockMode;
 use crate::util::context::FeatureUnification;
 use crate::util::errors::CargoResult;
-use crate::util::CanonicalUrl;
 use anyhow::Context as _;
 use cargo_util::paths;
 use cargo_util_schemas::core::PartialVersion;
diff --git a/src/cargo/ops/tree/format/mod.rs b/src/cargo/ops/tree/format/mod.rs
index f9c1706..ee09751 100644
--- a/src/cargo/ops/tree/format/mod.rs
+++ b/src/cargo/ops/tree/format/mod.rs
@@ -1,6 +1,6 @@
 use std::fmt;
 
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
 
 use self::parse::{Parser, RawChunk};
 use super::{Graph, Node, NodeId};
diff --git a/src/cargo/ops/tree/graph.rs b/src/cargo/ops/tree/graph.rs
index 5f44c98..d439c8d 100644
--- a/src/cargo/ops/tree/graph.rs
+++ b/src/cargo/ops/tree/graph.rs
@@ -3,11 +3,11 @@
 use super::TreeOptions;
 use crate::core::compiler::{CompileKind, RustcTargetData};
 use crate::core::dependency::DepKind;
-use crate::core::resolver::features::{CliFeatures, FeaturesFor, ResolvedFeatures};
 use crate::core::resolver::Resolve;
+use crate::core::resolver::features::{CliFeatures, FeaturesFor, ResolvedFeatures};
 use crate::core::{FeatureMap, FeatureValue, Package, PackageId, PackageIdSpec, Workspace};
-use crate::util::interning::{InternedString, INTERNED_DEFAULT};
 use crate::util::CargoResult;
+use crate::util::interning::{INTERNED_DEFAULT, InternedString};
 use std::collections::{HashMap, HashSet};
 
 #[derive(Debug, Copy, Clone)]
@@ -546,10 +546,12 @@
         }
     }
     if opts.graph_features {
-        assert!(graph
-            .dep_name_map
-            .insert(from_index, dep_name_map)
-            .is_none());
+        assert!(
+            graph
+                .dep_name_map
+                .insert(from_index, dep_name_map)
+                .is_none()
+        );
     }
 
     from_index
diff --git a/src/cargo/ops/tree/mod.rs b/src/cargo/ops/tree/mod.rs
index 977d778..99a82a2 100644
--- a/src/cargo/ops/tree/mod.rs
+++ b/src/cargo/ops/tree/mod.rs
@@ -3,7 +3,7 @@
 use self::format::Pattern;
 use crate::core::compiler::{CompileKind, RustcTargetData};
 use crate::core::dependency::DepKind;
-use crate::core::resolver::{features::CliFeatures, ForceAllTargets, HasDevUnits};
+use crate::core::resolver::{ForceAllTargets, HasDevUnits, features::CliFeatures};
 use crate::core::{Package, PackageId, PackageIdSpec, PackageIdSpecQuery, Workspace};
 use crate::ops::resolve::SpecsAndResolvedFeatures;
 use crate::ops::{self, Packages};
diff --git a/src/cargo/ops/vendor.rs b/src/cargo/ops/vendor.rs
index a0067e7..9906c2a 100644
--- a/src/cargo/ops/vendor.rs
+++ b/src/cargo/ops/vendor.rs
@@ -1,16 +1,16 @@
-use crate::core::shell::Verbosity;
 use crate::core::SourceId;
+use crate::core::shell::Verbosity;
 use crate::core::{GitReference, Package, Workspace};
 use crate::ops;
-use crate::sources::path::PathSource;
+use crate::sources::CRATES_IO_REGISTRY;
 use crate::sources::RegistrySource;
 use crate::sources::SourceConfigMap;
-use crate::sources::CRATES_IO_REGISTRY;
+use crate::sources::path::PathSource;
 use crate::util::cache_lock::CacheLockMode;
-use crate::util::{try_canonicalize, CargoResult, GlobalContext};
+use crate::util::{CargoResult, GlobalContext, try_canonicalize};
 
-use anyhow::{bail, Context as _};
-use cargo_util::{paths, Sha256};
+use anyhow::{Context as _, bail};
+use cargo_util::{Sha256, paths};
 use cargo_util_schemas::core::SourceKind;
 use cargo_util_schemas::manifest::TomlPackageBuild;
 use serde::Serialize;
diff --git a/src/cargo/sources/config.rs b/src/cargo/sources/config.rs
index 4190501..768d760 100644
--- a/src/cargo/sources/config.rs
+++ b/src/cargo/sources/config.rs
@@ -7,11 +7,11 @@
 use crate::core::{GitReference, PackageId, SourceId};
 use crate::sources::overlay::DependencyConfusionThreatOverlaySource;
 use crate::sources::source::Source;
-use crate::sources::{ReplacedSource, CRATES_IO_REGISTRY};
+use crate::sources::{CRATES_IO_REGISTRY, ReplacedSource};
 use crate::util::context::{self, ConfigRelativePath, OptValue};
 use crate::util::errors::CargoResult;
 use crate::util::{GlobalContext, IntoUrl};
-use anyhow::{bail, Context as _};
+use anyhow::{Context as _, bail};
 use std::collections::{HashMap, HashSet};
 use tracing::debug;
 use url::Url;
diff --git a/src/cargo/sources/directory.rs b/src/cargo/sources/directory.rs
index 6f676a7..b1bde85 100644
--- a/src/cargo/sources/directory.rs
+++ b/src/cargo/sources/directory.rs
@@ -4,16 +4,16 @@
 use std::task::Poll;
 
 use crate::core::{Dependency, Package, PackageId, SourceId};
+use crate::sources::IndexSummary;
+use crate::sources::PathSource;
 use crate::sources::source::MaybePackage;
 use crate::sources::source::QueryKind;
 use crate::sources::source::Source;
-use crate::sources::IndexSummary;
-use crate::sources::PathSource;
-use crate::util::errors::CargoResult;
 use crate::util::GlobalContext;
+use crate::util::errors::CargoResult;
 
 use anyhow::Context as _;
-use cargo_util::{paths, Sha256};
+use cargo_util::{Sha256, paths};
 use serde::Deserialize;
 
 /// `DirectorySource` contains a number of crates on the file system. It was
diff --git a/src/cargo/sources/git/known_hosts.rs b/src/cargo/sources/git/known_hosts.rs
index 9f112d6..c30f4ed 100644
--- a/src/cargo/sources/git/known_hosts.rs
+++ b/src/cargo/sources/git/known_hosts.rs
@@ -22,14 +22,14 @@
 //! added (it just adds a little complexity). For example, hostname patterns,
 //! and revoked markers. See "FIXME" comments littered in this file.
 
+use crate::CargoResult;
 use crate::util::context::{Definition, GlobalContext, Value};
 use crate::util::restricted_names::is_glob_pattern;
-use crate::CargoResult;
+use base64::Engine as _;
 use base64::engine::general_purpose::STANDARD;
 use base64::engine::general_purpose::STANDARD_NO_PAD;
-use base64::Engine as _;
-use git2::cert::{Cert, SshHostKeyType};
 use git2::CertificateCheckStatus;
+use git2::cert::{Cert, SshHostKeyType};
 use hmac::Mac;
 use std::collections::HashSet;
 use std::fmt::{Display, Write};
@@ -46,9 +46,21 @@
 /// These will be ignored if the user adds their own entries for `github.com`,
 /// which can be useful if GitHub ever revokes their old keys.
 static BUNDLED_KEYS: &[(&str, &str, &str)] = &[
-    ("github.com", "ssh-ed25519", "AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl"),
-    ("github.com", "ecdsa-sha2-nistp256", "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg="),
-    ("github.com", "ssh-rsa", "AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk="),
+    (
+        "github.com",
+        "ssh-ed25519",
+        "AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl",
+    ),
+    (
+        "github.com",
+        "ecdsa-sha2-nistp256",
+        "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=",
+    ),
+    (
+        "github.com",
+        "ssh-rsa",
+        "AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=",
+    ),
 ];
 
 /// List of keys that public hosts have rotated away from.
@@ -62,7 +74,11 @@
 /// has their own entries: we *know* that these keys are bad.
 static BUNDLED_REVOCATIONS: &[(&str, &str, &str)] = &[
     // Used until March 24, 2023: https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/
-    ("github.com", "ssh-rsa", "AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=="),
+    (
+        "github.com",
+        "ssh-rsa",
+        "AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==",
+    ),
 ];
 
 enum KnownHostError {
@@ -194,7 +210,8 @@
                 }
                 msg
             };
-            anyhow::bail!("error: unknown SSH host key\n\
+            anyhow::bail!(
+                "error: unknown SSH host key\n\
                 The SSH host key for `{hostname}` is not known and cannot be validated.\n\
                 \n\
                 To resolve this issue, add the host key to {known_hosts_location}\n\
@@ -208,7 +225,8 @@
                 {other_hosts_message}\n\
                 See https://doc.rust-lang.org/stable/cargo/appendix/git-authentication.html#ssh-known-hosts \
                 for more information.\n\
-                ")
+                "
+            )
         }
         Err(KnownHostError::HostKeyHasChanged {
             hostname,
@@ -243,7 +261,8 @@
                     )
                 }
             };
-            anyhow::bail!("error: SSH host key has changed for `{hostname}`\n\
+            anyhow::bail!(
+                "error: SSH host key has changed for `{hostname}`\n\
                 *********************************\n\
                 * WARNING: HOST KEY HAS CHANGED *\n\
                 *********************************\n\
@@ -266,7 +285,8 @@
                 \n\
                 See https://doc.rust-lang.org/stable/cargo/appendix/git-authentication.html#ssh-known-hosts \
                 for more information.\n\
-                ")
+                "
+            )
         }
         Err(KnownHostError::HostKeyRevoked {
             hostname,
@@ -769,13 +789,10 @@
         let kh_path = Path::new("/home/abc/.known_hosts");
         let khs = load_hostfile_contents(kh_path, COMMON_CONTENTS);
 
-        assert!(check_ssh_known_hosts_loaded(
-            &khs,
-            "example.com",
-            SshHostKeyType::Rsa,
-            &khs[0].key
-        )
-        .is_ok());
+        assert!(
+            check_ssh_known_hosts_loaded(&khs, "example.com", SshHostKeyType::Rsa, &khs[0].key)
+                .is_ok()
+        );
 
         match check_ssh_known_hosts_loaded(&khs, "example.com", SshHostKeyType::Dss, &khs[0].key) {
             Err(KnownHostError::HostKeyNotFound {
diff --git a/src/cargo/sources/git/mod.rs b/src/cargo/sources/git/mod.rs
index c9fb10b..20236a6 100644
--- a/src/cargo/sources/git/mod.rs
+++ b/src/cargo/sources/git/mod.rs
@@ -8,7 +8,7 @@
 //! [CVE-2022-46176]: https://blog.rust-lang.org/2023/01/10/cve-2022-46176.html
 
 pub use self::source::GitSource;
-pub use self::utils::{fetch, resolve_ref, GitCheckout, GitDatabase, GitRemote};
+pub use self::utils::{GitCheckout, GitDatabase, GitRemote, fetch, resolve_ref};
 mod known_hosts;
 mod oxide;
 mod source;
@@ -16,8 +16,8 @@
 
 /// For `-Zgitoxide` integration.
 pub mod fetch {
-    use crate::core::features::GitFeatures;
     use crate::GlobalContext;
+    use crate::core::features::GitFeatures;
 
     /// The kind remote repository to fetch.
     #[derive(Debug, Copy, Clone)]
diff --git a/src/cargo/sources/git/oxide.rs b/src/cargo/sources/git/oxide.rs
index e3b354a..37183ec 100644
--- a/src/cargo/sources/git/oxide.rs
+++ b/src/cargo/sources/git/oxide.rs
@@ -1,9 +1,9 @@
 //! This module contains all code sporting `gitoxide` for operations on `git` repositories and it mirrors
 //! `utils` closely for now. One day it can be renamed into `utils` once `git2` isn't required anymore.
 
-use crate::util::network::http::HttpTimeout;
 use crate::util::HumanBytes;
-use crate::util::{network, MetricsCounter, Progress};
+use crate::util::network::http::HttpTimeout;
+use crate::util::{MetricsCounter, Progress, network};
 use crate::{CargoResult, GlobalContext};
 use cargo_util::paths;
 use gix::bstr::{BString, ByteSlice};
@@ -19,14 +19,16 @@
 pub fn with_retry_and_progress(
     repo_path: &std::path::Path,
     gctx: &GlobalContext,
-    cb: &(dyn Fn(
+    cb: &(
+         dyn Fn(
         &std::path::Path,
         &AtomicBool,
         &mut gix::progress::tree::Item,
         &mut dyn FnMut(&gix::bstr::BStr),
     ) -> Result<(), crate::sources::git::fetch::Error>
-          + Send
-          + Sync),
+             + Send
+             + Sync
+     ),
 ) -> CargoResult<()> {
     std::thread::scope(|s| {
         let mut progress_bar = Progress::new("Fetch", gctx);
@@ -272,7 +274,7 @@
 /// Convert `git` related cargo configuration into the respective `git` configuration which can be
 /// used when opening new repositories.
 pub fn cargo_config_to_gitoxide_overrides(gctx: &GlobalContext) -> CargoResult<Vec<BString>> {
-    use gix::config::tree::{gitoxide, Core, Http, Key};
+    use gix::config::tree::{Core, Http, Key, gitoxide};
     let timeout = HttpTimeout::new(gctx)?;
     let http = gctx.http_config()?;
 
diff --git a/src/cargo/sources/git/source.rs b/src/cargo/sources/git/source.rs
index c81c5ba..2459b87 100644
--- a/src/cargo/sources/git/source.rs
+++ b/src/cargo/sources/git/source.rs
@@ -1,21 +1,21 @@
 //! See [`GitSource`].
 
-use crate::core::global_cache_tracker;
 use crate::core::GitReference;
 use crate::core::SourceId;
+use crate::core::global_cache_tracker;
 use crate::core::{Dependency, Package, PackageId};
-use crate::sources::git::utils::rev_to_oid;
+use crate::sources::IndexSummary;
+use crate::sources::RecursivePathSource;
 use crate::sources::git::utils::GitRemote;
+use crate::sources::git::utils::rev_to_oid;
 use crate::sources::source::MaybePackage;
 use crate::sources::source::QueryKind;
 use crate::sources::source::Source;
-use crate::sources::IndexSummary;
-use crate::sources::RecursivePathSource;
+use crate::util::GlobalContext;
 use crate::util::cache_lock::CacheLockMode;
 use crate::util::errors::CargoResult;
 use crate::util::hex::short_hash;
 use crate::util::interning::InternedString;
-use crate::util::GlobalContext;
 use anyhow::Context as _;
 use cargo_util::paths::exclude_from_backups_and_indexing;
 use std::fmt::{self, Debug, Formatter};
@@ -372,8 +372,7 @@
     fn download(&mut self, id: PackageId) -> CargoResult<MaybePackage> {
         trace!(
             "getting packages for package ID `{}` from `{:?}`",
-            id,
-            self.remote
+            id, self.remote
         );
         self.mark_used()?;
         self.path_source
diff --git a/src/cargo/sources/git/utils.rs b/src/cargo/sources/git/utils.rs
index 61f932e..a68bf70 100644
--- a/src/cargo/sources/git/utils.rs
+++ b/src/cargo/sources/git/utils.rs
@@ -5,15 +5,15 @@
 use crate::sources::git::fetch::RemoteKind;
 use crate::sources::git::oxide;
 use crate::sources::git::oxide::cargo_config_to_gitoxide_overrides;
-use crate::util::errors::CargoResult;
 use crate::util::HumanBytes;
-use crate::util::{network, GlobalContext, IntoUrl, MetricsCounter, Progress};
-use anyhow::{anyhow, Context as _};
-use cargo_util::{paths, ProcessBuilder};
+use crate::util::errors::CargoResult;
+use crate::util::{GlobalContext, IntoUrl, MetricsCounter, Progress, network};
+use anyhow::{Context as _, anyhow};
+use cargo_util::{ProcessBuilder, paths};
 use curl::easy::List;
 use git2::{ErrorClass, ObjectType, Oid};
-use serde::ser;
 use serde::Serialize;
+use serde::ser;
 use std::borrow::Cow;
 use std::fmt;
 use std::path::{Path, PathBuf};
diff --git a/src/cargo/sources/mod.rs b/src/cargo/sources/mod.rs
index dfbf79c..5d92c92 100644
--- a/src/cargo/sources/mod.rs
+++ b/src/cargo/sources/mod.rs
@@ -33,7 +33,7 @@
 pub use self::path::PathSource;
 pub use self::path::RecursivePathSource;
 pub use self::registry::{
-    IndexSummary, RegistrySource, CRATES_IO_DOMAIN, CRATES_IO_INDEX, CRATES_IO_REGISTRY,
+    CRATES_IO_DOMAIN, CRATES_IO_INDEX, CRATES_IO_REGISTRY, IndexSummary, RegistrySource,
 };
 pub use self::replaced::ReplacedSource;
 
diff --git a/src/cargo/sources/path.rs b/src/cargo/sources/path.rs
index 3d45113..8e754e0 100644
--- a/src/cargo/sources/path.rs
+++ b/src/cargo/sources/path.rs
@@ -7,15 +7,15 @@
 
 use crate::core::{Dependency, EitherManifest, Manifest, Package, PackageId, SourceId};
 use crate::ops;
+use crate::sources::IndexSummary;
 use crate::sources::source::MaybePackage;
 use crate::sources::source::QueryKind;
 use crate::sources::source::Source;
-use crate::sources::IndexSummary;
+use crate::util::GlobalContext;
 use crate::util::errors::CargoResult;
 use crate::util::important_paths::find_project_manifest_exact;
 use crate::util::internal;
 use crate::util::toml::read_manifest;
-use crate::util::GlobalContext;
 use anyhow::Context as _;
 use cargo_util::paths;
 use filetime::FileTime;
@@ -1042,9 +1042,9 @@
             None => {
                 if find_project_manifest_exact(path, "cargo.toml").is_ok() {
                     Err(anyhow::format_err!(
-                "Could not find Cargo.toml in `{}`, but found cargo.toml please try to rename it to Cargo.toml",
-                path.display()
-            ))
+                        "Could not find Cargo.toml in `{}`, but found cargo.toml please try to rename it to Cargo.toml",
+                        path.display()
+                    ))
                 } else {
                     Err(anyhow::format_err!(
                         "Could not find Cargo.toml in `{}`",
diff --git a/src/cargo/sources/registry/download.rs b/src/cargo/sources/registry/download.rs
index 731b0b2..5be518d 100644
--- a/src/cargo/sources/registry/download.rs
+++ b/src/cargo/sources/registry/download.rs
@@ -6,11 +6,11 @@
 use crate::util::interning::InternedString;
 use anyhow::Context as _;
 use cargo_credential::Operation;
-use cargo_util::registry::make_dep_path;
 use cargo_util::Sha256;
+use cargo_util::registry::make_dep_path;
 
-use crate::core::global_cache_tracker;
 use crate::core::PackageId;
+use crate::core::global_cache_tracker;
 use crate::sources::registry::MaybeLock;
 use crate::sources::registry::RegistryConfig;
 use crate::util::auth;
@@ -19,8 +19,8 @@
 use crate::util::{Filesystem, GlobalContext};
 use std::fmt::Write as FmtWrite;
 use std::fs::{self, File, OpenOptions};
-use std::io::prelude::*;
 use std::io::SeekFrom;
+use std::io::prelude::*;
 use std::str;
 
 const CRATE_TEMPLATE: &str = "{crate}";
diff --git a/src/cargo/sources/registry/http_remote.rs b/src/cargo/sources/registry/http_remote.rs
index b830294..420c41c 100644
--- a/src/cargo/sources/registry/http_remote.rs
+++ b/src/cargo/sources/registry/http_remote.rs
@@ -2,8 +2,8 @@
 
 use crate::core::global_cache_tracker;
 use crate::core::{PackageId, SourceId};
-use crate::sources::registry::download;
 use crate::sources::registry::MaybeLock;
+use crate::sources::registry::download;
 use crate::sources::registry::{LoadResponse, RegistryConfig, RegistryData};
 use crate::util::cache_lock::CacheLockMode;
 use crate::util::errors::{CargoResult, HttpNotSuccessful};
@@ -11,7 +11,7 @@
 use crate::util::network::http::http_handle;
 use crate::util::network::retry::{Retry, RetryResult};
 use crate::util::network::sleep::SleepTracker;
-use crate::util::{auth, Filesystem, GlobalContext, IntoUrl, Progress, ProgressStyle};
+use crate::util::{Filesystem, GlobalContext, IntoUrl, Progress, ProgressStyle, auth};
 use anyhow::Context as _;
 use cargo_credential::Operation;
 use cargo_util::paths;
@@ -23,7 +23,7 @@
 use std::io::ErrorKind;
 use std::path::{Path, PathBuf};
 use std::str;
-use std::task::{ready, Poll};
+use std::task::{Poll, ready};
 use std::time::Duration;
 use tracing::{debug, trace};
 use url::Url;
diff --git a/src/cargo/sources/registry/index/cache.rs b/src/cargo/sources/registry/index/cache.rs
index f6e7d96..3a9017d 100644
--- a/src/cargo/sources/registry/index/cache.rs
+++ b/src/cargo/sources/registry/index/cache.rs
@@ -75,13 +75,13 @@
 use cargo_util::registry::make_dep_path;
 use semver::Version;
 
-use crate::util::cache_lock::CacheLockMode;
-use crate::util::Filesystem;
 use crate::CargoResult;
 use crate::GlobalContext;
+use crate::util::Filesystem;
+use crate::util::cache_lock::CacheLockMode;
 
-use super::split;
 use super::INDEX_V_MAX;
+use super::split;
 
 /// The current version of [`SummariesCache`].
 const CURRENT_CACHE_VERSION: u8 = 3;
diff --git a/src/cargo/sources/registry/index/mod.rs b/src/cargo/sources/registry/index/mod.rs
index bde1c8e..f09fa77 100644
--- a/src/cargo/sources/registry/index/mod.rs
+++ b/src/cargo/sources/registry/index/mod.rs
@@ -20,13 +20,13 @@
 //!
 //! To learn the rationale behind this multi-layer index metadata loading,
 //! see [the documentation of the on-disk index cache](cache).
-use crate::core::dependency::{Artifact, DepKind};
 use crate::core::Dependency;
+use crate::core::dependency::{Artifact, DepKind};
 use crate::core::{PackageId, SourceId, Summary};
 use crate::sources::registry::{LoadResponse, RegistryData};
-use crate::util::interning::InternedString;
 use crate::util::IntoUrl;
-use crate::util::{internal, CargoResult, Filesystem, GlobalContext, OptVersionReq};
+use crate::util::interning::InternedString;
+use crate::util::{CargoResult, Filesystem, GlobalContext, OptVersionReq, internal};
 use cargo_util::registry::make_dep_path;
 use cargo_util_schemas::manifest::RustVersion;
 use semver::Version;
@@ -36,7 +36,7 @@
 use std::collections::HashMap;
 use std::path::Path;
 use std::str;
-use std::task::{ready, Poll};
+use std::task::{Poll, ready};
 use tracing::info;
 
 mod cache;
diff --git a/src/cargo/sources/registry/local.rs b/src/cargo/sources/registry/local.rs
index 03a37bb..fa4c001 100644
--- a/src/cargo/sources/registry/local.rs
+++ b/src/cargo/sources/registry/local.rs
@@ -4,7 +4,7 @@
 use crate::sources::registry::{LoadResponse, MaybeLock, RegistryConfig, RegistryData};
 use crate::util::errors::CargoResult;
 use crate::util::{Filesystem, GlobalContext};
-use cargo_util::{paths, Sha256};
+use cargo_util::{Sha256, paths};
 use std::fs::File;
 use std::io::SeekFrom;
 use std::io::{self, prelude::*};
diff --git a/src/cargo/sources/registry/mod.rs b/src/cargo/sources/registry/mod.rs
index f622ab4..4d351f7 100644
--- a/src/cargo/sources/registry/mod.rs
+++ b/src/cargo/sources/registry/mod.rs
@@ -190,7 +190,7 @@
 use std::io::Read;
 use std::io::Write;
 use std::path::{Path, PathBuf};
-use std::task::{ready, Poll};
+use std::task::{Poll, ready};
 
 use anyhow::Context as _;
 use cargo_util::paths::{self, exclude_from_backups_and_indexing};
@@ -203,15 +203,15 @@
 use crate::core::dependency::Dependency;
 use crate::core::global_cache_tracker;
 use crate::core::{Package, PackageId, SourceId};
+use crate::sources::PathSource;
 use crate::sources::source::MaybePackage;
 use crate::sources::source::QueryKind;
 use crate::sources::source::Source;
-use crate::sources::PathSource;
 use crate::util::cache_lock::CacheLockMode;
 use crate::util::interning::InternedString;
 use crate::util::network::PollExt;
-use crate::util::{hex, VersionExt};
-use crate::util::{restricted_names, CargoResult, Filesystem, GlobalContext, LimitErrorReader};
+use crate::util::{CargoResult, Filesystem, GlobalContext, LimitErrorReader, restricted_names};
+use crate::util::{VersionExt, hex};
 
 /// The `.cargo-ok` file is used to track if the source is already unpacked.
 /// See [`RegistrySource::unpack_package`] for more.
@@ -408,7 +408,7 @@
     ///
     /// Returns a [`File`] handle to the `.crate` file, positioned at the start.
     fn finish_download(&mut self, pkg: PackageId, checksum: &str, data: &[u8])
-        -> CargoResult<File>;
+    -> CargoResult<File>;
 
     /// Returns whether or not the `.crate` file is already downloaded.
     fn is_crate_downloaded(&self, _pkg: PackageId) -> bool {
@@ -750,16 +750,17 @@
         // updated, so we fall back to performing a lazy update.
         if kind == QueryKind::Exact && req.is_locked() && !self.ops.is_updated() {
             debug!("attempting query without update");
-            ready!(self
-                .index
-                .query_inner(dep.package_name(), &req, &mut *self.ops, &mut |s| {
-                    if matches!(s, IndexSummary::Candidate(_) | IndexSummary::Yanked(_))
-                        && dep.matches(s.as_summary())
-                    {
-                        // We are looking for a package from a lock file so we do not care about yank
-                        callback(s)
-                    }
-                },))?;
+            ready!(
+                self.index
+                    .query_inner(dep.package_name(), &req, &mut *self.ops, &mut |s| {
+                        if matches!(s, IndexSummary::Candidate(_) | IndexSummary::Yanked(_))
+                            && dep.matches(s.as_summary())
+                        {
+                            // We are looking for a package from a lock file so we do not care about yank
+                            callback(s)
+                        }
+                    },)
+            )?;
             if called {
                 Poll::Ready(Ok(()))
             } else {
@@ -769,53 +770,62 @@
             }
         } else {
             let mut precise_yanked_in_use = false;
-            ready!(self
-                .index
-                .query_inner(dep.package_name(), &req, &mut *self.ops, &mut |s| {
-                    let matched = match kind {
-                        QueryKind::Exact | QueryKind::RejectedVersions => {
-                            if req.is_precise() && self.gctx.cli_unstable().unstable_options {
-                                dep.matches_prerelease(s.as_summary())
-                            } else {
-                                dep.matches(s.as_summary())
+            ready!(
+                self.index
+                    .query_inner(dep.package_name(), &req, &mut *self.ops, &mut |s| {
+                        let matched = match kind {
+                            QueryKind::Exact | QueryKind::RejectedVersions => {
+                                if req.is_precise() && self.gctx.cli_unstable().unstable_options {
+                                    dep.matches_prerelease(s.as_summary())
+                                } else {
+                                    dep.matches(s.as_summary())
+                                }
+                            }
+                            QueryKind::AlternativeNames => true,
+                            QueryKind::Normalized => true,
+                        };
+                        if !matched {
+                            return;
+                        }
+                        // Next filter out all yanked packages. Some yanked packages may
+                        // leak through if they're in a whitelist (aka if they were
+                        // previously in `Cargo.lock`
+                        match s {
+                            s @ _ if kind == QueryKind::RejectedVersions => callback(s),
+                            s @ IndexSummary::Candidate(_) => callback(s),
+                            s @ IndexSummary::Yanked(_) => {
+                                if self.yanked_whitelist.contains(&s.package_id()) {
+                                    callback(s);
+                                } else if req.is_precise() {
+                                    precise_yanked_in_use = true;
+                                    callback(s);
+                                }
+                            }
+                            IndexSummary::Unsupported(summary, v) => {
+                                tracing::debug!(
+                                    "unsupported schema version {} ({} {})",
+                                    v,
+                                    summary.name(),
+                                    summary.version()
+                                );
+                            }
+                            IndexSummary::Invalid(summary) => {
+                                tracing::debug!(
+                                    "invalid ({} {})",
+                                    summary.name(),
+                                    summary.version()
+                                );
+                            }
+                            IndexSummary::Offline(summary) => {
+                                tracing::debug!(
+                                    "offline ({} {})",
+                                    summary.name(),
+                                    summary.version()
+                                );
                             }
                         }
-                        QueryKind::AlternativeNames => true,
-                        QueryKind::Normalized => true,
-                    };
-                    if !matched {
-                        return;
-                    }
-                    // Next filter out all yanked packages. Some yanked packages may
-                    // leak through if they're in a whitelist (aka if they were
-                    // previously in `Cargo.lock`
-                    match s {
-                        s @ _ if kind == QueryKind::RejectedVersions => callback(s),
-                        s @ IndexSummary::Candidate(_) => callback(s),
-                        s @ IndexSummary::Yanked(_) => {
-                            if self.yanked_whitelist.contains(&s.package_id()) {
-                                callback(s);
-                            } else if req.is_precise() {
-                                precise_yanked_in_use = true;
-                                callback(s);
-                            }
-                        }
-                        IndexSummary::Unsupported(summary, v) => {
-                            tracing::debug!(
-                                "unsupported schema version {} ({} {})",
-                                v,
-                                summary.name(),
-                                summary.version()
-                            );
-                        }
-                        IndexSummary::Invalid(summary) => {
-                            tracing::debug!("invalid ({} {})", summary.name(), summary.version());
-                        }
-                        IndexSummary::Offline(summary) => {
-                            tracing::debug!("offline ({} {})", summary.name(), summary.version());
-                        }
-                    }
-                }))?;
+                    })
+            )?;
             if precise_yanked_in_use {
                 let name = dep.package_name();
                 let version = req
diff --git a/src/cargo/sources/registry/remote.rs b/src/cargo/sources/registry/remote.rs
index 6398689..56e9362 100644
--- a/src/cargo/sources/registry/remote.rs
+++ b/src/cargo/sources/registry/remote.rs
@@ -5,8 +5,8 @@
 use crate::sources::git;
 use crate::sources::git::fetch::RemoteKind;
 use crate::sources::git::resolve_ref;
-use crate::sources::registry::download;
 use crate::sources::registry::MaybeLock;
+use crate::sources::registry::download;
 use crate::sources::registry::{LoadResponse, RegistryConfig, RegistryData};
 use crate::util::cache_lock::CacheLockMode;
 use crate::util::errors::CargoResult;
@@ -20,7 +20,7 @@
 use std::mem;
 use std::path::Path;
 use std::str;
-use std::task::{ready, Poll};
+use std::task::{Poll, ready};
 use tracing::{debug, trace};
 
 /// A remote registry is a registry that lives at a remote URL (such as
diff --git a/src/cargo/sources/replaced.rs b/src/cargo/sources/replaced.rs
index c642579..d6f6519 100644
--- a/src/cargo/sources/replaced.rs
+++ b/src/cargo/sources/replaced.rs
@@ -1,8 +1,8 @@
 use crate::core::{Dependency, Package, PackageId, SourceId};
+use crate::sources::IndexSummary;
 use crate::sources::source::MaybePackage;
 use crate::sources::source::QueryKind;
 use crate::sources::source::Source;
-use crate::sources::IndexSummary;
 use crate::util::errors::CargoResult;
 use std::task::Poll;
 
diff --git a/src/cargo/sources/source.rs b/src/cargo/sources/source.rs
index 0456840..afe28f3 100644
--- a/src/cargo/sources/source.rs
+++ b/src/cargo/sources/source.rs
@@ -4,8 +4,8 @@
 use std::fmt;
 use std::task::Poll;
 
-use crate::core::package::PackageSet;
 use crate::core::SourceId;
+use crate::core::package::PackageSet;
 use crate::core::{Dependency, Package, PackageId};
 use crate::sources::IndexSummary;
 use crate::util::{CargoResult, GlobalContext};
diff --git a/src/cargo/util/auth/mod.rs b/src/cargo/util/auth/mod.rs
index 0ce9d41..fa4b4e1 100644
--- a/src/cargo/util/auth/mod.rs
+++ b/src/cargo/util/auth/mod.rs
@@ -2,9 +2,9 @@
 
 use crate::{
     core::features::cargo_docs_link,
-    util::{context::ConfigKey, CanonicalUrl, CargoResult, GlobalContext, IntoUrl},
+    util::{CanonicalUrl, CargoResult, GlobalContext, IntoUrl, context::ConfigKey},
 };
-use anyhow::{bail, Context as _};
+use anyhow::{Context as _, bail};
 use cargo_credential::{
     Action, CacheControl, Credential, CredentialResponse, LoginOptions, Operation, RegistryInfo,
     Secret,
@@ -167,9 +167,12 @@
                             secret_key.definition
                         ))?;
                     } else {
-                        warn(format!("{sid} has a `token` configured in {} that will be ignored \
+                        warn(format!(
+                            "{sid} has a `token` configured in {} that will be ignored \
                         because a `secret_key` is also configured, and the `cargo:paseto` provider is \
-                        configured with higher precedence", token.definition))?;
+                        configured with higher precedence",
+                            token.definition
+                        ))?;
                     }
                 }
                 (_, _) => {
@@ -511,8 +514,8 @@
 /// Retrieves a cached instance of `LibSecretCredential`.
 /// Must be cached to avoid repeated load/unload cycles, which are not supported by `glib`.
 #[cfg(target_os = "linux")]
-fn get_credential_libsecret(
-) -> CargoResult<&'static cargo_credential_libsecret::LibSecretCredential> {
+fn get_credential_libsecret()
+-> CargoResult<&'static cargo_credential_libsecret::LibSecretCredential> {
     static CARGO_CREDENTIAL_LIBSECRET: std::sync::OnceLock<
         cargo_credential_libsecret::LibSecretCredential,
     > = std::sync::OnceLock::new();
@@ -592,7 +595,7 @@
                         "credential provider `{}` failed action `{action}`",
                         args.join(" ")
                     )
-                })
+                });
             }
         }
     }
@@ -676,7 +679,9 @@
         operation_independent,
     } = credential_response
     else {
-        bail!("credential provider produced unexpected response for `get` request: {credential_response:?}")
+        bail!(
+            "credential provider produced unexpected response for `get` request: {credential_response:?}"
+        )
     };
     let token = Secret::from(token);
     tracing::trace!("found token");
@@ -716,7 +721,9 @@
     }
     let credential_response = credential_response?;
     let CredentialResponse::Logout = credential_response else {
-        bail!("credential provider produced unexpected response for `logout` request: {credential_response:?}")
+        bail!(
+            "credential provider produced unexpected response for `logout` request: {credential_response:?}"
+        )
     };
     Ok(())
 }
@@ -731,7 +738,9 @@
     let credential_response =
         credential_action(gctx, sid, Action::Login(options), vec![], args, false)?;
     let CredentialResponse::Login = credential_response else {
-        bail!("credential provider produced unexpected response for `login` request: {credential_response:?}")
+        bail!(
+            "credential provider produced unexpected response for `login` request: {credential_response:?}"
+        )
     };
     Ok(())
 }
diff --git a/src/cargo/util/command_prelude.rs b/src/cargo/util/command_prelude.rs
index 2946021..0a636f8 100644
--- a/src/cargo/util/command_prelude.rs
+++ b/src/cargo/util/command_prelude.rs
@@ -1,9 +1,10 @@
+use crate::CargoResult;
+use crate::core::Dependency;
 use crate::core::compiler::{
     BuildConfig, CompileKind, MessageFormat, RustcTargetData, TimingOutput,
 };
 use crate::core::resolver::{CliFeatures, ForceAllTargets, HasDevUnits};
-use crate::core::Dependency;
-use crate::core::{profiles::Profiles, shell, Edition, Package, Target, TargetKind, Workspace};
+use crate::core::{Edition, Package, Target, TargetKind, Workspace, profiles::Profiles, shell};
 use crate::ops::lockfile::LOCKFILE_NAME;
 use crate::ops::registry::RegistryOrIndex;
 use crate::ops::{self, CompileFilter, CompileOptions, NewOptions, Packages, VersionControl};
@@ -16,7 +17,6 @@
     print_available_benches, print_available_binaries, print_available_examples,
     print_available_packages, print_available_tests,
 };
-use crate::CargoResult;
 use anyhow::bail;
 use cargo_util::paths;
 use cargo_util_schemas::manifest::ProfileName;
@@ -34,12 +34,12 @@
 
 pub use crate::core::compiler::UserIntent;
 pub use crate::{CliError, CliResult, GlobalContext};
-pub use clap::{value_parser, Arg, ArgAction, ArgMatches};
+pub use clap::{Arg, ArgAction, ArgMatches, value_parser};
 
 pub use clap::Command;
 
-use super::context::JobsConfig;
 use super::IntoUrl;
+use super::context::JobsConfig;
 
 pub mod heading {
     pub const PACKAGE_SELECTION: &str = "Package Selection";
@@ -139,7 +139,9 @@
         command: &'static str,
         supported_mode: &'static str,
     ) -> Self {
-        let msg = format!("`--{default_mode}` is the default for `cargo {command}`; instead `--{supported_mode}` is supported");
+        let msg = format!(
+            "`--{default_mode}` is the default for `cargo {command}`; instead `--{supported_mode}` is supported"
+        );
         let value_parser = UnknownArgumentValueParser::suggest(msg);
         self._arg(
             flag(default_mode, "")
@@ -1107,7 +1109,9 @@
     let path = gctx.cwd().join(lockfile_path);
 
     if !path.ends_with(LOCKFILE_NAME) {
-        bail!("the lockfile-path must be a path to a {LOCKFILE_NAME} file (please rename your lock file to {LOCKFILE_NAME})")
+        bail!(
+            "the lockfile-path must be a path to a {LOCKFILE_NAME} file (please rename your lock file to {LOCKFILE_NAME})"
+        )
     }
     if path.is_dir() {
         bail!(
diff --git a/src/cargo/util/context/mod.rs b/src/cargo/util/context/mod.rs
index 4b07957..ef69f38 100644
--- a/src/cargo/util/context/mod.rs
+++ b/src/cargo/util/context/mod.rs
@@ -58,8 +58,8 @@
 use std::ffi::{OsStr, OsString};
 use std::fmt;
 use std::fs::{self, File};
-use std::io::prelude::*;
 use std::io::SeekFrom;
+use std::io::prelude::*;
 use std::mem;
 use std::path::{Path, PathBuf};
 use std::str::FromStr;
@@ -70,24 +70,24 @@
 use crate::core::compiler::rustdoc::RustdocExternMap;
 use crate::core::global_cache_tracker::{DeferredGlobalLastUse, GlobalCacheTracker};
 use crate::core::shell::Verbosity;
-use crate::core::{features, CliUnstable, Shell, SourceId, Workspace, WorkspaceRootConfig};
+use crate::core::{CliUnstable, Shell, SourceId, Workspace, WorkspaceRootConfig, features};
 use crate::ops::RegistryCredentialConfig;
 use crate::sources::CRATES_IO_INDEX;
 use crate::sources::CRATES_IO_REGISTRY;
 use crate::util::errors::CargoResult;
 use crate::util::network::http::configure_http_handle;
 use crate::util::network::http::http_handle;
-use crate::util::{closest_msg, internal, CanonicalUrl};
+use crate::util::{CanonicalUrl, closest_msg, internal};
 use crate::util::{Filesystem, IntoUrl, IntoUrlWithBase, Rustc};
-use anyhow::{anyhow, bail, format_err, Context as _};
+use anyhow::{Context as _, anyhow, bail, format_err};
 use cargo_credential::Secret;
 use cargo_util::paths;
 use cargo_util_schemas::manifest::RegistryName;
 use curl::easy::Easy;
 use itertools::Itertools;
 use lazycell::LazyCell;
-use serde::de::IntoDeserializer as _;
 use serde::Deserialize;
+use serde::de::IntoDeserializer as _;
 use serde_untagged::UntaggedEnumVisitor;
 use time::OffsetDateTime;
 use toml_edit::Item;
@@ -3146,10 +3146,10 @@
 
 #[cfg(test)]
 mod tests {
-    use super::disables_multiplexing_for_bad_curl;
     use super::CargoHttpConfig;
     use super::GlobalContext;
     use super::Shell;
+    use super::disables_multiplexing_for_bad_curl;
 
     #[test]
     fn disables_multiplexing() {
diff --git a/src/cargo/util/context/path.rs b/src/cargo/util/context/path.rs
index 84e5e92..d69be66 100644
--- a/src/cargo/util/context/path.rs
+++ b/src/cargo/util/context/path.rs
@@ -1,6 +1,6 @@
 use super::{GlobalContext, StringList, Value};
 use regex::Regex;
-use serde::{de::Error, Deserialize};
+use serde::{Deserialize, de::Error};
 use std::path::PathBuf;
 
 /// Use with the `get` API to fetch a string that will be converted to a
diff --git a/src/cargo/util/context/target.rs b/src/cargo/util/context/target.rs
index 0dd5cfc..85955e6 100644
--- a/src/cargo/util/context/target.rs
+++ b/src/cargo/util/context/target.rs
@@ -1,4 +1,4 @@
-use super::{ConfigKey, ConfigRelativePath, GlobalContext, OptValue, PathAndArgs, StringList, CV};
+use super::{CV, ConfigKey, ConfigRelativePath, GlobalContext, OptValue, PathAndArgs, StringList};
 use crate::core::compiler::{BuildOutput, LibraryPath, LinkArgTarget};
 use crate::util::CargoResult;
 use serde::Deserialize;
diff --git a/src/cargo/util/counter.rs b/src/cargo/util/counter.rs
index 82e5add..069b245 100644
--- a/src/cargo/util/counter.rs
+++ b/src/cargo/util/counter.rs
@@ -31,11 +31,7 @@
         let oldest = self.slots[self.index];
         let duration = (latest.1 - oldest.1).as_secs_f32();
         let avg = (latest.0 - oldest.0) as f32 / duration;
-        if f32::is_nan(avg) {
-            0f32
-        } else {
-            avg
-        }
+        if f32::is_nan(avg) { 0f32 } else { avg }
     }
 }
 
diff --git a/src/cargo/util/credential/paseto.rs b/src/cargo/util/credential/paseto.rs
index 0d55260..648fb91 100644
--- a/src/cargo/util/credential/paseto.rs
+++ b/src/cargo/util/credential/paseto.rs
@@ -9,14 +9,14 @@
     keys::{AsymmetricKeyPair, AsymmetricPublicKey, AsymmetricSecretKey, Generate},
     paserk::FormatAsPaserk,
 };
-use time::{format_description::well_known::Rfc3339, OffsetDateTime};
+use time::{OffsetDateTime, format_description::well_known::Rfc3339};
 use url::Url;
 
 use crate::{
+    GlobalContext,
     core::SourceId,
     ops::RegistryCredentialConfig,
     util::{auth::registry_credential_config_raw, command_prelude::opt, context},
-    GlobalContext,
 };
 
 /// The main body of an asymmetric token as describe in RFC 3231.
diff --git a/src/cargo/util/credential/token.rs b/src/cargo/util/credential/token.rs
index c58c874..46f55be 100644
--- a/src/cargo/util/credential/token.rs
+++ b/src/cargo/util/credential/token.rs
@@ -5,10 +5,10 @@
 use url::Url;
 
 use crate::{
+    GlobalContext,
     core::SourceId,
     ops::RegistryCredentialConfig,
     util::{auth::registry_credential_config_raw, context},
-    GlobalContext,
 };
 
 pub struct TokenCredential<'a> {
diff --git a/src/cargo/util/diagnostic_server.rs b/src/cargo/util/diagnostic_server.rs
index 93b378c..a3b1fd4 100644
--- a/src/cargo/util/diagnostic_server.rs
+++ b/src/cargo/util/diagnostic_server.rs
@@ -5,8 +5,8 @@
 use std::io::{BufReader, Read, Write};
 use std::net::{Shutdown, SocketAddr, TcpListener, TcpStream};
 use std::path::PathBuf;
-use std::sync::atomic::{AtomicBool, Ordering};
 use std::sync::Arc;
+use std::sync::atomic::{AtomicBool, Ordering};
 use std::thread::{self, JoinHandle};
 
 use anyhow::{Context as _, Error};
@@ -15,9 +15,9 @@
 use tracing::warn;
 
 use crate::core::Edition;
+use crate::util::GlobalContext;
 use crate::util::errors::CargoResult;
 use crate::util::network::LOCALHOST;
-use crate::util::GlobalContext;
 
 const DIAGNOSTICS_SERVER_VAR: &str = "__CARGO_FIX_DIAGNOSTICS_SERVER";
 
diff --git a/src/cargo/util/edit_distance.rs b/src/cargo/util/edit_distance.rs
index 35ef8fc..e672599 100644
--- a/src/cargo/util/edit_distance.rs
+++ b/src/cargo/util/edit_distance.rs
@@ -126,7 +126,7 @@
 
 #[test]
 fn test_edit_distance() {
-    use std::char::{from_u32, MAX};
+    use std::char::{MAX, from_u32};
     // Test bytelength agnosticity
     for c in (0u32..MAX as u32)
         .filter_map(from_u32)
diff --git a/src/cargo/util/flock.rs b/src/cargo/util/flock.rs
index dcb3e05..3df204d 100644
--- a/src/cargo/util/flock.rs
+++ b/src/cargo/util/flock.rs
@@ -12,9 +12,9 @@
 use std::io::{Read, Seek, SeekFrom, Write};
 use std::path::{Display, Path, PathBuf};
 
+use crate::util::GlobalContext;
 use crate::util::errors::CargoResult;
 use crate::util::style;
-use crate::util::GlobalContext;
 use anyhow::Context as _;
 use cargo_util::paths;
 use sys::*;
@@ -545,7 +545,7 @@
     use windows_sys::Win32::Foundation::HANDLE;
     use windows_sys::Win32::Foundation::{ERROR_INVALID_FUNCTION, ERROR_LOCK_VIOLATION};
     use windows_sys::Win32::Storage::FileSystem::{
-        LockFileEx, UnlockFile, LOCKFILE_EXCLUSIVE_LOCK, LOCKFILE_FAIL_IMMEDIATELY,
+        LOCKFILE_EXCLUSIVE_LOCK, LOCKFILE_FAIL_IMMEDIATELY, LockFileEx, UnlockFile,
     };
 
     pub(super) fn lock_shared(file: &File) -> Result<()> {
diff --git a/src/cargo/util/important_paths.rs b/src/cargo/util/important_paths.rs
index 224c4ab..1a2771b 100644
--- a/src/cargo/util/important_paths.rs
+++ b/src/cargo/util/important_paths.rs
@@ -20,10 +20,10 @@
 
     if invalid_cargo_toml_path_exists {
         anyhow::bail!(
-        "could not find `{}` in `{}` or any parent directory, but found cargo.toml please try to rename it to Cargo.toml",
-        valid_cargo_toml_file_name,
-        cwd.display()
-    )
+            "could not find `{}` in `{}` or any parent directory, but found cargo.toml please try to rename it to Cargo.toml",
+            valid_cargo_toml_file_name,
+            cwd.display()
+        )
     } else {
         anyhow::bail!(
             "could not find `{}` in `{}` or any parent directory",
diff --git a/src/cargo/util/job.rs b/src/cargo/util/job.rs
index 24696c5..23a0706 100644
--- a/src/cargo/util/job.rs
+++ b/src/cargo/util/job.rs
@@ -59,10 +59,10 @@
     use windows_sys::Win32::Foundation::INVALID_HANDLE_VALUE;
     use windows_sys::Win32::System::JobObjects::AssignProcessToJobObject;
     use windows_sys::Win32::System::JobObjects::CreateJobObjectW;
+    use windows_sys::Win32::System::JobObjects::JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE;
+    use windows_sys::Win32::System::JobObjects::JOBOBJECT_EXTENDED_LIMIT_INFORMATION;
     use windows_sys::Win32::System::JobObjects::JobObjectExtendedLimitInformation;
     use windows_sys::Win32::System::JobObjects::SetInformationJobObject;
-    use windows_sys::Win32::System::JobObjects::JOBOBJECT_EXTENDED_LIMIT_INFORMATION;
-    use windows_sys::Win32::System::JobObjects::JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE;
     use windows_sys::Win32::System::Threading::GetCurrentProcess;
 
     pub struct Setup {
diff --git a/src/cargo/util/machine_message.rs b/src/cargo/util/machine_message.rs
index 8429f7f..7ee74f7 100644
--- a/src/cargo/util/machine_message.rs
+++ b/src/cargo/util/machine_message.rs
@@ -1,12 +1,12 @@
 use std::path::{Path, PathBuf};
 
 use cargo_util_schemas::core::PackageIdSpec;
-use serde::ser;
 use serde::Serialize;
+use serde::ser;
 use serde_json::{json, value::RawValue};
 
-use crate::core::compiler::CompileMode;
 use crate::core::Target;
+use crate::core::compiler::CompileMode;
 
 pub trait Message: ser::Serialize {
     fn reason(&self) -> &str;
diff --git a/src/cargo/util/mod.rs b/src/cargo/util/mod.rs
index 18f950d..02df55a 100644
--- a/src/cargo/util/mod.rs
+++ b/src/cargo/util/mod.rs
@@ -2,13 +2,13 @@
 use std::time::Duration;
 
 pub use self::canonical_url::CanonicalUrl;
-pub use self::context::{homedir, ConfigValue, GlobalContext};
+pub use self::context::{ConfigValue, GlobalContext, homedir};
 pub(crate) use self::counter::MetricsCounter;
 pub use self::dependency_queue::DependencyQueue;
 pub use self::diagnostic_server::RustfixDiagnosticServer;
 pub use self::edit_distance::{closest, closest_msg, edit_distance};
 pub use self::errors::CliError;
-pub use self::errors::{internal, CargoResult, CliResult};
+pub use self::errors::{CargoResult, CliResult, internal};
 pub use self::flock::{FileLock, Filesystem};
 pub use self::graph::Graph;
 pub use self::hasher::StableHasher;
@@ -22,7 +22,7 @@
 pub use self::queue::Queue;
 pub use self::rustc::Rustc;
 pub use self::semver_ext::{OptVersionReq, VersionExt};
-pub use self::vcs::{existing_vcs_repo, FossilRepo, GitRepo, HgRepo, PijulRepo};
+pub use self::vcs::{FossilRepo, GitRepo, HgRepo, PijulRepo, existing_vcs_repo};
 pub use self::workspace::{
     add_path_args, path_args, print_available_benches, print_available_binaries,
     print_available_examples, print_available_packages, print_available_tests,
diff --git a/src/cargo/util/network/http.rs b/src/cargo/util/network/http.rs
index c0d6d5f..3c8133d 100644
--- a/src/cargo/util/network/http.rs
+++ b/src/cargo/util/network/http.rs
@@ -11,11 +11,11 @@
 use tracing::debug;
 use tracing::trace;
 
+use crate::CargoResult;
+use crate::GlobalContext;
 use crate::util::context::SslVersionConfig;
 use crate::util::context::SslVersionConfigRange;
 use crate::version;
-use crate::CargoResult;
-use crate::GlobalContext;
 
 /// Creates a new HTTP handle with appropriate global configuration for cargo.
 pub fn http_handle(gctx: &GlobalContext) -> CargoResult<Easy> {
diff --git a/src/cargo/util/rustc.rs b/src/cargo/util/rustc.rs
index 003318a..2b0f0ff 100644
--- a/src/cargo/util/rustc.rs
+++ b/src/cargo/util/rustc.rs
@@ -5,7 +5,7 @@
 use std::sync::Mutex;
 
 use anyhow::Context as _;
-use cargo_util::{paths, ProcessBuilder, ProcessError};
+use cargo_util::{ProcessBuilder, ProcessError, paths};
 use filetime::FileTime;
 use serde::{Deserialize, Serialize};
 use tracing::{debug, info, warn};
diff --git a/src/cargo/util/sqlite.rs b/src/cargo/util/sqlite.rs
index 8e8e302..d79a39d 100644
--- a/src/cargo/util/sqlite.rs
+++ b/src/cargo/util/sqlite.rs
@@ -1,7 +1,7 @@
 //! Utilities to help with working with sqlite.
 
-use crate::util::interning::InternedString;
 use crate::CargoResult;
+use crate::util::interning::InternedString;
 use rusqlite::types::{FromSql, FromSqlError, ToSql, ToSqlOutput};
 use rusqlite::{Connection, TransactionBehavior};
 
diff --git a/src/cargo/util/toml/embedded.rs b/src/cargo/util/toml/embedded.rs
index 7063825..4b769f8 100644
--- a/src/cargo/util/toml/embedded.rs
+++ b/src/cargo/util/toml/embedded.rs
@@ -1,7 +1,7 @@
 use cargo_util_schemas::manifest::PackageName;
 
-use crate::util::restricted_names;
 use crate::CargoResult;
+use crate::util::restricted_names;
 
 pub(super) fn expand_manifest(content: &str) -> CargoResult<String> {
     let source = ScriptSource::parse(content)?;
@@ -10,9 +10,13 @@
             Some("cargo") | None => {}
             Some(other) => {
                 if let Some(remainder) = other.strip_prefix("cargo,") {
-                    anyhow::bail!("cargo does not support frontmatter infostring attributes like `{remainder}` at this time")
+                    anyhow::bail!(
+                        "cargo does not support frontmatter infostring attributes like `{remainder}` at this time"
+                    )
                 } else {
-                    anyhow::bail!("frontmatter infostring `{other}` is unsupported by cargo; specify `cargo` for embedding a manifest")
+                    anyhow::bail!(
+                        "frontmatter infostring `{other}` is unsupported by cargo; specify `cargo` for embedding a manifest"
+                    )
                 }
             }
         }
@@ -820,14 +824,14 @@
     #[test]
     fn split_crlf() {
         assert_source(
-                "#!/usr/bin/env cargo\r\n---\r\n[dependencies]\r\ntime=\"0.1.25\"\r\n---\r\nfn main() {}",
+            "#!/usr/bin/env cargo\r\n---\r\n[dependencies]\r\ntime=\"0.1.25\"\r\n---\r\nfn main() {}",
             str![[r##"
 shebang: "#!/usr/bin/env cargo\r\n"
 info: None
 frontmatter: "[dependencies]\r\ntime=\"0.1.25\"\r\n"
 content: "fn main() {}"
 
-"##]]
+"##]],
         );
     }
 
diff --git a/src/cargo/util/toml/mod.rs b/src/cargo/util/toml/mod.rs
index ecae04a..28f9ba7 100644
--- a/src/cargo/util/toml/mod.rs
+++ b/src/cargo/util/toml/mod.rs
@@ -6,9 +6,9 @@
 use std::rc::Rc;
 use std::str::{self, FromStr};
 
-use crate::core::summary::MissingDependencyError;
 use crate::AlreadyPrintedError;
-use anyhow::{anyhow, bail, Context as _};
+use crate::core::summary::MissingDependencyError;
+use anyhow::{Context as _, anyhow, bail};
 use cargo_platform::Platform;
 use cargo_util::paths;
 use cargo_util_schemas::manifest::{
@@ -26,7 +26,7 @@
 use crate::core::dependency::{Artifact, ArtifactTarget, DepKind};
 use crate::core::manifest::{ManifestMetadata, TargetSourcePath};
 use crate::core::resolver::ResolveBehavior;
-use crate::core::{find_workspace_root, resolve_relative_path, CliUnstable, FeatureValue};
+use crate::core::{CliUnstable, FeatureValue, find_workspace_root, resolve_relative_path};
 use crate::core::{Dependency, Manifest, Package, PackageId, Summary, Target};
 use crate::core::{Edition, EitherManifest, Feature, Features, VirtualManifest, Workspace};
 use crate::core::{GitReference, PackageIdSpec, SourceId, WorkspaceConfig, WorkspaceRootConfig};
@@ -34,7 +34,7 @@
 use crate::util::errors::{CargoResult, ManifestError};
 use crate::util::interning::InternedString;
 use crate::util::lints::{get_span, rel_cwd_manifest_path};
-use crate::util::{self, context::ConfigRelativePath, GlobalContext, IntoUrl, OptVersionReq};
+use crate::util::{self, GlobalContext, IntoUrl, OptVersionReq, context::ConfigRelativePath};
 
 mod embedded;
 mod targets;
@@ -1133,11 +1133,13 @@
 ) -> CargoResult<manifest::TomlLints> {
     if lints.workspace {
         if !lints.lints.is_empty() {
-            anyhow::bail!("cannot override `workspace.lints` in `lints`, either remove the overrides or `lints.workspace = true` and manually specify the lints");
+            anyhow::bail!(
+                "cannot override `workspace.lints` in `lints`, either remove the overrides or `lints.workspace = true` and manually specify the lints"
+            );
         }
-        get_ws_inheritable().with_context(|| {
-            "error inheriting `lints` from workspace root manifest's `workspace.lints`"
-        })
+        get_ws_inheritable().with_context(
+            || "error inheriting `lints` from workspace root manifest's `workspace.lints`",
+        )
     } else {
         Ok(lints.lints)
     }
@@ -1498,7 +1500,9 @@
 
     if let Some(links) = &normalized_package.links {
         if !targets.iter().any(|t| t.is_custom_build()) {
-            bail!("package specifies that it links to `{links}` but does not have a custom build script")
+            bail!(
+                "package specifies that it links to `{links}` but does not have a custom build script"
+            )
         }
     }
 
@@ -2795,7 +2799,9 @@
 ) -> CargoResult<()> {
     let old_path = new_path.replace("-", "_");
     if old.is_some() && Edition::Edition2024 <= edition {
-        anyhow::bail!("`{old_path}` is unsupported as of the 2024 edition; instead use `{new_path}`\n(in the `{name}` {kind})");
+        anyhow::bail!(
+            "`{old_path}` is unsupported as of the 2024 edition; instead use `{new_path}`\n(in the `{name}` {kind})"
+        );
     } else if old.is_some() && new.is_some() {
         warnings.push(format!(
             "`{old_path}` is redundant with `{new_path}`, preferring `{new_path}` in the `{name}` {kind}"
diff --git a/src/cargo/util/toml/targets.rs b/src/cargo/util/toml/targets.rs
index 1efe7ed..65c4ea7 100644
--- a/src/cargo/util/toml/targets.rs
+++ b/src/cargo/util/toml/targets.rs
@@ -21,7 +21,7 @@
     TomlManifest, TomlPackageBuild, TomlTarget, TomlTestTarget,
 };
 
-use crate::core::compiler::{rustdoc::RustdocScrapeExamples, CrateType};
+use crate::core::compiler::{CrateType, rustdoc::RustdocScrapeExamples};
 use crate::core::{Edition, Feature, Features, Target};
 use crate::util::{
     closest_msg, errors::CargoResult, restricted_names, toml::deprecated_underscore,
diff --git a/src/cargo/util/toml_mut/dependency.rs b/src/cargo/util/toml_mut/dependency.rs
index f44c43c..c28e96f 100644
--- a/src/cargo/util/toml_mut/dependency.rs
+++ b/src/cargo/util/toml_mut/dependency.rs
@@ -10,12 +10,12 @@
 use toml_edit::KeyMut;
 
 use super::manifest::str_or_1_len_table;
+use crate::CargoResult;
+use crate::GlobalContext;
 use crate::core::SourceId;
 use crate::core::Summary;
 use crate::core::{Features, GitReference};
 use crate::util::toml::lookup_path_base;
-use crate::CargoResult;
-use crate::GlobalContext;
 
 /// A dependency handled by Cargo.
 ///
@@ -343,7 +343,9 @@
 
             let default_features = table.get("default-features").and_then(|v| v.as_bool());
             if table.contains_key("default_features") {
-                anyhow::bail!("Use of `default_features` in `{key}` is unsupported, please switch to `default-features`");
+                anyhow::bail!(
+                    "Use of `default_features` in `{key}` is unsupported, please switch to `default-features`"
+                );
             }
 
             let features = if let Some(value) = table.get("features") {
diff --git a/src/cargo/util/toml_mut/manifest.rs b/src/cargo/util/toml_mut/manifest.rs
index eda0b41..0725746 100644
--- a/src/cargo/util/toml_mut/manifest.rs
+++ b/src/cargo/util/toml_mut/manifest.rs
@@ -10,7 +10,7 @@
 use crate::core::dependency::DepKind;
 use crate::core::{FeatureValue, Features, Workspace};
 use crate::util::closest;
-use crate::util::toml::{is_embedded, ScriptSource};
+use crate::util::toml::{ScriptSource, is_embedded};
 use crate::{CargoResult, GlobalContext};
 
 /// Dependency table to add deps to.
diff --git a/src/cargo/util/vcs.rs b/src/cargo/util/vcs.rs
index 095164e..2d747e1 100644
--- a/src/cargo/util/vcs.rs
+++ b/src/cargo/util/vcs.rs
@@ -1,6 +1,6 @@
 use crate::util::CargoResult;
-use cargo_util::paths;
 use cargo_util::ProcessBuilder;
+use cargo_util::paths;
 use std::path::Path;
 
 // Check if we are in an existing repo. We define that to be true if either:
diff --git a/src/cargo/util/workspace.rs b/src/cargo/util/workspace.rs
index f3cc4a2..92b9cc6 100644
--- a/src/cargo/util/workspace.rs
+++ b/src/cargo/util/workspace.rs
@@ -4,8 +4,8 @@
 use crate::ops::CompileOptions;
 use crate::util::CargoResult;
 use anyhow::bail;
-use cargo_util::paths::normalize_path;
 use cargo_util::ProcessBuilder;
+use cargo_util::paths::normalize_path;
 use std::fmt::Write;
 use std::path::Path;
 use std::path::PathBuf;
diff --git a/tests/build-std/main.rs b/tests/build-std/main.rs
index 37bbe22..4fbaddf 100644
--- a/tests/build-std/main.rs
+++ b/tests/build-std/main.rs
@@ -20,8 +20,8 @@
 
 #![allow(clippy::disallowed_methods)]
 
-use cargo_test_support::{basic_manifest, paths, project, rustc_host, str, Execs};
-use cargo_test_support::{prelude::*, Project};
+use cargo_test_support::{Execs, basic_manifest, paths, project, rustc_host, str};
+use cargo_test_support::{Project, prelude::*};
 use std::env;
 use std::path::{Path, PathBuf};
 
diff --git a/tests/testsuite/artifact_dep.rs b/tests/testsuite/artifact_dep.rs
index a88cf7c..1850f61 100644
--- a/tests/testsuite/artifact_dep.rs
+++ b/tests/testsuite/artifact_dep.rs
@@ -9,8 +9,8 @@
 use cargo_test_support::registry::{Package, RegistryBuilder};
 use cargo_test_support::str;
 use cargo_test_support::{
-    basic_bin_manifest, basic_manifest, cross_compile, project, publish, registry, rustc_host,
-    Project,
+    Project, basic_bin_manifest, basic_manifest, cross_compile, project, publish, registry,
+    rustc_host,
 };
 
 #[cargo_test]
diff --git a/tests/testsuite/bad_config.rs b/tests/testsuite/bad_config.rs
index e111cbd..4b94654 100644
--- a/tests/testsuite/bad_config.rs
+++ b/tests/testsuite/bad_config.rs
@@ -3,7 +3,7 @@
 use crate::prelude::*;
 use cargo_test_support::git::cargo_uses_gitoxide;
 use cargo_test_support::registry::{self, Package};
-use cargo_test_support::{basic_bin_manifest, basic_manifest, project, rustc_host, str, Project};
+use cargo_test_support::{Project, basic_bin_manifest, basic_manifest, project, rustc_host, str};
 
 #[cargo_test]
 fn bad1() {
diff --git a/tests/testsuite/build.rs b/tests/testsuite/build.rs
index e46165d..92b030e 100644
--- a/tests/testsuite/build.rs
+++ b/tests/testsuite/build.rs
@@ -9,18 +9,18 @@
 use crate::utils::cargo_exe;
 use crate::utils::cargo_process;
 use crate::utils::tools;
-use cargo::core::compiler::UserIntent;
+use cargo::GlobalContext;
 use cargo::core::Shell;
 use cargo::core::Workspace;
+use cargo::core::compiler::UserIntent;
 use cargo::ops::CompileOptions;
-use cargo::GlobalContext;
 use cargo_test_support::compare::assert_e2e;
 use cargo_test_support::paths::root;
 use cargo_test_support::registry::Package;
 use cargo_test_support::str;
 use cargo_test_support::{
-    basic_bin_manifest, basic_lib_manifest, basic_manifest, git, is_nightly, main_file, paths,
-    process, project, rustc_host, sleep_ms, symlink_supported, t, Execs, ProjectBuilder,
+    Execs, ProjectBuilder, basic_bin_manifest, basic_lib_manifest, basic_manifest, git, is_nightly,
+    main_file, paths, process, project, rustc_host, sleep_ms, symlink_supported, t,
 };
 use cargo_util::paths::dylib_path_envvar;
 
@@ -672,20 +672,24 @@
 
     assert_eq!(1, result.binaries.len());
     assert!(result.binaries[0].path.exists());
-    assert!(result.binaries[0]
-        .path
-        .to_str()
-        .unwrap()
-        .contains("the_foo_bin"));
+    assert!(
+        result.binaries[0]
+            .path
+            .to_str()
+            .unwrap()
+            .contains("the_foo_bin")
+    );
 
     assert_eq!(1, result.cdylibs.len());
     // The exact library path varies by platform, but should certainly exist at least
     assert!(result.cdylibs[0].path.exists());
-    assert!(result.cdylibs[0]
-        .path
-        .to_str()
-        .unwrap()
-        .contains("the_foo_lib"));
+    assert!(
+        result.cdylibs[0]
+            .path
+            .to_str()
+            .unwrap()
+            .contains("the_foo_lib")
+    );
 }
 
 #[cargo_test]
@@ -3343,11 +3347,12 @@
     p.cargo("build --target-dir foobar/target")
         .env("CARGO_TARGET_DIR", "bar/target")
         .run();
-    assert!(p
-        .root()
-        .join("foobar/target/debug")
-        .join(&exe_name)
-        .is_file());
+    assert!(
+        p.root()
+            .join("foobar/target/debug")
+            .join(&exe_name)
+            .is_file()
+    );
     assert!(p.root().join("bar/target/debug").join(&exe_name).is_file());
     assert!(p.root().join("foo/target/debug").join(&exe_name).is_file());
     assert!(p.root().join("target/debug").join(&exe_name).is_file());
@@ -6153,9 +6158,11 @@
     p.cargo("build").run();
     let cachedir_tag = p.build_dir().join("CACHEDIR.TAG");
     assert!(cachedir_tag.is_file());
-    assert!(fs::read_to_string(&cachedir_tag)
-        .unwrap()
-        .starts_with("Signature: 8a477f597d28d172789f06886806bc55"));
+    assert!(
+        fs::read_to_string(&cachedir_tag)
+            .unwrap()
+            .starts_with("Signature: 8a477f597d28d172789f06886806bc55")
+    );
     // ...but if target/ already exists CACHEDIR.TAG should not be created in it.
     fs::remove_file(&cachedir_tag).unwrap();
     p.cargo("build").run();
diff --git a/tests/testsuite/build_dir.rs b/tests/testsuite/build_dir.rs
index e6eebaf..926d299 100644
--- a/tests/testsuite/build_dir.rs
+++ b/tests/testsuite/build_dir.rs
@@ -12,8 +12,8 @@
 use std::path::PathBuf;
 
 use crate::prelude::*;
+use cargo_test_support::{Project, prelude::*};
 use cargo_test_support::{paths, project, str};
-use cargo_test_support::{prelude::*, Project};
 use std::env::consts::{DLL_PREFIX, DLL_SUFFIX, EXE_SUFFIX};
 
 #[cargo_test]
diff --git a/tests/testsuite/build_script.rs b/tests/testsuite/build_script.rs
index 1d49d14..e480295 100644
--- a/tests/testsuite/build_script.rs
+++ b/tests/testsuite/build_script.rs
@@ -3408,9 +3408,11 @@
     );
 
     // paths relative to dependency roots should not be allowed
-    assert!(!dot_d
-        .split_whitespace()
-        .any(|v| v == "barkbarkbark" || v == "build.rs"));
+    assert!(
+        !dot_d
+            .split_whitespace()
+            .any(|v| v == "barkbarkbark" || v == "build.rs")
+    );
 
     p.change_file(
         ".cargo/config.toml",
@@ -3434,9 +3436,11 @@
     );
 
     // paths relative to dependency roots should not be allowed
-    assert!(!dot_d
-        .split_whitespace()
-        .any(|v| v == "barkbarkbark" || v == "build.rs"));
+    assert!(
+        !dot_d
+            .split_whitespace()
+            .any(|v| v == "barkbarkbark" || v == "build.rs")
+    );
 }
 
 #[cargo_test]
diff --git a/tests/testsuite/build_scripts_multiple.rs b/tests/testsuite/build_scripts_multiple.rs
index d87f9a2..9a7c027 100644
--- a/tests/testsuite/build_scripts_multiple.rs
+++ b/tests/testsuite/build_scripts_multiple.rs
@@ -5,7 +5,7 @@
 use cargo_test_support::git;
 use cargo_test_support::publish::validate_crate_contents;
 use cargo_test_support::str;
-use cargo_test_support::{project, Project};
+use cargo_test_support::{Project, project};
 use std::fs::File;
 
 #[cargo_test]
diff --git a/tests/testsuite/cargo_add/add_basic/mod.rs b/tests/testsuite/cargo_add/add_basic/mod.rs
index 892fe84..28e4683 100644
--- a/tests/testsuite/cargo_add/add_basic/mod.rs
+++ b/tests/testsuite/cargo_add/add_basic/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/add_multiple/mod.rs b/tests/testsuite/cargo_add/add_multiple/mod.rs
index 3da73fd..cc68743 100644
--- a/tests/testsuite/cargo_add/add_multiple/mod.rs
+++ b/tests/testsuite/cargo_add/add_multiple/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/add_no_vendored_package_with_alter_registry/mod.rs b/tests/testsuite/cargo_add/add_no_vendored_package_with_alter_registry/mod.rs
index 4e96848..aef9954 100644
--- a/tests/testsuite/cargo_add/add_no_vendored_package_with_alter_registry/mod.rs
+++ b/tests/testsuite/cargo_add/add_no_vendored_package_with_alter_registry/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/add_no_vendored_package_with_vendor/mod.rs b/tests/testsuite/cargo_add/add_no_vendored_package_with_vendor/mod.rs
index 8fbdfa6..5cabdff 100644
--- a/tests/testsuite/cargo_add/add_no_vendored_package_with_vendor/mod.rs
+++ b/tests/testsuite/cargo_add/add_no_vendored_package_with_vendor/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/add_toolchain/mod.rs b/tests/testsuite/cargo_add/add_toolchain/mod.rs
index 5ff03f9..cde2bc4 100644
--- a/tests/testsuite/cargo_add/add_toolchain/mod.rs
+++ b/tests/testsuite/cargo_add/add_toolchain/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/build/mod.rs b/tests/testsuite/cargo_add/build/mod.rs
index e82a02d..f7de5a2 100644
--- a/tests/testsuite/cargo_add/build/mod.rs
+++ b/tests/testsuite/cargo_add/build/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/build_prefer_existing_version/mod.rs b/tests/testsuite/cargo_add/build_prefer_existing_version/mod.rs
index 874b3a7..cc84874 100644
--- a/tests/testsuite/cargo_add/build_prefer_existing_version/mod.rs
+++ b/tests/testsuite/cargo_add/build_prefer_existing_version/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/change_rename_target/mod.rs b/tests/testsuite/cargo_add/change_rename_target/mod.rs
index e1cac9a..a0cb0dd 100644
--- a/tests/testsuite/cargo_add/change_rename_target/mod.rs
+++ b/tests/testsuite/cargo_add/change_rename_target/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/cyclic_features/mod.rs b/tests/testsuite/cargo_add/cyclic_features/mod.rs
index 723577c..3c53451 100644
--- a/tests/testsuite/cargo_add/cyclic_features/mod.rs
+++ b/tests/testsuite/cargo_add/cyclic_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/default_features/mod.rs b/tests/testsuite/cargo_add/default_features/mod.rs
index 7b471a5..93c72ef 100644
--- a/tests/testsuite/cargo_add/default_features/mod.rs
+++ b/tests/testsuite/cargo_add/default_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/deprecated_default_features/mod.rs b/tests/testsuite/cargo_add/deprecated_default_features/mod.rs
index 7542760..c7b1e31 100644
--- a/tests/testsuite/cargo_add/deprecated_default_features/mod.rs
+++ b/tests/testsuite/cargo_add/deprecated_default_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/deprecated_section/mod.rs b/tests/testsuite/cargo_add/deprecated_section/mod.rs
index 7542760..c7b1e31 100644
--- a/tests/testsuite/cargo_add/deprecated_section/mod.rs
+++ b/tests/testsuite/cargo_add/deprecated_section/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/detect_workspace_inherit/mod.rs b/tests/testsuite/cargo_add/detect_workspace_inherit/mod.rs
index 5e731c6..20396a6 100644
--- a/tests/testsuite/cargo_add/detect_workspace_inherit/mod.rs
+++ b/tests/testsuite/cargo_add/detect_workspace_inherit/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/detect_workspace_inherit_features/mod.rs b/tests/testsuite/cargo_add/detect_workspace_inherit_features/mod.rs
index 7464eeb..2c1fb5c 100644
--- a/tests/testsuite/cargo_add/detect_workspace_inherit_features/mod.rs
+++ b/tests/testsuite/cargo_add/detect_workspace_inherit_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/detect_workspace_inherit_optional/mod.rs b/tests/testsuite/cargo_add/detect_workspace_inherit_optional/mod.rs
index 08c14b9..5e7fed3 100644
--- a/tests/testsuite/cargo_add/detect_workspace_inherit_optional/mod.rs
+++ b/tests/testsuite/cargo_add/detect_workspace_inherit_optional/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/detect_workspace_inherit_path_base/mod.rs b/tests/testsuite/cargo_add/detect_workspace_inherit_path_base/mod.rs
index bb94303..b2572bc 100644
--- a/tests/testsuite/cargo_add/detect_workspace_inherit_path_base/mod.rs
+++ b/tests/testsuite/cargo_add/detect_workspace_inherit_path_base/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/detect_workspace_inherit_public/mod.rs b/tests/testsuite/cargo_add/detect_workspace_inherit_public/mod.rs
index a437b14..04e55c3 100644
--- a/tests/testsuite/cargo_add/detect_workspace_inherit_public/mod.rs
+++ b/tests/testsuite/cargo_add/detect_workspace_inherit_public/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/dev/mod.rs b/tests/testsuite/cargo_add/dev/mod.rs
index ac4b949..7e3bc5c 100644
--- a/tests/testsuite/cargo_add/dev/mod.rs
+++ b/tests/testsuite/cargo_add/dev/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/dev_build_conflict/mod.rs b/tests/testsuite/cargo_add/dev_build_conflict/mod.rs
index c964ef9..e722776 100644
--- a/tests/testsuite/cargo_add/dev_build_conflict/mod.rs
+++ b/tests/testsuite/cargo_add/dev_build_conflict/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/dev_existing_path_base/mod.rs b/tests/testsuite/cargo_add/dev_existing_path_base/mod.rs
index 0cfaea1..3a0235f 100644
--- a/tests/testsuite/cargo_add/dev_existing_path_base/mod.rs
+++ b/tests/testsuite/cargo_add/dev_existing_path_base/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/dev_prefer_existing_version/mod.rs b/tests/testsuite/cargo_add/dev_prefer_existing_version/mod.rs
index 99e43d9..221feb2 100644
--- a/tests/testsuite/cargo_add/dev_prefer_existing_version/mod.rs
+++ b/tests/testsuite/cargo_add/dev_prefer_existing_version/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/dry_run/mod.rs b/tests/testsuite/cargo_add/dry_run/mod.rs
index 7983eb2..6230706 100644
--- a/tests/testsuite/cargo_add/dry_run/mod.rs
+++ b/tests/testsuite/cargo_add/dry_run/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/empty_dep_name/mod.rs b/tests/testsuite/cargo_add/empty_dep_name/mod.rs
index c067e3c..1453876 100644
--- a/tests/testsuite/cargo_add/empty_dep_name/mod.rs
+++ b/tests/testsuite/cargo_add/empty_dep_name/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/feature_suggestion_multiple/mod.rs b/tests/testsuite/cargo_add/feature_suggestion_multiple/mod.rs
index d8653d5..37c68d6 100644
--- a/tests/testsuite/cargo_add/feature_suggestion_multiple/mod.rs
+++ b/tests/testsuite/cargo_add/feature_suggestion_multiple/mod.rs
@@ -1,7 +1,7 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/feature_suggestion_none/mod.rs b/tests/testsuite/cargo_add/feature_suggestion_none/mod.rs
index 9492d33..e27a38d 100644
--- a/tests/testsuite/cargo_add/feature_suggestion_none/mod.rs
+++ b/tests/testsuite/cargo_add/feature_suggestion_none/mod.rs
@@ -1,7 +1,7 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/feature_suggestion_single/mod.rs b/tests/testsuite/cargo_add/feature_suggestion_single/mod.rs
index 640eead..057b619 100644
--- a/tests/testsuite/cargo_add/feature_suggestion_single/mod.rs
+++ b/tests/testsuite/cargo_add/feature_suggestion_single/mod.rs
@@ -1,7 +1,7 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/features/mod.rs b/tests/testsuite/cargo_add/features/mod.rs
index 835f5bf..0a13a1a 100644
--- a/tests/testsuite/cargo_add/features/mod.rs
+++ b/tests/testsuite/cargo_add/features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/features_activated_over_limit/mod.rs b/tests/testsuite/cargo_add/features_activated_over_limit/mod.rs
index c89a98e..2d0a497 100644
--- a/tests/testsuite/cargo_add/features_activated_over_limit/mod.rs
+++ b/tests/testsuite/cargo_add/features_activated_over_limit/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 use itertools::Itertools;
 
 #[cargo_test]
diff --git a/tests/testsuite/cargo_add/features_deactivated_over_limit/mod.rs b/tests/testsuite/cargo_add/features_deactivated_over_limit/mod.rs
index 714c40f..ed8ab64 100644
--- a/tests/testsuite/cargo_add/features_deactivated_over_limit/mod.rs
+++ b/tests/testsuite/cargo_add/features_deactivated_over_limit/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 use itertools::Itertools;
 
 #[cargo_test]
diff --git a/tests/testsuite/cargo_add/features_empty/mod.rs b/tests/testsuite/cargo_add/features_empty/mod.rs
index 33cf4bb..09bb5f4 100644
--- a/tests/testsuite/cargo_add/features_empty/mod.rs
+++ b/tests/testsuite/cargo_add/features_empty/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/features_error_activated_over_limit/mod.rs b/tests/testsuite/cargo_add/features_error_activated_over_limit/mod.rs
index 0905763..8068595 100644
--- a/tests/testsuite/cargo_add/features_error_activated_over_limit/mod.rs
+++ b/tests/testsuite/cargo_add/features_error_activated_over_limit/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/features_error_deactivated_over_limit/mod.rs b/tests/testsuite/cargo_add/features_error_deactivated_over_limit/mod.rs
index c7c4250..a2449b4 100644
--- a/tests/testsuite/cargo_add/features_error_deactivated_over_limit/mod.rs
+++ b/tests/testsuite/cargo_add/features_error_deactivated_over_limit/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/features_multiple_occurrences/mod.rs b/tests/testsuite/cargo_add/features_multiple_occurrences/mod.rs
index e17937f..603e078 100644
--- a/tests/testsuite/cargo_add/features_multiple_occurrences/mod.rs
+++ b/tests/testsuite/cargo_add/features_multiple_occurrences/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/features_preserve/mod.rs b/tests/testsuite/cargo_add/features_preserve/mod.rs
index e994cf9..62e1548 100644
--- a/tests/testsuite/cargo_add/features_preserve/mod.rs
+++ b/tests/testsuite/cargo_add/features_preserve/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/features_spaced_values/mod.rs b/tests/testsuite/cargo_add/features_spaced_values/mod.rs
index 2709f5c..91e6f18 100644
--- a/tests/testsuite/cargo_add/features_spaced_values/mod.rs
+++ b/tests/testsuite/cargo_add/features_spaced_values/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/features_unknown/mod.rs b/tests/testsuite/cargo_add/features_unknown/mod.rs
index 1f794cc..9ff10c8 100644
--- a/tests/testsuite/cargo_add/features_unknown/mod.rs
+++ b/tests/testsuite/cargo_add/features_unknown/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/features_unknown_no_features/mod.rs b/tests/testsuite/cargo_add/features_unknown_no_features/mod.rs
index 055d86c..bc1823b 100644
--- a/tests/testsuite/cargo_add/features_unknown_no_features/mod.rs
+++ b/tests/testsuite/cargo_add/features_unknown_no_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/git/mod.rs b/tests/testsuite/cargo_add/git/mod.rs
index 9703b99..43dfbdf 100644
--- a/tests/testsuite/cargo_add/git/mod.rs
+++ b/tests/testsuite/cargo_add/git/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/git_branch/mod.rs b/tests/testsuite/cargo_add/git_branch/mod.rs
index c1dd818..1d77240 100644
--- a/tests/testsuite/cargo_add/git_branch/mod.rs
+++ b/tests/testsuite/cargo_add/git_branch/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/git_conflicts_namever/mod.rs b/tests/testsuite/cargo_add/git_conflicts_namever/mod.rs
index 7cf4c36..bf1cd69 100644
--- a/tests/testsuite/cargo_add/git_conflicts_namever/mod.rs
+++ b/tests/testsuite/cargo_add/git_conflicts_namever/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/git_dev/mod.rs b/tests/testsuite/cargo_add/git_dev/mod.rs
index 90c4037..bd0b398 100644
--- a/tests/testsuite/cargo_add/git_dev/mod.rs
+++ b/tests/testsuite/cargo_add/git_dev/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/git_inferred_name/mod.rs b/tests/testsuite/cargo_add/git_inferred_name/mod.rs
index c05f1e2..c98aed4 100644
--- a/tests/testsuite/cargo_add/git_inferred_name/mod.rs
+++ b/tests/testsuite/cargo_add/git_inferred_name/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/git_inferred_name_multiple/mod.rs b/tests/testsuite/cargo_add/git_inferred_name_multiple/mod.rs
index 1139c31..d81fc22 100644
--- a/tests/testsuite/cargo_add/git_inferred_name_multiple/mod.rs
+++ b/tests/testsuite/cargo_add/git_inferred_name_multiple/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/git_multiple_names/mod.rs b/tests/testsuite/cargo_add/git_multiple_names/mod.rs
index 0690114..8c7c8a0 100644
--- a/tests/testsuite/cargo_add/git_multiple_names/mod.rs
+++ b/tests/testsuite/cargo_add/git_multiple_names/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/git_multiple_packages_features/mod.rs b/tests/testsuite/cargo_add/git_multiple_packages_features/mod.rs
index ba23de0..51bdc42 100644
--- a/tests/testsuite/cargo_add/git_multiple_packages_features/mod.rs
+++ b/tests/testsuite/cargo_add/git_multiple_packages_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/git_registry/mod.rs b/tests/testsuite/cargo_add/git_registry/mod.rs
index 7783e9f..a1fd506 100644
--- a/tests/testsuite/cargo_add/git_registry/mod.rs
+++ b/tests/testsuite/cargo_add/git_registry/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/git_rev/mod.rs b/tests/testsuite/cargo_add/git_rev/mod.rs
index 56999d8..5164821 100644
--- a/tests/testsuite/cargo_add/git_rev/mod.rs
+++ b/tests/testsuite/cargo_add/git_rev/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/git_tag/mod.rs b/tests/testsuite/cargo_add/git_tag/mod.rs
index 419808a..2530328 100644
--- a/tests/testsuite/cargo_add/git_tag/mod.rs
+++ b/tests/testsuite/cargo_add/git_tag/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/infer_prerelease/mod.rs b/tests/testsuite/cargo_add/infer_prerelease/mod.rs
index d8e2479..f84a816 100644
--- a/tests/testsuite/cargo_add/infer_prerelease/mod.rs
+++ b/tests/testsuite/cargo_add/infer_prerelease/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/invalid_arg/mod.rs b/tests/testsuite/cargo_add/invalid_arg/mod.rs
index b22cb8c..4ff18f7 100644
--- a/tests/testsuite/cargo_add/invalid_arg/mod.rs
+++ b/tests/testsuite/cargo_add/invalid_arg/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/invalid_git_name/mod.rs b/tests/testsuite/cargo_add/invalid_git_name/mod.rs
index e1106b5..bf0ac08 100644
--- a/tests/testsuite/cargo_add/invalid_git_name/mod.rs
+++ b/tests/testsuite/cargo_add/invalid_git_name/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/invalid_key_inherit_dependency/mod.rs b/tests/testsuite/cargo_add/invalid_key_inherit_dependency/mod.rs
index ce7f8b8..ff58dfb 100644
--- a/tests/testsuite/cargo_add/invalid_key_inherit_dependency/mod.rs
+++ b/tests/testsuite/cargo_add/invalid_key_inherit_dependency/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/mod.rs b/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/mod.rs
index ce7f8b8..ff58dfb 100644
--- a/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/mod.rs
+++ b/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/mod.rs b/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/mod.rs
index 4590f35..c6919a7 100644
--- a/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/mod.rs
+++ b/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/invalid_manifest/mod.rs b/tests/testsuite/cargo_add/invalid_manifest/mod.rs
index dc96048..bdc05fa 100644
--- a/tests/testsuite/cargo_add/invalid_manifest/mod.rs
+++ b/tests/testsuite/cargo_add/invalid_manifest/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/invalid_name_external/mod.rs b/tests/testsuite/cargo_add/invalid_name_external/mod.rs
index f12920a..6f886f6 100644
--- a/tests/testsuite/cargo_add/invalid_name_external/mod.rs
+++ b/tests/testsuite/cargo_add/invalid_name_external/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/invalid_path/mod.rs b/tests/testsuite/cargo_add/invalid_path/mod.rs
index 13cb53b..43f201a 100644
--- a/tests/testsuite/cargo_add/invalid_path/mod.rs
+++ b/tests/testsuite/cargo_add/invalid_path/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/invalid_path_name/mod.rs b/tests/testsuite/cargo_add/invalid_path_name/mod.rs
index 54106ac..0251315 100644
--- a/tests/testsuite/cargo_add/invalid_path_name/mod.rs
+++ b/tests/testsuite/cargo_add/invalid_path_name/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/invalid_path_self/mod.rs b/tests/testsuite/cargo_add/invalid_path_self/mod.rs
index 05161bf..0fcfc7e 100644
--- a/tests/testsuite/cargo_add/invalid_path_self/mod.rs
+++ b/tests/testsuite/cargo_add/invalid_path_self/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/invalid_target_empty/mod.rs b/tests/testsuite/cargo_add/invalid_target_empty/mod.rs
index 349acec..13f3e90 100644
--- a/tests/testsuite/cargo_add/invalid_target_empty/mod.rs
+++ b/tests/testsuite/cargo_add/invalid_target_empty/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/invalid_vers/mod.rs b/tests/testsuite/cargo_add/invalid_vers/mod.rs
index f8f6fcc..451f97d 100644
--- a/tests/testsuite/cargo_add/invalid_vers/mod.rs
+++ b/tests/testsuite/cargo_add/invalid_vers/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/list_features/mod.rs b/tests/testsuite/cargo_add/list_features/mod.rs
index a3dce3e..3cfb87a 100644
--- a/tests/testsuite/cargo_add/list_features/mod.rs
+++ b/tests/testsuite/cargo_add/list_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/list_features_path/mod.rs b/tests/testsuite/cargo_add/list_features_path/mod.rs
index e60db0b..36fc600 100644
--- a/tests/testsuite/cargo_add/list_features_path/mod.rs
+++ b/tests/testsuite/cargo_add/list_features_path/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/list_features_path_no_default/mod.rs b/tests/testsuite/cargo_add/list_features_path_no_default/mod.rs
index 0e670f8..deaad74 100644
--- a/tests/testsuite/cargo_add/list_features_path_no_default/mod.rs
+++ b/tests/testsuite/cargo_add/list_features_path_no_default/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/locked_changed/mod.rs b/tests/testsuite/cargo_add/locked_changed/mod.rs
index 39db9f9..14501ce 100644
--- a/tests/testsuite/cargo_add/locked_changed/mod.rs
+++ b/tests/testsuite/cargo_add/locked_changed/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/locked_unchanged/mod.rs b/tests/testsuite/cargo_add/locked_unchanged/mod.rs
index 45674af..7145ea6 100644
--- a/tests/testsuite/cargo_add/locked_unchanged/mod.rs
+++ b/tests/testsuite/cargo_add/locked_unchanged/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/lockfile_updated/mod.rs b/tests/testsuite/cargo_add/lockfile_updated/mod.rs
index fb83f94..40068c9 100644
--- a/tests/testsuite/cargo_add/lockfile_updated/mod.rs
+++ b/tests/testsuite/cargo_add/lockfile_updated/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/manifest_path_package/mod.rs b/tests/testsuite/cargo_add/manifest_path_package/mod.rs
index 17b12b7..265b314 100644
--- a/tests/testsuite/cargo_add/manifest_path_package/mod.rs
+++ b/tests/testsuite/cargo_add/manifest_path_package/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/merge_activated_features/mod.rs b/tests/testsuite/cargo_add/merge_activated_features/mod.rs
index dc8abb9..fba2af5 100644
--- a/tests/testsuite/cargo_add/merge_activated_features/mod.rs
+++ b/tests/testsuite/cargo_add/merge_activated_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/missing_at_in_crate_spec/mod.rs b/tests/testsuite/cargo_add/missing_at_in_crate_spec/mod.rs
index e5d7181..b0bb544 100644
--- a/tests/testsuite/cargo_add/missing_at_in_crate_spec/mod.rs
+++ b/tests/testsuite/cargo_add/missing_at_in_crate_spec/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/multiple_conflicts_with_features/mod.rs b/tests/testsuite/cargo_add/multiple_conflicts_with_features/mod.rs
index cf4355e..4a3d653 100644
--- a/tests/testsuite/cargo_add/multiple_conflicts_with_features/mod.rs
+++ b/tests/testsuite/cargo_add/multiple_conflicts_with_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/multiple_conflicts_with_rename/mod.rs b/tests/testsuite/cargo_add/multiple_conflicts_with_rename/mod.rs
index 5679729..444dfc4 100644
--- a/tests/testsuite/cargo_add/multiple_conflicts_with_rename/mod.rs
+++ b/tests/testsuite/cargo_add/multiple_conflicts_with_rename/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/namever/mod.rs b/tests/testsuite/cargo_add/namever/mod.rs
index 48caff4..ae6a836 100644
--- a/tests/testsuite/cargo_add/namever/mod.rs
+++ b/tests/testsuite/cargo_add/namever/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/no_args/mod.rs b/tests/testsuite/cargo_add/no_args/mod.rs
index 770bca5..5b245f5 100644
--- a/tests/testsuite/cargo_add/no_args/mod.rs
+++ b/tests/testsuite/cargo_add/no_args/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/no_default_features/mod.rs b/tests/testsuite/cargo_add/no_default_features/mod.rs
index 2ede55b..329ac54 100644
--- a/tests/testsuite/cargo_add/no_default_features/mod.rs
+++ b/tests/testsuite/cargo_add/no_default_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/no_optional/mod.rs b/tests/testsuite/cargo_add/no_optional/mod.rs
index 0045cf8..bf08514 100644
--- a/tests/testsuite/cargo_add/no_optional/mod.rs
+++ b/tests/testsuite/cargo_add/no_optional/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/no_public/mod.rs b/tests/testsuite/cargo_add/no_public/mod.rs
index 0f29091..b440c30 100644
--- a/tests/testsuite/cargo_add/no_public/mod.rs
+++ b/tests/testsuite/cargo_add/no_public/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/normalize_name_git/mod.rs b/tests/testsuite/cargo_add/normalize_name_git/mod.rs
index bb14c00..4921d82 100644
--- a/tests/testsuite/cargo_add/normalize_name_git/mod.rs
+++ b/tests/testsuite/cargo_add/normalize_name_git/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/normalize_name_path/mod.rs b/tests/testsuite/cargo_add/normalize_name_path/mod.rs
index 0153085..c2ebc5d 100644
--- a/tests/testsuite/cargo_add/normalize_name_path/mod.rs
+++ b/tests/testsuite/cargo_add/normalize_name_path/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/normalize_name_path_existing/mod.rs b/tests/testsuite/cargo_add/normalize_name_path_existing/mod.rs
index c3b11fc..9b4c2ad 100644
--- a/tests/testsuite/cargo_add/normalize_name_path_existing/mod.rs
+++ b/tests/testsuite/cargo_add/normalize_name_path_existing/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/normalize_name_registry/mod.rs b/tests/testsuite/cargo_add/normalize_name_registry/mod.rs
index b07bf58..b4a1bcc 100644
--- a/tests/testsuite/cargo_add/normalize_name_registry/mod.rs
+++ b/tests/testsuite/cargo_add/normalize_name_registry/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/normalize_name_registry_existing/mod.rs b/tests/testsuite/cargo_add/normalize_name_registry_existing/mod.rs
index c20857a..04512d2 100644
--- a/tests/testsuite/cargo_add/normalize_name_registry_existing/mod.rs
+++ b/tests/testsuite/cargo_add/normalize_name_registry_existing/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/normalize_name_registry_yanked/mod.rs b/tests/testsuite/cargo_add/normalize_name_registry_yanked/mod.rs
index 07e091e..9cb2831 100644
--- a/tests/testsuite/cargo_add/normalize_name_registry_yanked/mod.rs
+++ b/tests/testsuite/cargo_add/normalize_name_registry_yanked/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/normalize_name_workspace_dep/mod.rs b/tests/testsuite/cargo_add/normalize_name_workspace_dep/mod.rs
index f83f681..c64c842 100644
--- a/tests/testsuite/cargo_add/normalize_name_workspace_dep/mod.rs
+++ b/tests/testsuite/cargo_add/normalize_name_workspace_dep/mod.rs
@@ -1,10 +1,10 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::registry::Package;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/offline_empty_cache/mod.rs b/tests/testsuite/cargo_add/offline_empty_cache/mod.rs
index 6142104..0ceffff 100644
--- a/tests/testsuite/cargo_add/offline_empty_cache/mod.rs
+++ b/tests/testsuite/cargo_add/offline_empty_cache/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/optional/mod.rs b/tests/testsuite/cargo_add/optional/mod.rs
index ee10559..69d8316 100644
--- a/tests/testsuite/cargo_add/optional/mod.rs
+++ b/tests/testsuite/cargo_add/optional/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_default_features/mod.rs b/tests/testsuite/cargo_add/overwrite_default_features/mod.rs
index 7b471a5..93c72ef 100644
--- a/tests/testsuite/cargo_add/overwrite_default_features/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_default_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/mod.rs b/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/mod.rs
index 2ede55b..329ac54 100644
--- a/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_features/mod.rs b/tests/testsuite/cargo_add/overwrite_features/mod.rs
index 1a2d5d9..0fe1322 100644
--- a/tests/testsuite/cargo_add/overwrite_features/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_git_with_path/mod.rs b/tests/testsuite/cargo_add/overwrite_git_with_path/mod.rs
index 70ad8f6..5faa587 100644
--- a/tests/testsuite/cargo_add/overwrite_git_with_path/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_git_with_path/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_inherit_features_noop/mod.rs b/tests/testsuite/cargo_add/overwrite_inherit_features_noop/mod.rs
index 5e731c6..20396a6 100644
--- a/tests/testsuite/cargo_add/overwrite_inherit_features_noop/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_inherit_features_noop/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_inherit_noop/mod.rs b/tests/testsuite/cargo_add/overwrite_inherit_noop/mod.rs
index 5e731c6..20396a6 100644
--- a/tests/testsuite/cargo_add/overwrite_inherit_noop/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_inherit_noop/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/mod.rs b/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/mod.rs
index 5e731c6..20396a6 100644
--- a/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_inline_features/mod.rs b/tests/testsuite/cargo_add/overwrite_inline_features/mod.rs
index a9a4f56..4807e28 100644
--- a/tests/testsuite/cargo_add/overwrite_inline_features/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_inline_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_name_dev_noop/mod.rs b/tests/testsuite/cargo_add/overwrite_name_dev_noop/mod.rs
index 14e202f..1ef45bd 100644
--- a/tests/testsuite/cargo_add/overwrite_name_dev_noop/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_name_dev_noop/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_name_noop/mod.rs b/tests/testsuite/cargo_add/overwrite_name_noop/mod.rs
index ea9ca55..3055559 100644
--- a/tests/testsuite/cargo_add/overwrite_name_noop/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_name_noop/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_no_default_features/mod.rs b/tests/testsuite/cargo_add/overwrite_no_default_features/mod.rs
index 2ede55b..329ac54 100644
--- a/tests/testsuite/cargo_add/overwrite_no_default_features/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_no_default_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/mod.rs b/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/mod.rs
index 7b471a5..93c72ef 100644
--- a/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_no_optional/mod.rs b/tests/testsuite/cargo_add/overwrite_no_optional/mod.rs
index 0045cf8..bf08514 100644
--- a/tests/testsuite/cargo_add/overwrite_no_optional/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_no_optional/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/mod.rs b/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/mod.rs
index ee10559..69d8316 100644
--- a/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_no_public/mod.rs b/tests/testsuite/cargo_add/overwrite_no_public/mod.rs
index 0f29091..b440c30 100644
--- a/tests/testsuite/cargo_add/overwrite_no_public/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_no_public/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_no_public_with_public/mod.rs b/tests/testsuite/cargo_add/overwrite_no_public_with_public/mod.rs
index 0e71adf..38cdc1e 100644
--- a/tests/testsuite/cargo_add/overwrite_no_public_with_public/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_no_public_with_public/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_optional/mod.rs b/tests/testsuite/cargo_add/overwrite_optional/mod.rs
index ee10559..69d8316 100644
--- a/tests/testsuite/cargo_add/overwrite_optional/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_optional/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/mod.rs b/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/mod.rs
index 2cea656..815b7f0 100644
--- a/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_optional_with_optional/mod.rs b/tests/testsuite/cargo_add/overwrite_optional_with_optional/mod.rs
index b096947..2bbd335 100644
--- a/tests/testsuite/cargo_add/overwrite_optional_with_optional/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_optional_with_optional/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_path_base_with_version/mod.rs b/tests/testsuite/cargo_add/overwrite_path_base_with_version/mod.rs
index 51c58b4..4f33591 100644
--- a/tests/testsuite/cargo_add/overwrite_path_base_with_version/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_path_base_with_version/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_path_noop/mod.rs b/tests/testsuite/cargo_add/overwrite_path_noop/mod.rs
index c336347..31547b8 100644
--- a/tests/testsuite/cargo_add/overwrite_path_noop/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_path_noop/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_path_with_version/mod.rs b/tests/testsuite/cargo_add/overwrite_path_with_version/mod.rs
index 0e8999c..d1be973 100644
--- a/tests/testsuite/cargo_add/overwrite_path_with_version/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_path_with_version/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_preserves_inline_table/mod.rs b/tests/testsuite/cargo_add/overwrite_preserves_inline_table/mod.rs
index 1a2d5d9..0fe1322 100644
--- a/tests/testsuite/cargo_add/overwrite_preserves_inline_table/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_preserves_inline_table/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_public/mod.rs b/tests/testsuite/cargo_add/overwrite_public/mod.rs
index 0e71adf..38cdc1e 100644
--- a/tests/testsuite/cargo_add/overwrite_public/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_public/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_public_with_no_public/mod.rs b/tests/testsuite/cargo_add/overwrite_public_with_no_public/mod.rs
index 0f29091..b440c30 100644
--- a/tests/testsuite/cargo_add/overwrite_public_with_no_public/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_public_with_no_public/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/mod.rs b/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/mod.rs
index 76bd0d1..2b1a87d 100644
--- a/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_rename_with_rename/mod.rs b/tests/testsuite/cargo_add/overwrite_rename_with_rename/mod.rs
index ab70f57..11c0b96 100644
--- a/tests/testsuite/cargo_add/overwrite_rename_with_rename/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_rename_with_rename/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/mod.rs b/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/mod.rs
index 3c3ed9a..ea0849f 100644
--- a/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_version_with_git/mod.rs b/tests/testsuite/cargo_add/overwrite_version_with_git/mod.rs
index 6300c30..f87239a 100644
--- a/tests/testsuite/cargo_add/overwrite_version_with_git/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_version_with_git/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_version_with_path/mod.rs b/tests/testsuite/cargo_add/overwrite_version_with_path/mod.rs
index 70ad8f6..5faa587 100644
--- a/tests/testsuite/cargo_add/overwrite_version_with_path/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_version_with_path/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_with_rename/mod.rs b/tests/testsuite/cargo_add/overwrite_with_rename/mod.rs
index f9bc623..ac92bbe 100644
--- a/tests/testsuite/cargo_add/overwrite_with_rename/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_with_rename/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_workspace_dep/mod.rs b/tests/testsuite/cargo_add/overwrite_workspace_dep/mod.rs
index cff5e18..e07188e 100644
--- a/tests/testsuite/cargo_add/overwrite_workspace_dep/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_workspace_dep/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/overwrite_workspace_dep_features/mod.rs b/tests/testsuite/cargo_add/overwrite_workspace_dep_features/mod.rs
index cff5e18..e07188e 100644
--- a/tests/testsuite/cargo_add/overwrite_workspace_dep_features/mod.rs
+++ b/tests/testsuite/cargo_add/overwrite_workspace_dep_features/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/path/mod.rs b/tests/testsuite/cargo_add/path/mod.rs
index 70ad8f6..5faa587 100644
--- a/tests/testsuite/cargo_add/path/mod.rs
+++ b/tests/testsuite/cargo_add/path/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/path_base/mod.rs b/tests/testsuite/cargo_add/path_base/mod.rs
index fb4797c..2be76d1 100644
--- a/tests/testsuite/cargo_add/path_base/mod.rs
+++ b/tests/testsuite/cargo_add/path_base/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/path_base_inferred_name/mod.rs b/tests/testsuite/cargo_add/path_base_inferred_name/mod.rs
index b121f10..46d163a 100644
--- a/tests/testsuite/cargo_add/path_base_inferred_name/mod.rs
+++ b/tests/testsuite/cargo_add/path_base_inferred_name/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/path_base_missing_base_path/mod.rs b/tests/testsuite/cargo_add/path_base_missing_base_path/mod.rs
index c86dd84..bc196f0 100644
--- a/tests/testsuite/cargo_add/path_base_missing_base_path/mod.rs
+++ b/tests/testsuite/cargo_add/path_base_missing_base_path/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/path_base_unstable/mod.rs b/tests/testsuite/cargo_add/path_base_unstable/mod.rs
index 4bc3cad..ccfdc47 100644
--- a/tests/testsuite/cargo_add/path_base_unstable/mod.rs
+++ b/tests/testsuite/cargo_add/path_base_unstable/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/path_dev/mod.rs b/tests/testsuite/cargo_add/path_dev/mod.rs
index 7d20146..24bf43f 100644
--- a/tests/testsuite/cargo_add/path_dev/mod.rs
+++ b/tests/testsuite/cargo_add/path_dev/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/path_inferred_name/mod.rs b/tests/testsuite/cargo_add/path_inferred_name/mod.rs
index e946f70..c0b2cb3 100644
--- a/tests/testsuite/cargo_add/path_inferred_name/mod.rs
+++ b/tests/testsuite/cargo_add/path_inferred_name/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/mod.rs b/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/mod.rs
index a473187..6a91864 100644
--- a/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/mod.rs
+++ b/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/prefixed_v_in_version/mod.rs b/tests/testsuite/cargo_add/prefixed_v_in_version/mod.rs
index dbfa940..8309873 100644
--- a/tests/testsuite/cargo_add/prefixed_v_in_version/mod.rs
+++ b/tests/testsuite/cargo_add/prefixed_v_in_version/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/preserve_dep_std_table/mod.rs b/tests/testsuite/cargo_add/preserve_dep_std_table/mod.rs
index 8dcf5e5..46bd120 100644
--- a/tests/testsuite/cargo_add/preserve_dep_std_table/mod.rs
+++ b/tests/testsuite/cargo_add/preserve_dep_std_table/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/preserve_features_sorted/mod.rs b/tests/testsuite/cargo_add/preserve_features_sorted/mod.rs
index 7da0978..e36ee4b 100644
--- a/tests/testsuite/cargo_add/preserve_features_sorted/mod.rs
+++ b/tests/testsuite/cargo_add/preserve_features_sorted/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/preserve_features_table/mod.rs b/tests/testsuite/cargo_add/preserve_features_table/mod.rs
index 8dcf5e5..46bd120 100644
--- a/tests/testsuite/cargo_add/preserve_features_table/mod.rs
+++ b/tests/testsuite/cargo_add/preserve_features_table/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/preserve_features_unsorted/mod.rs b/tests/testsuite/cargo_add/preserve_features_unsorted/mod.rs
index 53d826e..e247367 100644
--- a/tests/testsuite/cargo_add/preserve_features_unsorted/mod.rs
+++ b/tests/testsuite/cargo_add/preserve_features_unsorted/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/preserve_sorted/mod.rs b/tests/testsuite/cargo_add/preserve_sorted/mod.rs
index 6180569..61ce334 100644
--- a/tests/testsuite/cargo_add/preserve_sorted/mod.rs
+++ b/tests/testsuite/cargo_add/preserve_sorted/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/preserve_unsorted/mod.rs b/tests/testsuite/cargo_add/preserve_unsorted/mod.rs
index 6180569..61ce334 100644
--- a/tests/testsuite/cargo_add/preserve_unsorted/mod.rs
+++ b/tests/testsuite/cargo_add/preserve_unsorted/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/public/mod.rs b/tests/testsuite/cargo_add/public/mod.rs
index 0e71adf..38cdc1e 100644
--- a/tests/testsuite/cargo_add/public/mod.rs
+++ b/tests/testsuite/cargo_add/public/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/quiet/mod.rs b/tests/testsuite/cargo_add/quiet/mod.rs
index 5c8797e..a7a1691 100644
--- a/tests/testsuite/cargo_add/quiet/mod.rs
+++ b/tests/testsuite/cargo_add/quiet/mod.rs
@@ -1,8 +1,8 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/registry/mod.rs b/tests/testsuite/cargo_add/registry/mod.rs
index 34452e7..ce099ae 100644
--- a/tests/testsuite/cargo_add/registry/mod.rs
+++ b/tests/testsuite/cargo_add/registry/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/rename/mod.rs b/tests/testsuite/cargo_add/rename/mod.rs
index 8a5eb9f..953831d 100644
--- a/tests/testsuite/cargo_add/rename/mod.rs
+++ b/tests/testsuite/cargo_add/rename/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/require_weak/mod.rs b/tests/testsuite/cargo_add/require_weak/mod.rs
index 8dcf5e5..46bd120 100644
--- a/tests/testsuite/cargo_add/require_weak/mod.rs
+++ b/tests/testsuite/cargo_add/require_weak/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/rust_version_ignore/mod.rs b/tests/testsuite/cargo_add/rust_version_ignore/mod.rs
index fc3c3ff..a637e3c 100644
--- a/tests/testsuite/cargo_add/rust_version_ignore/mod.rs
+++ b/tests/testsuite/cargo_add/rust_version_ignore/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/rust_version_incompatible/mod.rs b/tests/testsuite/cargo_add/rust_version_incompatible/mod.rs
index dd62490..46d1285 100644
--- a/tests/testsuite/cargo_add/rust_version_incompatible/mod.rs
+++ b/tests/testsuite/cargo_add/rust_version_incompatible/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/rust_version_latest/mod.rs b/tests/testsuite/cargo_add/rust_version_latest/mod.rs
index 8373934..0d59cb1 100644
--- a/tests/testsuite/cargo_add/rust_version_latest/mod.rs
+++ b/tests/testsuite/cargo_add/rust_version_latest/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/rust_version_older/mod.rs b/tests/testsuite/cargo_add/rust_version_older/mod.rs
index 8373934..0d59cb1 100644
--- a/tests/testsuite/cargo_add/rust_version_older/mod.rs
+++ b/tests/testsuite/cargo_add/rust_version_older/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/rustc_ignore/mod.rs b/tests/testsuite/cargo_add/rustc_ignore/mod.rs
index 0257f8f..42d501e 100644
--- a/tests/testsuite/cargo_add/rustc_ignore/mod.rs
+++ b/tests/testsuite/cargo_add/rustc_ignore/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/rustc_incompatible/mod.rs b/tests/testsuite/cargo_add/rustc_incompatible/mod.rs
index a9a3256..35c906d 100644
--- a/tests/testsuite/cargo_add/rustc_incompatible/mod.rs
+++ b/tests/testsuite/cargo_add/rustc_incompatible/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/rustc_latest/mod.rs b/tests/testsuite/cargo_add/rustc_latest/mod.rs
index e50a942..1e06e5b 100644
--- a/tests/testsuite/cargo_add/rustc_latest/mod.rs
+++ b/tests/testsuite/cargo_add/rustc_latest/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/rustc_older/mod.rs b/tests/testsuite/cargo_add/rustc_older/mod.rs
index e50a942..1e06e5b 100644
--- a/tests/testsuite/cargo_add/rustc_older/mod.rs
+++ b/tests/testsuite/cargo_add/rustc_older/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/script_bare/mod.rs b/tests/testsuite/cargo_add/script_bare/mod.rs
index de0df53..baef47e 100644
--- a/tests/testsuite/cargo_add/script_bare/mod.rs
+++ b/tests/testsuite/cargo_add/script_bare/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/script_frontmatter/mod.rs b/tests/testsuite/cargo_add/script_frontmatter/mod.rs
index de0df53..baef47e 100644
--- a/tests/testsuite/cargo_add/script_frontmatter/mod.rs
+++ b/tests/testsuite/cargo_add/script_frontmatter/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/script_shebang/mod.rs b/tests/testsuite/cargo_add/script_shebang/mod.rs
index de0df53..baef47e 100644
--- a/tests/testsuite/cargo_add/script_shebang/mod.rs
+++ b/tests/testsuite/cargo_add/script_shebang/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/sorted_table_with_dotted_item/mod.rs b/tests/testsuite/cargo_add/sorted_table_with_dotted_item/mod.rs
index a21444f..cd31a15 100644
--- a/tests/testsuite/cargo_add/sorted_table_with_dotted_item/mod.rs
+++ b/tests/testsuite/cargo_add/sorted_table_with_dotted_item/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/target/mod.rs b/tests/testsuite/cargo_add/target/mod.rs
index 0b7852f..94725a6 100644
--- a/tests/testsuite/cargo_add/target/mod.rs
+++ b/tests/testsuite/cargo_add/target/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/target_cfg/mod.rs b/tests/testsuite/cargo_add/target_cfg/mod.rs
index 069cb3f..b61b337 100644
--- a/tests/testsuite/cargo_add/target_cfg/mod.rs
+++ b/tests/testsuite/cargo_add/target_cfg/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/unknown_inherited_feature/mod.rs b/tests/testsuite/cargo_add/unknown_inherited_feature/mod.rs
index 13bf13e..5aab4e2 100644
--- a/tests/testsuite/cargo_add/unknown_inherited_feature/mod.rs
+++ b/tests/testsuite/cargo_add/unknown_inherited_feature/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/vers/mod.rs b/tests/testsuite/cargo_add/vers/mod.rs
index e428a6b..37ed62b 100644
--- a/tests/testsuite/cargo_add/vers/mod.rs
+++ b/tests/testsuite/cargo_add/vers/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/workspace_name/mod.rs b/tests/testsuite/cargo_add/workspace_name/mod.rs
index 5efec4f..455404f 100644
--- a/tests/testsuite/cargo_add/workspace_name/mod.rs
+++ b/tests/testsuite/cargo_add/workspace_name/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/workspace_path/mod.rs b/tests/testsuite/cargo_add/workspace_path/mod.rs
index 70ad8f6..5faa587 100644
--- a/tests/testsuite/cargo_add/workspace_path/mod.rs
+++ b/tests/testsuite/cargo_add/workspace_path/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/workspace_path_dev/mod.rs b/tests/testsuite/cargo_add/workspace_path_dev/mod.rs
index 7d20146..24bf43f 100644
--- a/tests/testsuite/cargo_add/workspace_path_dev/mod.rs
+++ b/tests/testsuite/cargo_add/workspace_path_dev/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_add/yanked/mod.rs b/tests/testsuite/cargo_add/yanked/mod.rs
index 0164022..34ee0a3 100644
--- a/tests/testsuite/cargo_add/yanked/mod.rs
+++ b/tests/testsuite/cargo_add/yanked/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_bench/no_keep_going/mod.rs b/tests/testsuite/cargo_bench/no_keep_going/mod.rs
index 2432308..9b2af55 100644
--- a/tests/testsuite/cargo_bench/no_keep_going/mod.rs
+++ b/tests/testsuite/cargo_bench/no_keep_going/mod.rs
@@ -1,8 +1,8 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_info/not_found/mod.rs b/tests/testsuite/cargo_info/not_found/mod.rs
index d229b5c..94afa72 100644
--- a/tests/testsuite/cargo_info/not_found/mod.rs
+++ b/tests/testsuite/cargo_info/not_found/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, current_dir, file, Project};
+use cargo_test_support::{Project, compare::assert_ui, current_dir, file};
 
 use super::init_registry_without_token;
 
diff --git a/tests/testsuite/cargo_info/path_dependency/mod.rs b/tests/testsuite/cargo_info/path_dependency/mod.rs
index 5e8e878..4f778f4 100644
--- a/tests/testsuite/cargo_info/path_dependency/mod.rs
+++ b/tests/testsuite/cargo_info/path_dependency/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, current_dir, file, Project};
+use cargo_test_support::{Project, compare::assert_ui, current_dir, file};
 
 use super::init_registry_without_token;
 
diff --git a/tests/testsuite/cargo_info/pick_msrv_compatible_package_within_ws/mod.rs b/tests/testsuite/cargo_info/pick_msrv_compatible_package_within_ws/mod.rs
index 6556212..b6c5e7c 100644
--- a/tests/testsuite/cargo_info/pick_msrv_compatible_package_within_ws/mod.rs
+++ b/tests/testsuite/cargo_info/pick_msrv_compatible_package_within_ws/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, current_dir, file, Project};
+use cargo_test_support::{Project, compare::assert_ui, current_dir, file};
 
 use super::init_registry_without_token;
 
diff --git a/tests/testsuite/cargo_info/pick_msrv_compatible_package_within_ws_and_use_msrv_from_ws/mod.rs b/tests/testsuite/cargo_info/pick_msrv_compatible_package_within_ws_and_use_msrv_from_ws/mod.rs
index 99931b4..b1118be 100644
--- a/tests/testsuite/cargo_info/pick_msrv_compatible_package_within_ws_and_use_msrv_from_ws/mod.rs
+++ b/tests/testsuite/cargo_info/pick_msrv_compatible_package_within_ws_and_use_msrv_from_ws/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, current_dir, file, Project};
+use cargo_test_support::{Project, compare::assert_ui, current_dir, file};
 
 use super::init_registry_without_token;
 
diff --git a/tests/testsuite/cargo_info/specify_version_within_ws_and_conflict_with_lockfile/mod.rs b/tests/testsuite/cargo_info/specify_version_within_ws_and_conflict_with_lockfile/mod.rs
index bf1048c..7fd029a 100644
--- a/tests/testsuite/cargo_info/specify_version_within_ws_and_conflict_with_lockfile/mod.rs
+++ b/tests/testsuite/cargo_info/specify_version_within_ws_and_conflict_with_lockfile/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, current_dir, file, Project};
+use cargo_test_support::{Project, compare::assert_ui, current_dir, file};
 
 use super::init_registry_without_token;
 
diff --git a/tests/testsuite/cargo_info/specify_version_within_ws_and_match_with_lockfile/mod.rs b/tests/testsuite/cargo_info/specify_version_within_ws_and_match_with_lockfile/mod.rs
index 8ac9a82..8a3b21c 100644
--- a/tests/testsuite/cargo_info/specify_version_within_ws_and_match_with_lockfile/mod.rs
+++ b/tests/testsuite/cargo_info/specify_version_within_ws_and_match_with_lockfile/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, current_dir, file, Project};
+use cargo_test_support::{Project, compare::assert_ui, current_dir, file};
 
 use super::init_registry_without_token;
 
diff --git a/tests/testsuite/cargo_info/transitive_dependency_within_ws/mod.rs b/tests/testsuite/cargo_info/transitive_dependency_within_ws/mod.rs
index 19e3a75..d7d7442 100644
--- a/tests/testsuite/cargo_info/transitive_dependency_within_ws/mod.rs
+++ b/tests/testsuite/cargo_info/transitive_dependency_within_ws/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, current_dir, file, Project};
+use cargo_test_support::{Project, compare::assert_ui, current_dir, file};
 
 use super::init_registry_without_token;
 
diff --git a/tests/testsuite/cargo_info/with_frozen_within_ws/mod.rs b/tests/testsuite/cargo_info/with_frozen_within_ws/mod.rs
index c0104c1..f3d121f 100644
--- a/tests/testsuite/cargo_info/with_frozen_within_ws/mod.rs
+++ b/tests/testsuite/cargo_info/with_frozen_within_ws/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, current_dir, file, Project};
+use cargo_test_support::{Project, compare::assert_ui, current_dir, file};
 
 use super::init_registry_without_token;
 
diff --git a/tests/testsuite/cargo_info/with_locked_within_ws/mod.rs b/tests/testsuite/cargo_info/with_locked_within_ws/mod.rs
index 5dd3e20..0e65142 100644
--- a/tests/testsuite/cargo_info/with_locked_within_ws/mod.rs
+++ b/tests/testsuite/cargo_info/with_locked_within_ws/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, current_dir, file, Project};
+use cargo_test_support::{Project, compare::assert_ui, current_dir, file};
 
 use super::init_registry_without_token;
 
diff --git a/tests/testsuite/cargo_info/with_locked_within_ws_and_pick_the_package/mod.rs b/tests/testsuite/cargo_info/with_locked_within_ws_and_pick_the_package/mod.rs
index b29d5f2..1c20288 100644
--- a/tests/testsuite/cargo_info/with_locked_within_ws_and_pick_the_package/mod.rs
+++ b/tests/testsuite/cargo_info/with_locked_within_ws_and_pick_the_package/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, current_dir, file, Project};
+use cargo_test_support::{Project, compare::assert_ui, current_dir, file};
 
 use super::init_registry_without_token;
 
diff --git a/tests/testsuite/cargo_info/within_ws/mod.rs b/tests/testsuite/cargo_info/within_ws/mod.rs
index 5bed4d6..5ce79e5 100644
--- a/tests/testsuite/cargo_info/within_ws/mod.rs
+++ b/tests/testsuite/cargo_info/within_ws/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, current_dir, file, Project};
+use cargo_test_support::{Project, compare::assert_ui, current_dir, file};
 
 use super::init_registry_without_token;
 
diff --git a/tests/testsuite/cargo_info/within_ws_and_pick_ws_package/mod.rs b/tests/testsuite/cargo_info/within_ws_and_pick_ws_package/mod.rs
index 38cfcfd..1cea176 100644
--- a/tests/testsuite/cargo_info/within_ws_and_pick_ws_package/mod.rs
+++ b/tests/testsuite/cargo_info/within_ws_and_pick_ws_package/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, current_dir, file, Project};
+use cargo_test_support::{Project, compare::assert_ui, current_dir, file};
 
 use super::init_registry_without_token;
 
diff --git a/tests/testsuite/cargo_info/within_ws_with_alternative_registry/mod.rs b/tests/testsuite/cargo_info/within_ws_with_alternative_registry/mod.rs
index 3599060..b8bea92 100644
--- a/tests/testsuite/cargo_info/within_ws_with_alternative_registry/mod.rs
+++ b/tests/testsuite/cargo_info/within_ws_with_alternative_registry/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, registry::RegistryBuilder, Project};
+use cargo_test_support::{Project, compare::assert_ui, registry::RegistryBuilder};
 use cargo_test_support::{current_dir, file};
 
 use super::init_registry_without_token;
diff --git a/tests/testsuite/cargo_info/within_ws_without_lockfile/mod.rs b/tests/testsuite/cargo_info/within_ws_without_lockfile/mod.rs
index 7bc8ef9..087e024 100644
--- a/tests/testsuite/cargo_info/within_ws_without_lockfile/mod.rs
+++ b/tests/testsuite/cargo_info/within_ws_without_lockfile/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, current_dir, file, Project};
+use cargo_test_support::{Project, compare::assert_ui, current_dir, file};
 
 use super::init_registry_without_token;
 
diff --git a/tests/testsuite/cargo_info/without_requiring_registry_auth/mod.rs b/tests/testsuite/cargo_info/without_requiring_registry_auth/mod.rs
index 4fddf56..f5d8b45 100644
--- a/tests/testsuite/cargo_info/without_requiring_registry_auth/mod.rs
+++ b/tests/testsuite/cargo_info/without_requiring_registry_auth/mod.rs
@@ -1,5 +1,5 @@
 use crate::prelude::*;
-use cargo_test_support::{compare::assert_ui, current_dir, file, Project};
+use cargo_test_support::{Project, compare::assert_ui, current_dir, file};
 
 use super::init_registry_without_token;
 
diff --git a/tests/testsuite/cargo_init/auto_git/mod.rs b/tests/testsuite/cargo_init/auto_git/mod.rs
index 1a65662..56a3a48 100644
--- a/tests/testsuite/cargo_init/auto_git/mod.rs
+++ b/tests/testsuite/cargo_init/auto_git/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/bin_already_exists_explicit/mod.rs b/tests/testsuite/cargo_init/bin_already_exists_explicit/mod.rs
index 041e796..6b54d22 100644
--- a/tests/testsuite/cargo_init/bin_already_exists_explicit/mod.rs
+++ b/tests/testsuite/cargo_init/bin_already_exists_explicit/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/bin_already_exists_explicit_nosrc/mod.rs b/tests/testsuite/cargo_init/bin_already_exists_explicit_nosrc/mod.rs
index f7b0e0c..849b8a5 100644
--- a/tests/testsuite/cargo_init/bin_already_exists_explicit_nosrc/mod.rs
+++ b/tests/testsuite/cargo_init/bin_already_exists_explicit_nosrc/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/bin_already_exists_implicit/mod.rs b/tests/testsuite/cargo_init/bin_already_exists_implicit/mod.rs
index ec1062a..12ccfa6 100644
--- a/tests/testsuite/cargo_init/bin_already_exists_implicit/mod.rs
+++ b/tests/testsuite/cargo_init/bin_already_exists_implicit/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/bin_already_exists_implicit_namenosrc/mod.rs b/tests/testsuite/cargo_init/bin_already_exists_implicit_namenosrc/mod.rs
index a566193..01fc769 100644
--- a/tests/testsuite/cargo_init/bin_already_exists_implicit_namenosrc/mod.rs
+++ b/tests/testsuite/cargo_init/bin_already_exists_implicit_namenosrc/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/bin_already_exists_implicit_namesrc/mod.rs b/tests/testsuite/cargo_init/bin_already_exists_implicit_namesrc/mod.rs
index f2bb65d..b192e9d 100644
--- a/tests/testsuite/cargo_init/bin_already_exists_implicit_namesrc/mod.rs
+++ b/tests/testsuite/cargo_init/bin_already_exists_implicit_namesrc/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/bin_already_exists_implicit_nosrc/mod.rs b/tests/testsuite/cargo_init/bin_already_exists_implicit_nosrc/mod.rs
index a566193..01fc769 100644
--- a/tests/testsuite/cargo_init/bin_already_exists_implicit_nosrc/mod.rs
+++ b/tests/testsuite/cargo_init/bin_already_exists_implicit_nosrc/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/cant_create_library_when_both_binlib_present/mod.rs b/tests/testsuite/cargo_init/cant_create_library_when_both_binlib_present/mod.rs
index cb47aad..a03d37d 100644
--- a/tests/testsuite/cargo_init/cant_create_library_when_both_binlib_present/mod.rs
+++ b/tests/testsuite/cargo_init/cant_create_library_when_both_binlib_present/mod.rs
@@ -1,8 +1,8 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/confused_by_multiple_lib_files/mod.rs b/tests/testsuite/cargo_init/confused_by_multiple_lib_files/mod.rs
index 250c7b9..a92916e 100644
--- a/tests/testsuite/cargo_init/confused_by_multiple_lib_files/mod.rs
+++ b/tests/testsuite/cargo_init/confused_by_multiple_lib_files/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/creates_binary_when_both_binlib_present/mod.rs b/tests/testsuite/cargo_init/creates_binary_when_both_binlib_present/mod.rs
index 041e796..6b54d22 100644
--- a/tests/testsuite/cargo_init/creates_binary_when_both_binlib_present/mod.rs
+++ b/tests/testsuite/cargo_init/creates_binary_when_both_binlib_present/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/creates_binary_when_instructed_and_has_lib_file/mod.rs b/tests/testsuite/cargo_init/creates_binary_when_instructed_and_has_lib_file/mod.rs
index 041e796..6b54d22 100644
--- a/tests/testsuite/cargo_init/creates_binary_when_instructed_and_has_lib_file/mod.rs
+++ b/tests/testsuite/cargo_init/creates_binary_when_instructed_and_has_lib_file/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/creates_library_when_instructed_and_has_bin_file/mod.rs b/tests/testsuite/cargo_init/creates_library_when_instructed_and_has_bin_file/mod.rs
index f203839..dac18dd 100644
--- a/tests/testsuite/cargo_init/creates_library_when_instructed_and_has_bin_file/mod.rs
+++ b/tests/testsuite/cargo_init/creates_library_when_instructed_and_has_bin_file/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/explicit_bin_with_git/mod.rs b/tests/testsuite/cargo_init/explicit_bin_with_git/mod.rs
index fe3c328..9080ff1 100644
--- a/tests/testsuite/cargo_init/explicit_bin_with_git/mod.rs
+++ b/tests/testsuite/cargo_init/explicit_bin_with_git/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/formats_source/mod.rs b/tests/testsuite/cargo_init/formats_source/mod.rs
index 397ab03..aa10b19 100644
--- a/tests/testsuite/cargo_init/formats_source/mod.rs
+++ b/tests/testsuite/cargo_init/formats_source/mod.rs
@@ -3,7 +3,7 @@
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::{process, Project};
+use cargo_test_support::{Project, process};
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/fossil_autodetect/mod.rs b/tests/testsuite/cargo_init/fossil_autodetect/mod.rs
index 9246f52..7b59945 100644
--- a/tests/testsuite/cargo_init/fossil_autodetect/mod.rs
+++ b/tests/testsuite/cargo_init/fossil_autodetect/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/git_ignore_exists_no_conflicting_entries/mod.rs b/tests/testsuite/cargo_init/git_ignore_exists_no_conflicting_entries/mod.rs
index cad651e..4361163 100644
--- a/tests/testsuite/cargo_init/git_ignore_exists_no_conflicting_entries/mod.rs
+++ b/tests/testsuite/cargo_init/git_ignore_exists_no_conflicting_entries/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/ignores_failure_to_format_source/mod.rs b/tests/testsuite/cargo_init/ignores_failure_to_format_source/mod.rs
index 74ccb5c..273e921 100644
--- a/tests/testsuite/cargo_init/ignores_failure_to_format_source/mod.rs
+++ b/tests/testsuite/cargo_init/ignores_failure_to_format_source/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/inferred_bin_with_git/mod.rs b/tests/testsuite/cargo_init/inferred_bin_with_git/mod.rs
index 5c2ab0f..a060e41 100644
--- a/tests/testsuite/cargo_init/inferred_bin_with_git/mod.rs
+++ b/tests/testsuite/cargo_init/inferred_bin_with_git/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/inferred_lib_with_git/mod.rs b/tests/testsuite/cargo_init/inferred_lib_with_git/mod.rs
index 5c2ab0f..a060e41 100644
--- a/tests/testsuite/cargo_init/inferred_lib_with_git/mod.rs
+++ b/tests/testsuite/cargo_init/inferred_lib_with_git/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/inherit_workspace_package_table/mod.rs b/tests/testsuite/cargo_init/inherit_workspace_package_table/mod.rs
index 21030e7..527a0c9 100644
--- a/tests/testsuite/cargo_init/inherit_workspace_package_table/mod.rs
+++ b/tests/testsuite/cargo_init/inherit_workspace_package_table/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/lib_already_exists_nosrc/mod.rs b/tests/testsuite/cargo_init/lib_already_exists_nosrc/mod.rs
index f2bb65d..b192e9d 100644
--- a/tests/testsuite/cargo_init/lib_already_exists_nosrc/mod.rs
+++ b/tests/testsuite/cargo_init/lib_already_exists_nosrc/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/lib_already_exists_src/mod.rs b/tests/testsuite/cargo_init/lib_already_exists_src/mod.rs
index f2bb65d..b192e9d 100644
--- a/tests/testsuite/cargo_init/lib_already_exists_src/mod.rs
+++ b/tests/testsuite/cargo_init/lib_already_exists_src/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/mercurial_autodetect/mod.rs b/tests/testsuite/cargo_init/mercurial_autodetect/mod.rs
index 9246f52..7b59945 100644
--- a/tests/testsuite/cargo_init/mercurial_autodetect/mod.rs
+++ b/tests/testsuite/cargo_init/mercurial_autodetect/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/multibin_project_name_clash/mod.rs b/tests/testsuite/cargo_init/multibin_project_name_clash/mod.rs
index eabe91d..06d2352 100644
--- a/tests/testsuite/cargo_init/multibin_project_name_clash/mod.rs
+++ b/tests/testsuite/cargo_init/multibin_project_name_clash/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/path_contains_separator/mod.rs b/tests/testsuite/cargo_init/path_contains_separator/mod.rs
index 5e4e00c..385ad7c 100644
--- a/tests/testsuite/cargo_init/path_contains_separator/mod.rs
+++ b/tests/testsuite/cargo_init/path_contains_separator/mod.rs
@@ -3,7 +3,7 @@
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::{t, Project};
+use cargo_test_support::{Project, t};
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/pijul_autodetect/mod.rs b/tests/testsuite/cargo_init/pijul_autodetect/mod.rs
index 9246f52..7b59945 100644
--- a/tests/testsuite/cargo_init/pijul_autodetect/mod.rs
+++ b/tests/testsuite/cargo_init/pijul_autodetect/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/simple_bin/mod.rs b/tests/testsuite/cargo_init/simple_bin/mod.rs
index cb6dfa7..92622e7 100644
--- a/tests/testsuite/cargo_init/simple_bin/mod.rs
+++ b/tests/testsuite/cargo_init/simple_bin/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/simple_git/mod.rs b/tests/testsuite/cargo_init/simple_git/mod.rs
index c5ef564..36982ed 100644
--- a/tests/testsuite/cargo_init/simple_git/mod.rs
+++ b/tests/testsuite/cargo_init/simple_git/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/simple_git_ignore_exists/mod.rs b/tests/testsuite/cargo_init/simple_git_ignore_exists/mod.rs
index 32daa40..7ef2b18 100644
--- a/tests/testsuite/cargo_init/simple_git_ignore_exists/mod.rs
+++ b/tests/testsuite/cargo_init/simple_git_ignore_exists/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/simple_hg/mod.rs b/tests/testsuite/cargo_init/simple_hg/mod.rs
index 00f4a87..7d68529 100644
--- a/tests/testsuite/cargo_init/simple_hg/mod.rs
+++ b/tests/testsuite/cargo_init/simple_hg/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test(requires = "hg")]
 fn case() {
diff --git a/tests/testsuite/cargo_init/simple_hg_ignore_exists/mod.rs b/tests/testsuite/cargo_init/simple_hg_ignore_exists/mod.rs
index 9246f52..7b59945 100644
--- a/tests/testsuite/cargo_init/simple_hg_ignore_exists/mod.rs
+++ b/tests/testsuite/cargo_init/simple_hg_ignore_exists/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/simple_lib/mod.rs b/tests/testsuite/cargo_init/simple_lib/mod.rs
index 51ce7dd..d1a4031 100644
--- a/tests/testsuite/cargo_init/simple_lib/mod.rs
+++ b/tests/testsuite/cargo_init/simple_lib/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/with_argument/mod.rs b/tests/testsuite/cargo_init/with_argument/mod.rs
index b76db42..0916a8e 100644
--- a/tests/testsuite/cargo_init/with_argument/mod.rs
+++ b/tests/testsuite/cargo_init/with_argument/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_init/workspace_add_member/mod.rs b/tests/testsuite/cargo_init/workspace_add_member/mod.rs
index fa714ac..2ebf843 100644
--- a/tests/testsuite/cargo_init/workspace_add_member/mod.rs
+++ b/tests/testsuite/cargo_init/workspace_add_member/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/add_members_to_non_workspace/mod.rs b/tests/testsuite/cargo_new/add_members_to_non_workspace/mod.rs
index de5c989..9f1910e 100644
--- a/tests/testsuite/cargo_new/add_members_to_non_workspace/mod.rs
+++ b/tests/testsuite/cargo_new/add_members_to_non_workspace/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/add_members_to_workspace_format_previous_items/mod.rs b/tests/testsuite/cargo_new/add_members_to_workspace_format_previous_items/mod.rs
index 7cb081c..db24350 100644
--- a/tests/testsuite/cargo_new/add_members_to_workspace_format_previous_items/mod.rs
+++ b/tests/testsuite/cargo_new/add_members_to_workspace_format_previous_items/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/add_members_to_workspace_format_sorted/mod.rs b/tests/testsuite/cargo_new/add_members_to_workspace_format_sorted/mod.rs
index 7cb081c..db24350 100644
--- a/tests/testsuite/cargo_new/add_members_to_workspace_format_sorted/mod.rs
+++ b/tests/testsuite/cargo_new/add_members_to_workspace_format_sorted/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/add_members_to_workspace_with_absolute_package_path/mod.rs b/tests/testsuite/cargo_new/add_members_to_workspace_with_absolute_package_path/mod.rs
index ec5e4f0..8b7898f 100644
--- a/tests/testsuite/cargo_new/add_members_to_workspace_with_absolute_package_path/mod.rs
+++ b/tests/testsuite/cargo_new/add_members_to_workspace_with_absolute_package_path/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/add_members_to_workspace_with_empty_members/mod.rs b/tests/testsuite/cargo_new/add_members_to_workspace_with_empty_members/mod.rs
index 7cb081c..db24350 100644
--- a/tests/testsuite/cargo_new/add_members_to_workspace_with_empty_members/mod.rs
+++ b/tests/testsuite/cargo_new/add_members_to_workspace_with_empty_members/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/add_members_to_workspace_with_exclude_list/mod.rs b/tests/testsuite/cargo_new/add_members_to_workspace_with_exclude_list/mod.rs
index 7cb081c..db24350 100644
--- a/tests/testsuite/cargo_new/add_members_to_workspace_with_exclude_list/mod.rs
+++ b/tests/testsuite/cargo_new/add_members_to_workspace_with_exclude_list/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/add_members_to_workspace_with_members_glob/mod.rs b/tests/testsuite/cargo_new/add_members_to_workspace_with_members_glob/mod.rs
index 7cb081c..db24350 100644
--- a/tests/testsuite/cargo_new/add_members_to_workspace_with_members_glob/mod.rs
+++ b/tests/testsuite/cargo_new/add_members_to_workspace_with_members_glob/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/add_members_to_workspace_without_members/mod.rs b/tests/testsuite/cargo_new/add_members_to_workspace_without_members/mod.rs
index de5c989..9f1910e 100644
--- a/tests/testsuite/cargo_new/add_members_to_workspace_without_members/mod.rs
+++ b/tests/testsuite/cargo_new/add_members_to_workspace_without_members/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/empty_name/mod.rs b/tests/testsuite/cargo_new/empty_name/mod.rs
index 9e4a767..7c01678 100644
--- a/tests/testsuite/cargo_new/empty_name/mod.rs
+++ b/tests/testsuite/cargo_new/empty_name/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/ignore_current_dir_workspace/mod.rs b/tests/testsuite/cargo_new/ignore_current_dir_workspace/mod.rs
index 938ea7d..f21a0f3 100644
--- a/tests/testsuite/cargo_new/ignore_current_dir_workspace/mod.rs
+++ b/tests/testsuite/cargo_new/ignore_current_dir_workspace/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/inherit_workspace_lints/mod.rs b/tests/testsuite/cargo_new/inherit_workspace_lints/mod.rs
index 7cb081c..db24350 100644
--- a/tests/testsuite/cargo_new/inherit_workspace_lints/mod.rs
+++ b/tests/testsuite/cargo_new/inherit_workspace_lints/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/inherit_workspace_package_table/mod.rs b/tests/testsuite/cargo_new/inherit_workspace_package_table/mod.rs
index 7cb081c..db24350 100644
--- a/tests/testsuite/cargo_new/inherit_workspace_package_table/mod.rs
+++ b/tests/testsuite/cargo_new/inherit_workspace_package_table/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/inherit_workspace_package_table_with_edition/mod.rs b/tests/testsuite/cargo_new/inherit_workspace_package_table_with_edition/mod.rs
index b4d8f70..91e6c8f 100644
--- a/tests/testsuite/cargo_new/inherit_workspace_package_table_with_edition/mod.rs
+++ b/tests/testsuite/cargo_new/inherit_workspace_package_table_with_edition/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/inherit_workspace_package_table_with_registry/mod.rs b/tests/testsuite/cargo_new/inherit_workspace_package_table_with_registry/mod.rs
index 5702e69..38941b8 100644
--- a/tests/testsuite/cargo_new/inherit_workspace_package_table_with_registry/mod.rs
+++ b/tests/testsuite/cargo_new/inherit_workspace_package_table_with_registry/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/inherit_workspace_package_table_without_version/mod.rs b/tests/testsuite/cargo_new/inherit_workspace_package_table_without_version/mod.rs
index 7cb081c..db24350 100644
--- a/tests/testsuite/cargo_new/inherit_workspace_package_table_without_version/mod.rs
+++ b/tests/testsuite/cargo_new/inherit_workspace_package_table_without_version/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_new/not_inherit_workspace_package_table_if_not_members/mod.rs b/tests/testsuite/cargo_new/not_inherit_workspace_package_table_if_not_members/mod.rs
index 72df288..fcb808e 100644
--- a/tests/testsuite/cargo_new/not_inherit_workspace_package_table_if_not_members/mod.rs
+++ b/tests/testsuite/cargo_new/not_inherit_workspace_package_table_if_not_members/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/avoid_empty_tables/mod.rs b/tests/testsuite/cargo_remove/avoid_empty_tables/mod.rs
index 0c8e68d..1e7d9b4 100644
--- a/tests/testsuite/cargo_remove/avoid_empty_tables/mod.rs
+++ b/tests/testsuite/cargo_remove/avoid_empty_tables/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/build/mod.rs b/tests/testsuite/cargo_remove/build/mod.rs
index 2116c44..53b13f0 100644
--- a/tests/testsuite/cargo_remove/build/mod.rs
+++ b/tests/testsuite/cargo_remove/build/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/dev/mod.rs b/tests/testsuite/cargo_remove/dev/mod.rs
index 605aa1b..03d6995 100644
--- a/tests/testsuite/cargo_remove/dev/mod.rs
+++ b/tests/testsuite/cargo_remove/dev/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/dry_run/mod.rs b/tests/testsuite/cargo_remove/dry_run/mod.rs
index f56766d..b76c618 100644
--- a/tests/testsuite/cargo_remove/dry_run/mod.rs
+++ b/tests/testsuite/cargo_remove/dry_run/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/gc_keep_used_patch/mod.rs b/tests/testsuite/cargo_remove/gc_keep_used_patch/mod.rs
index cf63bd1..4e33490 100644
--- a/tests/testsuite/cargo_remove/gc_keep_used_patch/mod.rs
+++ b/tests/testsuite/cargo_remove/gc_keep_used_patch/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/gc_profile/mod.rs b/tests/testsuite/cargo_remove/gc_profile/mod.rs
index 7c4cb09..a5cd949 100644
--- a/tests/testsuite/cargo_remove/gc_profile/mod.rs
+++ b/tests/testsuite/cargo_remove/gc_profile/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/gc_replace/mod.rs b/tests/testsuite/cargo_remove/gc_replace/mod.rs
index e96ac8b..c293b17 100644
--- a/tests/testsuite/cargo_remove/gc_replace/mod.rs
+++ b/tests/testsuite/cargo_remove/gc_replace/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/invalid_arg/mod.rs b/tests/testsuite/cargo_remove/invalid_arg/mod.rs
index 8c1ca6b..7b7cde0 100644
--- a/tests/testsuite/cargo_remove/invalid_arg/mod.rs
+++ b/tests/testsuite/cargo_remove/invalid_arg/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/invalid_dep/mod.rs b/tests/testsuite/cargo_remove/invalid_dep/mod.rs
index 0ea04b6..523b2dc 100644
--- a/tests/testsuite/cargo_remove/invalid_dep/mod.rs
+++ b/tests/testsuite/cargo_remove/invalid_dep/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/invalid_package/mod.rs b/tests/testsuite/cargo_remove/invalid_package/mod.rs
index e544584..e88ccfd 100644
--- a/tests/testsuite/cargo_remove/invalid_package/mod.rs
+++ b/tests/testsuite/cargo_remove/invalid_package/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/invalid_package_multiple/mod.rs b/tests/testsuite/cargo_remove/invalid_package_multiple/mod.rs
index cbb3ab4..d5fa3dd 100644
--- a/tests/testsuite/cargo_remove/invalid_package_multiple/mod.rs
+++ b/tests/testsuite/cargo_remove/invalid_package_multiple/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/invalid_section/mod.rs b/tests/testsuite/cargo_remove/invalid_section/mod.rs
index 2f42ce4..f6f8c73 100644
--- a/tests/testsuite/cargo_remove/invalid_section/mod.rs
+++ b/tests/testsuite/cargo_remove/invalid_section/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/invalid_section_dep/mod.rs b/tests/testsuite/cargo_remove/invalid_section_dep/mod.rs
index 581c7cf..b30cfaf 100644
--- a/tests/testsuite/cargo_remove/invalid_section_dep/mod.rs
+++ b/tests/testsuite/cargo_remove/invalid_section_dep/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/invalid_target/mod.rs b/tests/testsuite/cargo_remove/invalid_target/mod.rs
index eba3010..c31cb43 100644
--- a/tests/testsuite/cargo_remove/invalid_target/mod.rs
+++ b/tests/testsuite/cargo_remove/invalid_target/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/invalid_target_dep/mod.rs b/tests/testsuite/cargo_remove/invalid_target_dep/mod.rs
index 100259b..6a13a13 100644
--- a/tests/testsuite/cargo_remove/invalid_target_dep/mod.rs
+++ b/tests/testsuite/cargo_remove/invalid_target_dep/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/last_dep/mod.rs b/tests/testsuite/cargo_remove/last_dep/mod.rs
index effcdef..5b5ece3 100644
--- a/tests/testsuite/cargo_remove/last_dep/mod.rs
+++ b/tests/testsuite/cargo_remove/last_dep/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/multiple_deps/mod.rs b/tests/testsuite/cargo_remove/multiple_deps/mod.rs
index 8ee6a9b..7fc5de1 100644
--- a/tests/testsuite/cargo_remove/multiple_deps/mod.rs
+++ b/tests/testsuite/cargo_remove/multiple_deps/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/multiple_dev/mod.rs b/tests/testsuite/cargo_remove/multiple_dev/mod.rs
index 26c62d1..a5bc9af 100644
--- a/tests/testsuite/cargo_remove/multiple_dev/mod.rs
+++ b/tests/testsuite/cargo_remove/multiple_dev/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/no_arg/mod.rs b/tests/testsuite/cargo_remove/no_arg/mod.rs
index 9d133ba..066fa93 100644
--- a/tests/testsuite/cargo_remove/no_arg/mod.rs
+++ b/tests/testsuite/cargo_remove/no_arg/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/offline/mod.rs b/tests/testsuite/cargo_remove/offline/mod.rs
index 0c0de91..1ef8b55 100644
--- a/tests/testsuite/cargo_remove/offline/mod.rs
+++ b/tests/testsuite/cargo_remove/offline/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/optional_dep_feature/mod.rs b/tests/testsuite/cargo_remove/optional_dep_feature/mod.rs
index d36cb8b..272f0dd 100644
--- a/tests/testsuite/cargo_remove/optional_dep_feature/mod.rs
+++ b/tests/testsuite/cargo_remove/optional_dep_feature/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/optional_dep_feature_formatting/mod.rs b/tests/testsuite/cargo_remove/optional_dep_feature_formatting/mod.rs
index 1286bad..47a1d62 100644
--- a/tests/testsuite/cargo_remove/optional_dep_feature_formatting/mod.rs
+++ b/tests/testsuite/cargo_remove/optional_dep_feature_formatting/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/optional_feature/mod.rs b/tests/testsuite/cargo_remove/optional_feature/mod.rs
index 2e37b11..ec73cbe 100644
--- a/tests/testsuite/cargo_remove/optional_feature/mod.rs
+++ b/tests/testsuite/cargo_remove/optional_feature/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/package/mod.rs b/tests/testsuite/cargo_remove/package/mod.rs
index 423ac86..78f5cdd 100644
--- a/tests/testsuite/cargo_remove/package/mod.rs
+++ b/tests/testsuite/cargo_remove/package/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/remove_basic/mod.rs b/tests/testsuite/cargo_remove/remove_basic/mod.rs
index ea1c39b..b54d229 100644
--- a/tests/testsuite/cargo_remove/remove_basic/mod.rs
+++ b/tests/testsuite/cargo_remove/remove_basic/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/script/mod.rs b/tests/testsuite/cargo_remove/script/mod.rs
index 84c8b42..de7efc7 100644
--- a/tests/testsuite/cargo_remove/script/mod.rs
+++ b/tests/testsuite/cargo_remove/script/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/script_last/mod.rs b/tests/testsuite/cargo_remove/script_last/mod.rs
index cff0426..bd8e7e1 100644
--- a/tests/testsuite/cargo_remove/script_last/mod.rs
+++ b/tests/testsuite/cargo_remove/script_last/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/skip_gc_glob_profile/mod.rs b/tests/testsuite/cargo_remove/skip_gc_glob_profile/mod.rs
index 5be1701..be69727 100644
--- a/tests/testsuite/cargo_remove/skip_gc_glob_profile/mod.rs
+++ b/tests/testsuite/cargo_remove/skip_gc_glob_profile/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/target/mod.rs b/tests/testsuite/cargo_remove/target/mod.rs
index d681b33..e365606 100644
--- a/tests/testsuite/cargo_remove/target/mod.rs
+++ b/tests/testsuite/cargo_remove/target/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/target_build/mod.rs b/tests/testsuite/cargo_remove/target_build/mod.rs
index 048b95e..79bec64 100644
--- a/tests/testsuite/cargo_remove/target_build/mod.rs
+++ b/tests/testsuite/cargo_remove/target_build/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/target_dev/mod.rs b/tests/testsuite/cargo_remove/target_dev/mod.rs
index ccf192a..d191f1e 100644
--- a/tests/testsuite/cargo_remove/target_dev/mod.rs
+++ b/tests/testsuite/cargo_remove/target_dev/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/update_lock_file/mod.rs b/tests/testsuite/cargo_remove/update_lock_file/mod.rs
index 88bc362..0c1c245 100644
--- a/tests/testsuite/cargo_remove/update_lock_file/mod.rs
+++ b/tests/testsuite/cargo_remove/update_lock_file/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/workspace/mod.rs b/tests/testsuite/cargo_remove/workspace/mod.rs
index 014792b..f5f68a0 100644
--- a/tests/testsuite/cargo_remove/workspace/mod.rs
+++ b/tests/testsuite/cargo_remove/workspace/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/workspace_non_virtual/mod.rs b/tests/testsuite/cargo_remove/workspace_non_virtual/mod.rs
index 014792b..f5f68a0 100644
--- a/tests/testsuite/cargo_remove/workspace_non_virtual/mod.rs
+++ b/tests/testsuite/cargo_remove/workspace_non_virtual/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_remove/workspace_preserved/mod.rs b/tests/testsuite/cargo_remove/workspace_preserved/mod.rs
index 014792b..f5f68a0 100644
--- a/tests/testsuite/cargo_remove/workspace_preserved/mod.rs
+++ b/tests/testsuite/cargo_remove/workspace_preserved/mod.rs
@@ -1,9 +1,9 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::compare::assert_ui;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_test/no_keep_going/mod.rs b/tests/testsuite/cargo_test/no_keep_going/mod.rs
index bf747b1..9fcd86f 100644
--- a/tests/testsuite/cargo_test/no_keep_going/mod.rs
+++ b/tests/testsuite/cargo_test/no_keep_going/mod.rs
@@ -1,8 +1,8 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/cargo_tree/deps.rs b/tests/testsuite/cargo_tree/deps.rs
index 466c47f..166fc03 100644
--- a/tests/testsuite/cargo_tree/deps.rs
+++ b/tests/testsuite/cargo_tree/deps.rs
@@ -5,7 +5,7 @@
 use cargo_test_support::cross_compile::alternate;
 use cargo_test_support::registry::{Dependency, Package};
 use cargo_test_support::str;
-use cargo_test_support::{basic_manifest, git, project, rustc_host, Project};
+use cargo_test_support::{Project, basic_manifest, git, project, rustc_host};
 
 use crate::features2::switch_to_resolver_2;
 
diff --git a/tests/testsuite/cargo_update/toolchain_pkgname/mod.rs b/tests/testsuite/cargo_update/toolchain_pkgname/mod.rs
index 1a68f4e..8aeafe6 100644
--- a/tests/testsuite/cargo_update/toolchain_pkgname/mod.rs
+++ b/tests/testsuite/cargo_update/toolchain_pkgname/mod.rs
@@ -1,8 +1,8 @@
 use crate::prelude::*;
+use cargo_test_support::Project;
 use cargo_test_support::current_dir;
 use cargo_test_support::file;
 use cargo_test_support::str;
-use cargo_test_support::Project;
 
 #[cargo_test]
 fn case() {
diff --git a/tests/testsuite/check.rs b/tests/testsuite/check.rs
index 3459b70..f24b672 100644
--- a/tests/testsuite/check.rs
+++ b/tests/testsuite/check.rs
@@ -781,11 +781,12 @@
     p.cargo("check --example ex1").run();
     assert!(!p.root().join("target/debug/libfoo.rmeta").is_file());
     assert!(!p.root().join("target/debug/libfoo.rlib").is_file());
-    assert!(!p
-        .root()
-        .join("target/debug/examples")
-        .join(exe("ex1"))
-        .is_file());
+    assert!(
+        !p.root()
+            .join("target/debug/examples")
+            .join(exe("ex1"))
+            .is_file()
+    );
     assert_eq!(p.glob("target/debug/deps/libfoo-*.rmeta").count(), 1);
     assert_eq!(p.glob("target/debug/examples/libex1-*.rmeta").count(), 1);
 
diff --git a/tests/testsuite/collisions.rs b/tests/testsuite/collisions.rs
index 72eb1bb..2062913 100644
--- a/tests/testsuite/collisions.rs
+++ b/tests/testsuite/collisions.rs
@@ -328,10 +328,11 @@
         .run();
 
     assert!(p.build_dir().join("doc/common_dep/fn.f.html").exists());
-    assert!(!p
-        .build_dir()
-        .join("doc/common_dep/fn.bdep_func.html")
-        .exists());
+    assert!(
+        !p.build_dir()
+            .join("doc/common_dep/fn.bdep_func.html")
+            .exists()
+    );
     assert!(p.build_dir().join("doc/common/fn.f.html").exists());
     assert!(p.build_dir().join("doc/pm/macro.pm.html").exists());
     assert!(p.build_dir().join("doc/foo/fn.f.html").exists());
diff --git a/tests/testsuite/concurrent.rs b/tests/testsuite/concurrent.rs
index 1f8afa3..d958cb7 100644
--- a/tests/testsuite/concurrent.rs
+++ b/tests/testsuite/concurrent.rs
@@ -164,16 +164,18 @@
     execs().run_output(&b);
 
     let suffix = env::consts::EXE_SUFFIX;
-    assert!(p
-        .root()
-        .join("a/target/debug")
-        .join(format!("foo{}", suffix))
-        .is_file());
-    assert!(p
-        .root()
-        .join("b/target/debug")
-        .join(format!("bar{}", suffix))
-        .is_file());
+    assert!(
+        p.root()
+            .join("a/target/debug")
+            .join(format!("foo{}", suffix))
+            .is_file()
+    );
+    assert!(
+        p.root()
+            .join("b/target/debug")
+            .join(format!("bar{}", suffix))
+            .is_file()
+    );
 }
 
 #[cargo_test]
diff --git a/tests/testsuite/config.rs b/tests/testsuite/config.rs
index eb8f6b9..07bb6ff 100644
--- a/tests/testsuite/config.rs
+++ b/tests/testsuite/config.rs
@@ -8,13 +8,13 @@
 use std::path::{Path, PathBuf};
 
 use crate::prelude::*;
+use cargo::CargoResult;
 use cargo::core::features::{GitFeatures, GitoxideFeatures};
 use cargo::core::{PackageIdSpec, Shell};
 use cargo::util::auth::RegistryConfig;
 use cargo::util::context::{
     self, Definition, GlobalContext, JobsConfig, SslVersionConfig, StringList,
 };
-use cargo::CargoResult;
 use cargo_test_support::compare::assert_e2e;
 use cargo_test_support::str;
 use cargo_test_support::{paths, project, project_in_home, symlink_supported, t};
@@ -1141,10 +1141,11 @@
 
     let gctx = new_gctx();
 
-    assert!(gctx
-        .get::<Option<SslVersionConfig>>("http.ssl-version")
-        .unwrap()
-        .is_none());
+    assert!(
+        gctx.get::<Option<SslVersionConfig>>("http.ssl-version")
+            .unwrap()
+            .is_none()
+    );
 }
 
 #[cargo_test]
@@ -1802,9 +1803,10 @@
             .config_arg(format!("profile.dev.debug={err_val}"))
             .build();
         let err = gctx.get::<TomlDebugInfo>("profile.dev.debug").unwrap_err();
-        assert!(err
-            .to_string()
-            .ends_with("could not load config key `profile.dev.debug`"));
+        assert!(
+            err.to_string()
+                .ends_with("could not load config key `profile.dev.debug`")
+        );
     }
 }
 
@@ -1818,10 +1820,11 @@
 
     let gctx = new_gctx();
 
-    assert!(gctx
-        .get::<Option<JobsConfig>>("build.jobs")
-        .unwrap()
-        .is_none());
+    assert!(
+        gctx.get::<Option<JobsConfig>>("build.jobs")
+            .unwrap()
+            .is_none()
+    );
 }
 
 #[cargo_test]
diff --git a/tests/testsuite/config_cli.rs b/tests/testsuite/config_cli.rs
index d26317f..411a438 100644
--- a/tests/testsuite/config_cli.rs
+++ b/tests/testsuite/config_cli.rs
@@ -9,7 +9,7 @@
 use cargo_test_support::str;
 
 use super::config::{
-    assert_error, read_output, write_config_at, write_config_toml, GlobalContextBuilder,
+    GlobalContextBuilder, assert_error, read_output, write_config_at, write_config_toml,
 };
 
 #[cargo_test]
diff --git a/tests/testsuite/config_include.rs b/tests/testsuite/config_include.rs
index 548ab81..03e0057 100644
--- a/tests/testsuite/config_include.rs
+++ b/tests/testsuite/config_include.rs
@@ -4,7 +4,7 @@
 use cargo_test_support::project;
 use cargo_test_support::str;
 
-use super::config::{assert_error, write_config_at, write_config_toml, GlobalContextBuilder};
+use super::config::{GlobalContextBuilder, assert_error, write_config_at, write_config_toml};
 
 #[cargo_test]
 fn gated() {
diff --git a/tests/testsuite/credential_process.rs b/tests/testsuite/credential_process.rs
index a775f82..b3823a1 100644
--- a/tests/testsuite/credential_process.rs
+++ b/tests/testsuite/credential_process.rs
@@ -3,7 +3,7 @@
 use crate::prelude::*;
 use crate::utils::cargo_process;
 use cargo_test_support::registry::{Package, TestRegistry};
-use cargo_test_support::{basic_manifest, paths, project, registry, str, Project};
+use cargo_test_support::{Project, basic_manifest, paths, project, registry, str};
 
 fn toml_bin(proj: &Project, name: &str) -> String {
     proj.bin(name).display().to_string().replace('\\', "\\\\")
diff --git a/tests/testsuite/directory.rs b/tests/testsuite/directory.rs
index 4bd1386..28a6e42 100644
--- a/tests/testsuite/directory.rs
+++ b/tests/testsuite/directory.rs
@@ -8,9 +8,9 @@
 use crate::utils::cargo_process;
 use cargo_test_support::git;
 use cargo_test_support::paths;
-use cargo_test_support::registry::{cksum, Package};
+use cargo_test_support::registry::{Package, cksum};
 use cargo_test_support::str;
-use cargo_test_support::{basic_manifest, project, t, ProjectBuilder};
+use cargo_test_support::{ProjectBuilder, basic_manifest, project, t};
 use serde::Serialize;
 
 fn setup() {
diff --git a/tests/testsuite/doc.rs b/tests/testsuite/doc.rs
index e1f4ece..bf5d6e3 100644
--- a/tests/testsuite/doc.rs
+++ b/tests/testsuite/doc.rs
@@ -834,10 +834,11 @@
 
     p.cargo("doc --verbose --target").arg(TARGET).run();
     assert!(p.root().join(&format!("target/{}/doc", TARGET)).is_dir());
-    assert!(p
-        .root()
-        .join(&format!("target/{}/doc/foo/index.html", TARGET))
-        .is_file());
+    assert!(
+        p.root()
+            .join(&format!("target/{}/doc/foo/index.html", TARGET))
+            .is_file()
+    );
 }
 
 #[cargo_test]
@@ -1759,10 +1760,11 @@
     foo.cargo("doc --document-private-items").run();
 
     assert!(foo.root().join("target/doc").is_dir());
-    assert!(foo
-        .root()
-        .join("target/doc/foo/private/index.html")
-        .is_file());
+    assert!(
+        foo.root()
+            .join("target/doc/foo/private/index.html")
+            .is_file()
+    );
 }
 
 #[cargo_test]
@@ -2041,12 +2043,13 @@
         .build();
 
     p.cargo("doc").run();
-    assert!(p
-        .build_dir()
-        .join("doc")
-        .join("ex1")
-        .join("fn.x.html")
-        .exists());
+    assert!(
+        p.build_dir()
+            .join("doc")
+            .join("ex1")
+            .join("fn.x.html")
+            .exists()
+    );
 }
 
 #[cargo_test]
@@ -2107,12 +2110,13 @@
         .build();
 
     p.cargo("doc --examples").run();
-    assert!(p
-        .build_dir()
-        .join("doc")
-        .join("ex")
-        .join("fn.x.html")
-        .exists());
+    assert!(
+        p.build_dir()
+            .join("doc")
+            .join("ex")
+            .join("fn.x.html")
+            .exists()
+    );
 }
 
 #[cargo_test]
@@ -2155,15 +2159,17 @@
     assert!(p.root().join("target/doc/foo/index.html").is_file());
     assert!(p.root().join("target/doc/foo/fn.foo_pub.html").is_file());
     assert!(p.root().join("target/doc/foo/fn.foo_priv.html").is_file());
-    assert!(p
-        .root()
-        .join("target/doc/foo/struct.FooStruct.html")
-        .is_file());
+    assert!(
+        p.root()
+            .join("target/doc/foo/struct.FooStruct.html")
+            .is_file()
+    );
     assert!(p.root().join("target/doc/foo/enum.FooEnum.html").is_file());
-    assert!(p
-        .root()
-        .join("target/doc/foo/trait.FooTrait.html")
-        .is_file());
+    assert!(
+        p.root()
+            .join("target/doc/foo/trait.FooTrait.html")
+            .is_file()
+    );
     assert!(p.root().join("target/doc/foo/type.FooType.html").is_file());
     assert!(p.root().join("target/doc/foo/foo_mod/index.html").is_file());
 }
@@ -2621,11 +2627,13 @@
     // It should also remove the bogus file we created above.
     dummy_project.cargo("doc --target").arg(rustc_host()).run();
 
-    assert!(!dummy_project
-        .build_dir()
-        .join(rustc_host())
-        .join("doc/bogus_file")
-        .exists());
+    assert!(
+        !dummy_project
+            .build_dir()
+            .join(rustc_host())
+            .join("doc/bogus_file")
+            .exists()
+    );
 
     let fingerprint: RustDocFingerprint =
         serde_json::from_str(&dummy_project.read_file("target/.rustdoc_fingerprint.json"))
diff --git a/tests/testsuite/features2.rs b/tests/testsuite/features2.rs
index ec121c7..08dd8dd 100644
--- a/tests/testsuite/features2.rs
+++ b/tests/testsuite/features2.rs
@@ -10,7 +10,7 @@
 use cargo_test_support::publish::validate_crate_contents;
 use cargo_test_support::registry::{Dependency, Package};
 use cargo_test_support::str;
-use cargo_test_support::{basic_manifest, project, rustc_host, Project};
+use cargo_test_support::{Project, basic_manifest, project, rustc_host};
 
 /// Switches Cargo.toml to use `resolver = "2"`.
 pub fn switch_to_resolver_2(p: &Project) {
@@ -1126,10 +1126,11 @@
         .run();
     p.cargo("test --doc").env("TEST_EXPECTS_ENABLED", "1").run();
     p.cargo("doc").run();
-    assert!(p
-        .build_dir()
-        .join("doc/common/constant.FEAT_ONLY_CONST.html")
-        .exists());
+    assert!(
+        p.build_dir()
+            .join("doc/common/constant.FEAT_ONLY_CONST.html")
+            .exists()
+    );
     // cargo doc should clean in-between runs, but it doesn't, and leaves stale files.
     // https://github.com/rust-lang/cargo/issues/6783 (same for removed items)
     p.build_dir().join("doc").rm_rf();
@@ -1145,10 +1146,11 @@
 
     p.cargo("test --doc").run();
     p.cargo("doc").run();
-    assert!(!p
-        .build_dir()
-        .join("doc/common/constant.FEAT_ONLY_CONST.html")
-        .exists());
+    assert!(
+        !p.build_dir()
+            .join("doc/common/constant.FEAT_ONLY_CONST.html")
+            .exists()
+    );
 }
 
 #[cargo_test]
diff --git a/tests/testsuite/fix.rs b/tests/testsuite/fix.rs
index dd8369d..68c41c6 100644
--- a/tests/testsuite/fix.rs
+++ b/tests/testsuite/fix.rs
@@ -192,9 +192,10 @@
 
     println!("{}", p.read_file("src/lib.rs"));
     assert!(p.read_file("src/lib.rs").contains("use crate::foo::FOO;"));
-    assert!(p
-        .read_file("src/lib.rs")
-        .contains("let x = crate::foo::FOO;"));
+    assert!(
+        p.read_file("src/lib.rs")
+            .contains("let x = crate::foo::FOO;")
+    );
 }
 
 #[cargo_test]
diff --git a/tests/testsuite/fix_n_times.rs b/tests/testsuite/fix_n_times.rs
index 55d0d5d..606cc80 100644
--- a/tests/testsuite/fix_n_times.rs
+++ b/tests/testsuite/fix_n_times.rs
@@ -19,7 +19,7 @@
 
 use crate::prelude::*;
 use crate::utils::tools;
-use cargo_test_support::{basic_manifest, paths, project, str, Execs};
+use cargo_test_support::{Execs, basic_manifest, paths, project, str};
 
 /// The action that the `rustc` shim should take in the current sequence of
 /// events.
diff --git a/tests/testsuite/future_incompat_report.rs b/tests/testsuite/future_incompat_report.rs
index 48a92a3..70d031c 100644
--- a/tests/testsuite/future_incompat_report.rs
+++ b/tests/testsuite/future_incompat_report.rs
@@ -9,7 +9,7 @@
 
 use crate::prelude::*;
 use cargo_test_support::registry::Package;
-use cargo_test_support::{basic_manifest, project, str, Project};
+use cargo_test_support::{Project, basic_manifest, project, str};
 
 use super::config::write_config_toml;
 
diff --git a/tests/testsuite/generate_lockfile.rs b/tests/testsuite/generate_lockfile.rs
index 87a0085..fae2732 100644
--- a/tests/testsuite/generate_lockfile.rs
+++ b/tests/testsuite/generate_lockfile.rs
@@ -4,7 +4,7 @@
 
 use crate::prelude::*;
 use cargo_test_support::registry::{Package, RegistryBuilder};
-use cargo_test_support::{basic_manifest, paths, project, str, ProjectBuilder};
+use cargo_test_support::{ProjectBuilder, basic_manifest, paths, project, str};
 
 #[cargo_test]
 fn adding_and_removing_packages() {
diff --git a/tests/testsuite/git.rs b/tests/testsuite/git.rs
index 8fbcb0d..835be49 100644
--- a/tests/testsuite/git.rs
+++ b/tests/testsuite/git.rs
@@ -5,16 +5,16 @@
 use std::net::{TcpListener, TcpStream};
 use std::path::Path;
 use std::str;
-use std::sync::atomic::{AtomicBool, Ordering};
 use std::sync::Arc;
+use std::sync::atomic::{AtomicBool, Ordering};
 use std::thread;
 
 use crate::prelude::*;
 use cargo_test_support::git::{add_submodule, cargo_uses_gitoxide};
 use cargo_test_support::paths;
 use cargo_test_support::registry::Package;
+use cargo_test_support::{Project, sleep_ms, str, t};
 use cargo_test_support::{basic_lib_manifest, basic_manifest, git, main_file, project};
-use cargo_test_support::{sleep_ms, str, t, Project};
 
 #[cargo_test]
 fn cargo_compile_simple_git_dep() {
diff --git a/tests/testsuite/git_auth.rs b/tests/testsuite/git_auth.rs
index 5bd4e83..c99ae79 100644
--- a/tests/testsuite/git_auth.rs
+++ b/tests/testsuite/git_auth.rs
@@ -1,11 +1,11 @@
 //! Tests for git authentication.
 
 use std::collections::HashSet;
-use std::io::prelude::*;
 use std::io::BufReader;
+use std::io::prelude::*;
 use std::net::{SocketAddr, TcpListener};
-use std::sync::atomic::{AtomicUsize, Ordering::SeqCst};
 use std::sync::Arc;
+use std::sync::atomic::{AtomicUsize, Ordering::SeqCst};
 use std::thread::{self, JoinHandle};
 
 use crate::prelude::*;
diff --git a/tests/testsuite/git_shallow.rs b/tests/testsuite/git_shallow.rs
index 6ef1e00..ee01378 100644
--- a/tests/testsuite/git_shallow.rs
+++ b/tests/testsuite/git_shallow.rs
@@ -715,7 +715,8 @@
         gix::open::Options::isolated(),
     )?;
     assert_eq!(
-        shallow_repo.rev_parse_single("origin/HEAD")?
+        shallow_repo
+            .rev_parse_single("origin/HEAD")?
             .ancestors()
             .all()?
             .count(),
diff --git a/tests/testsuite/glob_targets.rs b/tests/testsuite/glob_targets.rs
index 2b11eda..4166f2f 100644
--- a/tests/testsuite/glob_targets.rs
+++ b/tests/testsuite/glob_targets.rs
@@ -1,7 +1,7 @@
 //! Tests for target filter flags with glob patterns.
 
 use crate::prelude::*;
-use cargo_test_support::{project, str, Project};
+use cargo_test_support::{Project, project, str};
 
 #[cargo_test]
 fn build_example() {
diff --git a/tests/testsuite/global_cache_tracker.rs b/tests/testsuite/global_cache_tracker.rs
index 70bb357..4c489c6 100644
--- a/tests/testsuite/global_cache_tracker.rs
+++ b/tests/testsuite/global_cache_tracker.rs
@@ -16,15 +16,15 @@
 
 use crate::prelude::*;
 use crate::utils::cargo_process;
+use cargo::GlobalContext;
 use cargo::core::global_cache_tracker::{self, DeferredGlobalLastUse, GlobalCacheTracker};
 use cargo::util::cache_lock::CacheLockMode;
-use cargo::GlobalContext;
 use cargo_test_support::compare::assert_e2e;
 use cargo_test_support::paths;
 use cargo_test_support::registry::{Package, RegistryBuilder};
 use cargo_test_support::{
-    basic_manifest, execs, git, process, project, retry, sleep_ms, str, thread_wait_timeout, Execs,
-    Project,
+    Execs, Project, basic_manifest, execs, git, process, project, retry, sleep_ms, str,
+    thread_wait_timeout,
 };
 use itertools::Itertools;
 
diff --git a/tests/testsuite/install.rs b/tests/testsuite/install.rs
index 7197649..bb5da9a 100644
--- a/tests/testsuite/install.rs
+++ b/tests/testsuite/install.rs
@@ -1956,15 +1956,19 @@
     path.push(".cargo/.crates.toml");
 
     assert_ne!(old_rev, new_rev);
-    assert!(fs::read_to_string(path.clone())
-        .unwrap()
-        .contains(&format!("{}", old_rev)));
+    assert!(
+        fs::read_to_string(path.clone())
+            .unwrap()
+            .contains(&format!("{}", old_rev))
+    );
     cargo_process("install --force --git")
         .arg(p.url().to_string())
         .run();
-    assert!(fs::read_to_string(path)
-        .unwrap()
-        .contains(&format!("{}", new_rev)));
+    assert!(
+        fs::read_to_string(path)
+            .unwrap()
+            .contains(&format!("{}", new_rev))
+    );
 }
 
 #[cargo_test]
diff --git a/tests/testsuite/install_upgrade.rs b/tests/testsuite/install_upgrade.rs
index 4677309..babf753 100644
--- a/tests/testsuite/install_upgrade.rs
+++ b/tests/testsuite/install_upgrade.rs
@@ -13,7 +13,7 @@
 use cargo_test_support::install::exe;
 use cargo_test_support::paths;
 use cargo_test_support::registry::{self, Package};
-use cargo_test_support::{basic_manifest, cross_compile, execs, git, process, project, str, Execs};
+use cargo_test_support::{Execs, basic_manifest, cross_compile, execs, git, process, project, str};
 
 fn pkg_maybe_yanked(name: &str, vers: &str, yanked: bool) {
     Package::new(name, vers)
diff --git a/tests/testsuite/local_registry.rs b/tests/testsuite/local_registry.rs
index 9c9c110..8b9fe1d 100644
--- a/tests/testsuite/local_registry.rs
+++ b/tests/testsuite/local_registry.rs
@@ -4,7 +4,7 @@
 
 use crate::prelude::*;
 use cargo_test_support::paths;
-use cargo_test_support::registry::{registry_path, Package};
+use cargo_test_support::registry::{Package, registry_path};
 use cargo_test_support::{basic_manifest, project, str, t};
 
 fn setup() {
diff --git a/tests/testsuite/lockfile_path.rs b/tests/testsuite/lockfile_path.rs
index 2c492e8..5440009 100644
--- a/tests/testsuite/lockfile_path.rs
+++ b/tests/testsuite/lockfile_path.rs
@@ -10,7 +10,7 @@
 use cargo_test_support::install::assert_has_installed_exe;
 use cargo_test_support::registry::{Package, RegistryBuilder};
 use cargo_test_support::{
-    basic_bin_manifest, cargo_test, paths, project, symlink_supported, ProjectBuilder,
+    ProjectBuilder, basic_bin_manifest, cargo_test, paths, project, symlink_supported,
 };
 ///////////////////////////////
 //// Unstable feature tests start
@@ -391,10 +391,11 @@
         .arg(lockfile_path)
         .run();
 
-    assert!(p
-        .root()
-        .join("target/package/test_foo-0.5.0/Cargo.lock")
-        .is_file());
+    assert!(
+        p.root()
+            .join("target/package/test_foo-0.5.0/Cargo.lock")
+            .is_file()
+    );
 
     let path = p.root().join("target/package/test_foo-0.5.0/Cargo.lock");
     let contents = fs::read_to_string(path).unwrap();
diff --git a/tests/testsuite/login.rs b/tests/testsuite/login.rs
index 2e93efe..8aefe54 100644
--- a/tests/testsuite/login.rs
+++ b/tests/testsuite/login.rs
@@ -336,7 +336,10 @@
         .with_stdin("k3.secret.fNYVuMvBgOlljt9TDohnaYLblghqaHoQquVZwgR6X12cBFHZLFsaU3q7X3k1Zn36")
         .run();
     let credentials = fs::read_to_string(&credentials).unwrap();
-    assert_eq!(credentials, "[registries.alternative]\nsecret-key = \"k3.secret.fNYVuMvBgOlljt9TDohnaYLblghqaHoQquVZwgR6X12cBFHZLFsaU3q7X3k1Zn36\"\n");
+    assert_eq!(
+        credentials,
+        "[registries.alternative]\nsecret-key = \"k3.secret.fNYVuMvBgOlljt9TDohnaYLblghqaHoQquVZwgR6X12cBFHZLFsaU3q7X3k1Zn36\"\n"
+    );
 }
 
 #[cargo_test]
diff --git a/tests/testsuite/lto.rs b/tests/testsuite/lto.rs
index 726c81e..072de9c 100644
--- a/tests/testsuite/lto.rs
+++ b/tests/testsuite/lto.rs
@@ -1,8 +1,8 @@
 use crate::prelude::*;
 use cargo::core::compiler::Lto;
-use cargo_test_support::registry::Package;
 use cargo_test_support::RawOutput;
-use cargo_test_support::{basic_manifest, project, str, Project};
+use cargo_test_support::registry::Package;
+use cargo_test_support::{Project, basic_manifest, project, str};
 
 #[cargo_test]
 fn with_deps() {
diff --git a/tests/testsuite/member_errors.rs b/tests/testsuite/member_errors.rs
index 72b2e00..8f1d485 100644
--- a/tests/testsuite/member_errors.rs
+++ b/tests/testsuite/member_errors.rs
@@ -1,10 +1,10 @@
 //! Tests for workspace member errors.
 
 use crate::prelude::*;
-use cargo::core::compiler::UserIntent;
-use cargo::core::resolver::ResolveError;
 use cargo::core::Shell;
 use cargo::core::Workspace;
+use cargo::core::compiler::UserIntent;
+use cargo::core::resolver::ResolveError;
 use cargo::ops::{self, CompileOptions};
 use cargo::util::{context::GlobalContext, errors::ManifestError};
 use cargo_test_support::paths;
diff --git a/tests/testsuite/messages.rs b/tests/testsuite/messages.rs
index a236948..60a265c 100644
--- a/tests/testsuite/messages.rs
+++ b/tests/testsuite/messages.rs
@@ -4,7 +4,7 @@
 
 use crate::prelude::*;
 use cargo_test_support::compare::assert_e2e;
-use cargo_test_support::{process, project, Project};
+use cargo_test_support::{Project, process, project};
 use cargo_util::ProcessError;
 
 /// Captures the actual diagnostics displayed by rustc. This is done to avoid
diff --git a/tests/testsuite/metabuild.rs b/tests/testsuite/metabuild.rs
index beae975..770cb44 100644
--- a/tests/testsuite/metabuild.rs
+++ b/tests/testsuite/metabuild.rs
@@ -4,8 +4,8 @@
 
 use crate::prelude::*;
 use cargo_test_support::{
-    basic_lib_manifest, basic_manifest, is_coarse_mtime, project, registry::Package, rustc_host,
-    str, Project,
+    Project, basic_lib_manifest, basic_manifest, is_coarse_mtime, project, registry::Package,
+    rustc_host, str,
 };
 
 #[cargo_test]
diff --git a/tests/testsuite/new.rs b/tests/testsuite/new.rs
index b559b58..3ad2df1 100644
--- a/tests/testsuite/new.rs
+++ b/tests/testsuite/new.rs
@@ -81,9 +81,11 @@
     assert!(paths::root().join("foo/src/main.rs").is_file());
 
     cargo_process("build").cwd(&paths::root().join("foo")).run();
-    assert!(paths::root()
-        .join(&format!("foo/target/debug/foo{}", env::consts::EXE_SUFFIX))
-        .is_file());
+    assert!(
+        paths::root()
+            .join(&format!("foo/target/debug/foo{}", env::consts::EXE_SUFFIX))
+            .is_file()
+    );
 }
 
 #[cargo_test]
@@ -273,9 +275,11 @@
 
     cargo_process("new foo --vcs git").run();
     assert!(paths::root().join("foo/.gitignore").exists());
-    assert!(!fs::read_to_string(paths::root().join("foo/Cargo.toml"))
-        .unwrap()
-        .contains("authors ="));
+    assert!(
+        !fs::read_to_string(paths::root().join("foo/Cargo.toml"))
+            .unwrap()
+            .contains("authors =")
+    );
 }
 
 #[cargo_test]
@@ -289,12 +293,16 @@
     fs::create_dir(&subpackage).unwrap();
     cargo_process("new foo/components/subcomponent").run();
 
-    assert!(!paths::root()
-        .join("foo/components/subcomponent/.git")
-        .is_file());
-    assert!(!paths::root()
-        .join("foo/components/subcomponent/.gitignore")
-        .is_file());
+    assert!(
+        !paths::root()
+            .join("foo/components/subcomponent/.git")
+            .is_file()
+    );
+    assert!(
+        !paths::root()
+            .join("foo/components/subcomponent/.gitignore")
+            .is_file()
+    );
 }
 
 #[cargo_test]
@@ -311,12 +319,16 @@
     fs::create_dir(&subpackage).unwrap();
     cargo_process("new foo/components/subcomponent").run();
 
-    assert!(paths::root()
-        .join("foo/components/subcomponent/.git")
-        .is_dir());
-    assert!(paths::root()
-        .join("foo/components/subcomponent/.gitignore")
-        .is_file());
+    assert!(
+        paths::root()
+            .join("foo/components/subcomponent/.git")
+            .is_dir()
+    );
+    assert!(
+        paths::root()
+            .join("foo/components/subcomponent/.gitignore")
+            .is_file()
+    );
 }
 
 #[cargo_test]
@@ -327,12 +339,16 @@
     fs::create_dir(&subpackage).unwrap();
     cargo_process("new foo/components/subcomponent --vcs git").run();
 
-    assert!(paths::root()
-        .join("foo/components/subcomponent/.git")
-        .is_dir());
-    assert!(paths::root()
-        .join("foo/components/subcomponent/.gitignore")
-        .is_file());
+    assert!(
+        paths::root()
+            .join("foo/components/subcomponent/.git")
+            .is_dir()
+    );
+    assert!(
+        paths::root()
+            .join("foo/components/subcomponent/.gitignore")
+            .is_file()
+    );
 }
 
 #[cargo_test]
diff --git a/tests/testsuite/offline.rs b/tests/testsuite/offline.rs
index 64d7227..8a56c8c 100644
--- a/tests/testsuite/offline.rs
+++ b/tests/testsuite/offline.rs
@@ -4,9 +4,9 @@
 
 use crate::prelude::*;
 use cargo_test_support::{
-    basic_manifest, git, main_file, project,
+    Execs, basic_manifest, git, main_file, project,
     registry::{Package, RegistryBuilder},
-    str, Execs,
+    str,
 };
 
 #[cargo_test]
diff --git a/tests/testsuite/package.rs b/tests/testsuite/package.rs
index 0055486..d24854b 100644
--- a/tests/testsuite/package.rs
+++ b/tests/testsuite/package.rs
@@ -1,6 +1,6 @@
 //! Tests for the `cargo package` command.
 
-use std::fs::{self, read_to_string, File};
+use std::fs::{self, File, read_to_string};
 use std::path::Path;
 
 use crate::prelude::*;
@@ -8,8 +8,8 @@
 use cargo_test_support::publish::validate_crate_contents;
 use cargo_test_support::registry::{self, Package};
 use cargo_test_support::{
-    basic_manifest, git, paths, project, rustc_host, str, symlink_supported, t, Project,
-    ProjectBuilder,
+    Project, ProjectBuilder, basic_manifest, git, paths, project, rustc_host, str,
+    symlink_supported, t,
 };
 use flate2::read::GzDecoder;
 use tar::Archive;
diff --git a/tests/testsuite/profile_targets.rs b/tests/testsuite/profile_targets.rs
index 501ee64..bac4504 100644
--- a/tests/testsuite/profile_targets.rs
+++ b/tests/testsuite/profile_targets.rs
@@ -3,7 +3,7 @@
 //! targets, etc.
 
 use crate::prelude::*;
-use cargo_test_support::{basic_manifest, project, str, Project};
+use cargo_test_support::{Project, basic_manifest, project, str};
 
 fn all_target_project() -> Project {
     // This abuses the `codegen-units` setting so that we can verify exactly
diff --git a/tests/testsuite/publish.rs b/tests/testsuite/publish.rs
index 23b4fa0..9b817f4 100644
--- a/tests/testsuite/publish.rs
+++ b/tests/testsuite/publish.rs
@@ -6,8 +6,8 @@
 use crate::prelude::*;
 use cargo_test_support::git::{self, repo};
 use cargo_test_support::registry::{self, Package, RegistryBuilder, Response};
+use cargo_test_support::{Project, paths};
 use cargo_test_support::{basic_manifest, project, publish, str};
-use cargo_test_support::{paths, Project};
 
 const CLEAN_FOO_JSON: &str = r#"
     {
diff --git a/tests/testsuite/registry.rs b/tests/testsuite/registry.rs
index a2b2e9d..60a01b0 100644
--- a/tests/testsuite/registry.rs
+++ b/tests/testsuite/registry.rs
@@ -11,7 +11,7 @@
 use cargo::core::SourceId;
 use cargo_test_support::paths;
 use cargo_test_support::registry::{
-    self, registry_path, Dependency, Package, RegistryBuilder, Response, TestRegistry,
+    self, Dependency, Package, RegistryBuilder, Response, TestRegistry, registry_path,
 };
 use cargo_test_support::{basic_manifest, project, str};
 use cargo_test_support::{git, t};
diff --git a/tests/testsuite/registry_auth.rs b/tests/testsuite/registry_auth.rs
index 706390b..c097984 100644
--- a/tests/testsuite/registry_auth.rs
+++ b/tests/testsuite/registry_auth.rs
@@ -4,7 +4,7 @@
 use cargo_test_support::compare::assert_e2e;
 use cargo_test_support::registry::{Package, RegistryBuilder, Token};
 use cargo_test_support::str;
-use cargo_test_support::{project, Execs, Project};
+use cargo_test_support::{Execs, Project, project};
 
 fn cargo(p: &Project, s: &str) -> Execs {
     let mut e = p.cargo(s);
diff --git a/tests/testsuite/run.rs b/tests/testsuite/run.rs
index c464f20..3ab373b 100644
--- a/tests/testsuite/run.rs
+++ b/tests/testsuite/run.rs
@@ -2,7 +2,7 @@
 
 use crate::prelude::*;
 use cargo_test_support::{
-    basic_bin_manifest, basic_lib_manifest, basic_manifest, project, str, Project,
+    Project, basic_bin_manifest, basic_lib_manifest, basic_manifest, project, str,
 };
 use cargo_util::paths::dylib_path_envvar;
 
diff --git a/tests/testsuite/rustdoc_extern_html.rs b/tests/testsuite/rustdoc_extern_html.rs
index 121ac27..f4530fb 100644
--- a/tests/testsuite/rustdoc_extern_html.rs
+++ b/tests/testsuite/rustdoc_extern_html.rs
@@ -2,7 +2,7 @@
 
 use crate::prelude::*;
 use cargo_test_support::registry::{self, Package};
-use cargo_test_support::{paths, project, str, Project};
+use cargo_test_support::{Project, paths, project, str};
 
 fn basic_project() -> Project {
     Package::new("bar", "1.0.0")
@@ -204,7 +204,9 @@
 "#]])
         .run();
     let myfun = p.read_file("target/doc/foo/fn.myfun.html");
-    assert!(myfun.contains(r#"href="https://docs.rs/bar/1.0.0/rumpelstiltskin/struct.Straw.html""#));
+    assert!(
+        myfun.contains(r#"href="https://docs.rs/bar/1.0.0/rumpelstiltskin/struct.Straw.html""#)
+    );
 }
 
 #[cargo_test(nightly, reason = "--extern-html-root-url is unstable")]
diff --git a/tests/testsuite/rustflags.rs b/tests/testsuite/rustflags.rs
index 2f161c1..ad7c1ed 100644
--- a/tests/testsuite/rustflags.rs
+++ b/tests/testsuite/rustflags.rs
@@ -5,7 +5,7 @@
 use crate::prelude::*;
 use cargo_test_support::registry::Package;
 use cargo_test_support::{
-    basic_manifest, paths, project, project_in_home, rustc_host, str, RawOutput,
+    RawOutput, basic_manifest, paths, project, project_in_home, rustc_host, str,
 };
 use snapbox::assert_data_eq;
 
diff --git a/tests/testsuite/search.rs b/tests/testsuite/search.rs
index e4de2ce..8695007 100644
--- a/tests/testsuite/search.rs
+++ b/tests/testsuite/search.rs
@@ -94,8 +94,8 @@
     let registry = setup().build();
 
     use cargo::core::{Shell, SourceId};
-    use cargo::sources::source::Source;
     use cargo::sources::RegistrySource;
+    use cargo::sources::source::Source;
     use cargo::util::GlobalContext;
 
     let sid = SourceId::for_registry(registry.index_url()).unwrap();
diff --git a/tests/testsuite/ssh.rs b/tests/testsuite/ssh.rs
index 0240da3..d904787 100644
--- a/tests/testsuite/ssh.rs
+++ b/tests/testsuite/ssh.rs
@@ -12,7 +12,7 @@
 use crate::prelude::*;
 use cargo_test_support::containers::{Container, ContainerHandle, MkFile};
 use cargo_test_support::git::cargo_uses_gitoxide;
-use cargo_test_support::{paths, process, project, str, Project};
+use cargo_test_support::{Project, paths, process, project, str};
 
 fn ssh_repo_url(container: &ContainerHandle, name: &str) -> String {
     let port = container.port_mappings[&22];
diff --git a/tests/testsuite/standard_lib.rs b/tests/testsuite/standard_lib.rs
index 1b785de..d228a42 100644
--- a/tests/testsuite/standard_lib.rs
+++ b/tests/testsuite/standard_lib.rs
@@ -7,10 +7,10 @@
 use std::path::{Path, PathBuf};
 
 use crate::prelude::*;
+use cargo_test_support::ProjectBuilder;
 use cargo_test_support::cross_compile;
 use cargo_test_support::registry::{Dependency, Package};
-use cargo_test_support::ProjectBuilder;
-use cargo_test_support::{paths, project, rustc_host, str, Execs};
+use cargo_test_support::{Execs, paths, project, rustc_host, str};
 
 struct Setup {
     rustc_wrapper: PathBuf,
@@ -742,12 +742,14 @@
         .map(|e| e.unwrap())
         .collect();
     assert_eq!(incremental.len(), 1);
-    assert!(incremental[0]
-        .file_name()
-        .unwrap()
-        .to_str()
-        .unwrap()
-        .starts_with("foo-"));
+    assert!(
+        incremental[0]
+            .file_name()
+            .unwrap()
+            .to_str()
+            .unwrap()
+            .starts_with("foo-")
+    );
 }
 
 #[cargo_test(build_std_mock)]
diff --git a/tests/testsuite/utils/cross_compile.rs b/tests/testsuite/utils/cross_compile.rs
index 1ae1a06..3f1a8cb 100644
--- a/tests/testsuite/utils/cross_compile.rs
+++ b/tests/testsuite/utils/cross_compile.rs
@@ -16,8 +16,8 @@
 use std::{
     process::{Command, Output},
     sync::{
-        atomic::{AtomicBool, Ordering},
         Once,
+        atomic::{AtomicBool, Ordering},
     },
 };
 
diff --git a/tests/testsuite/utils/ext.rs b/tests/testsuite/utils/ext.rs
index 19bc177..e2a7f38 100644
--- a/tests/testsuite/utils/ext.rs
+++ b/tests/testsuite/utils/ext.rs
@@ -1,6 +1,6 @@
 use std::path::PathBuf;
 
-use cargo_test_support::{compare, ArgLineCommandExt, Execs, Project, TestEnvCommandExt};
+use cargo_test_support::{ArgLineCommandExt, Execs, Project, TestEnvCommandExt, compare};
 
 pub trait CargoProjectExt {
     /// Creates a `ProcessBuilder` to run cargo.
diff --git a/tests/testsuite/utils/mod.rs b/tests/testsuite/utils/mod.rs
index c068ea3..7108870 100644
--- a/tests/testsuite/utils/mod.rs
+++ b/tests/testsuite/utils/mod.rs
@@ -1,6 +1,6 @@
 use std::path::PathBuf;
 
-use cargo_test_support::{execs, process, ArgLineCommandExt, Execs};
+use cargo_test_support::{ArgLineCommandExt, Execs, execs, process};
 
 pub mod cross_compile;
 pub mod ext;
diff --git a/tests/testsuite/utils/tools.rs b/tests/testsuite/utils/tools.rs
index 634567d..4abd58f 100644
--- a/tests/testsuite/utils/tools.rs
+++ b/tests/testsuite/utils/tools.rs
@@ -1,7 +1,7 @@
 //! Common executables that can be reused by various tests.
 
 use crate::prelude::*;
-use cargo_test_support::{basic_manifest, paths, project, Project};
+use cargo_test_support::{Project, basic_manifest, paths, project};
 use std::path::{Path, PathBuf};
 use std::sync::Mutex;
 use std::sync::OnceLock;
diff --git a/tests/testsuite/vendor.rs b/tests/testsuite/vendor.rs
index 9e7fcdc..775f080 100644
--- a/tests/testsuite/vendor.rs
+++ b/tests/testsuite/vendor.rs
@@ -11,7 +11,7 @@
 use cargo_test_support::git;
 use cargo_test_support::registry::{self, Package, RegistryBuilder};
 use cargo_test_support::str;
-use cargo_test_support::{basic_lib_manifest, basic_manifest, paths, project, Project};
+use cargo_test_support::{Project, basic_lib_manifest, basic_manifest, paths, project};
 
 #[cargo_test]
 fn vendor_simple() {
@@ -1714,11 +1714,12 @@
     assert!(p.root().join("vendor/.git").exists());
     // And just for good measure, make sure no files changed.
     let mut opts = git2::StatusOptions::new();
-    assert!(repo
-        .statuses(Some(&mut opts))
-        .unwrap()
-        .iter()
-        .all(|status| status.status() == git2::Status::CURRENT));
+    assert!(
+        repo.statuses(Some(&mut opts))
+            .unwrap()
+            .iter()
+            .all(|status| status.status() == git2::Status::CURRENT)
+    );
 }
 
 #[cargo_test]
diff --git a/tests/testsuite/warn_on_failure.rs b/tests/testsuite/warn_on_failure.rs
index 27c66a1..03a2bc7 100644
--- a/tests/testsuite/warn_on_failure.rs
+++ b/tests/testsuite/warn_on_failure.rs
@@ -2,7 +2,7 @@
 
 use crate::prelude::*;
 use cargo_test_support::registry::Package;
-use cargo_test_support::{project, str, Project};
+use cargo_test_support::{Project, project, str};
 
 static WARNING1: &str = "Hello! I'm a warning. :)";
 static WARNING2: &str = "And one more!";
diff --git a/tests/testsuite/warning_override.rs b/tests/testsuite/warning_override.rs
index 5d9d19a..95dcfed 100644
--- a/tests/testsuite/warning_override.rs
+++ b/tests/testsuite/warning_override.rs
@@ -2,7 +2,7 @@
 
 use crate::prelude::*;
 use crate::utils::tools;
-use cargo_test_support::{cargo_test, project, str, Project};
+use cargo_test_support::{Project, cargo_test, project, str};
 
 fn make_project_with_rustc_warning() -> Project {
     project()
