Skip to content

Commit 724f4af

Browse files
committed
Sort files for reproducible doc merge
1 parent 62adee1 commit 724f4af

1 file changed

Lines changed: 10 additions & 5 deletions

File tree

src/librustdoc/html/render/write_shared.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -375,15 +375,20 @@ impl CrateInfo {
375375
.fold(Ok(Vec::new()), |acc, parts_path| {
376376
let mut acc = acc?;
377377
let dir = &parts_path.0;
378-
acc.append(&mut try_err!(std::fs::read_dir(dir), dir.as_path())
378+
let mut files: Vec<Result<PathBuf, std::io::Error>> = try_err!(std::fs::read_dir(dir), dir.as_path())
379+
.map(|file| Ok(file?.path()))
380+
.collect();
381+
files.sort_by_key(|p| p.as_ref().map_or(PathBuf::new(), |p| p.clone()));
382+
acc.append(&mut files
383+
.into_iter()
379384
.filter_map(|file| {
380-
let to_crate_info = |file: Result<std::fs::DirEntry, std::io::Error>| -> Result<Option<CrateInfo>, Error> {
385+
let to_crate_info = |file: Result<PathBuf, std::io::Error>| -> Result<Option<CrateInfo>, Error> {
381386
let file = try_err!(file, dir.as_path());
382-
if file.path().extension() != Some(OsStr::new("json")) {
387+
if file.extension() != Some(OsStr::new("json")) {
383388
return Ok(None);
384389
}
385-
let parts = try_err!(fs::read(file.path()), file.path());
386-
let parts: CrateInfo = try_err!(serde_json::from_slice(&parts), file.path());
390+
let parts = try_err!(fs::read(&file), &file);
391+
let parts: CrateInfo = try_err!(serde_json::from_slice(&parts), &file);
387392
Ok(Some(parts))
388393
};
389394
to_crate_info(file).transpose()

0 commit comments

Comments
 (0)