From bfb1c277a8e5b836b7b2a413bce6b8a056b70d43 Mon Sep 17 00:00:00 2001 From: Robert Gawdzik Date: Tue, 21 Mar 2017 16:00:33 -0400 Subject: [PATCH] Make list_files deterministic (Closes #1141) (#1393) - Use BTreeMap instead --- src/modules.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules.rs b/src/modules.rs index 6ea2248ed3c..3d2c3b0ac9f 100644 --- a/src/modules.rs +++ b/src/modules.rs @@ -11,7 +11,7 @@ use utils; use std::path::{Path, PathBuf}; -use std::collections::HashMap; +use std::collections::BTreeMap; use syntax::ast; use syntax::codemap; @@ -22,8 +22,8 @@ use syntax::parse::parser; /// If a file is used twice in a crate, it appears only once. pub fn list_files<'a>(krate: &'a ast::Crate, codemap: &codemap::CodeMap) - -> HashMap { - let mut result = HashMap::new(); + -> BTreeMap { + let mut result = BTreeMap::new(); // Enforce file order determinism let root_filename: PathBuf = codemap.span_to_filename(krate.span).into(); list_submodules(&krate.module, root_filename.parent().unwrap(), @@ -37,7 +37,7 @@ pub fn list_files<'a>(krate: &'a ast::Crate, fn list_submodules<'a>(module: &'a ast::Mod, search_dir: &Path, codemap: &codemap::CodeMap, - result: &mut HashMap) { + result: &mut BTreeMap) { debug!("list_submodules: search_dir: {:?}", search_dir); for item in &module.items { if let ast::ItemKind::Mod(ref sub_mod) = item.node {