.collect();
// Sort packages to produce user friendly deterministic errors.
- let all_packages = resolve.iter().collect::<BinaryHeap<_>>().into_sorted_vec();
+ let mut all_packages: Vec<_> = resolve.iter().collect();
+ all_packages.sort_unstable();
let mut checked = HashSet::new();
for pkg in all_packages {
if !checked.contains(pkg) {
pub fn features_sorted(&self, pkg: &PackageId) -> Vec<&str> {
let mut v = Vec::from_iter(self.features(pkg).iter().map(|s| s.as_ref()));
- v.sort();
+ v.sort_unstable();
v
}
return Ok((pkg.clone(), Box::new(source)));
fn multi_err(kind: &str, mut pkgs: Vec<&Package>) -> String {
- pkgs.sort_by(|a, b| a.name().cmp(&b.name()));
+ pkgs.sort_unstable_by_key(|a| a.name());
format!(
"multiple packages with {} found: {}",
kind,
if include_lockfile(pkg) {
list.push("Cargo.lock".into());
}
- list.sort();
+ list.sort_unstable();
for file in list.iter() {
println!("{}", file.display());
}
// TODO: Drop collect and sort after transition period and dropping warning tests.
// See <https://github.com/rust-lang/cargo/issues/4268>
// and <https://github.com/rust-lang/cargo/pull/4270>
- let mut entries: Vec<fs::DirEntry> = fs::read_dir(path)?.map(|e| e.unwrap()).collect();
- entries.sort_by(|a, b| a.path().as_os_str().cmp(b.path().as_os_str()));
- for entry in entries {
- let path = entry.path();
+ let mut entries: Vec<PathBuf> = fs::read_dir(path)?.map(|e| e.unwrap().path()).collect();
+ entries.sort_unstable_by(|a, b| a.as_os_str().cmp(b.as_os_str()));
+ for path in entries {
let name = path.file_name().and_then(|s| s.to_str());
// Skip dotfile directories
if name.map(|s| s.starts_with('.')) == Some(true) {
let mut hasher = SipHasher::new_with_keys(0, 0);
cmd.get_args().hash(&mut hasher);
let mut env = cmd.get_envs().iter().collect::<Vec<_>>();
- env.sort();
+ env.sort_unstable();
env.hash(&mut hasher);
hasher.finish()
}
let actual = list_dir(out_dir);
let mut expected = expected.iter().map(|s| s.to_string()).collect::<Vec<_>>();
- expected.sort();
+ expected.sort_unstable();
assert_eq!(actual, expected);
}
let entry = entry.unwrap();
res.push(entry.file_name().into_string().unwrap());
}
- res.sort();
+ res.sort_unstable();
res
}