incr.comp.: Sort exported symbols list in order to achieve stable incr. comp. hash.
This commit is contained in:
parent
102eaa5c10
commit
faad4ea3b7
1 changed files with 12 additions and 1 deletions
|
@ -125,6 +125,12 @@ pub fn provide_local(providers: &mut Providers) {
|
||||||
None,
|
None,
|
||||||
SymbolExportLevel::Rust));
|
SymbolExportLevel::Rust));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sort so we get a stable incr. comp. hash.
|
||||||
|
local_crate.sort_unstable_by(|&(ref name1, ..), &(ref name2, ..)| {
|
||||||
|
name1.cmp(name2)
|
||||||
|
});
|
||||||
|
|
||||||
Arc::new(local_crate)
|
Arc::new(local_crate)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -148,7 +154,7 @@ pub fn provide_extern(providers: &mut Providers) {
|
||||||
let special_runtime_crate =
|
let special_runtime_crate =
|
||||||
tcx.is_panic_runtime(cnum) || tcx.is_compiler_builtins(cnum);
|
tcx.is_panic_runtime(cnum) || tcx.is_compiler_builtins(cnum);
|
||||||
|
|
||||||
let crate_exports = tcx
|
let mut crate_exports: Vec<_> = tcx
|
||||||
.exported_symbol_ids(cnum)
|
.exported_symbol_ids(cnum)
|
||||||
.iter()
|
.iter()
|
||||||
.map(|&def_id| {
|
.map(|&def_id| {
|
||||||
|
@ -176,6 +182,11 @@ pub fn provide_extern(providers: &mut Providers) {
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
// Sort so we get a stable incr. comp. hash.
|
||||||
|
crate_exports.sort_unstable_by(|&(ref name1, ..), &(ref name2, ..)| {
|
||||||
|
name1.cmp(name2)
|
||||||
|
});
|
||||||
|
|
||||||
Arc::new(crate_exports)
|
Arc::new(crate_exports)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue