Try explicitly outlining the panic machinery

This commit is contained in:
Oli Scherer 2024-04-04 09:46:53 +00:00
parent 2d4b7f287d
commit 0dca136841

View File

@ -383,11 +383,16 @@ impl Definitions {
err_msg: &dyn std::fmt::Debug,
) -> LocalDefId {
debug_assert!(hash.stable_crate_id() == self.table.stable_crate_id);
#[cold]
#[inline(never)]
fn err(err_msg: &dyn std::fmt::Debug) -> ! {
panic!("{err_msg:?}")
}
self.table
.def_path_hash_to_index
.get(&hash.local_hash())
.map(|local_def_index| LocalDefId { local_def_index })
.unwrap_or_else(|| panic!("{err_msg:?}"))
.unwrap_or_else(|| err(err_msg))
}
pub fn def_path_hash_to_def_index_map(&self) -> &DefPathHashMap {