1
Fork 0

Make UsageMap::get_user_items infallible.

It's nicer this way.
This commit is contained in:
Nicholas Nethercote 2023-07-04 16:29:05 +10:00
parent d9c13cd453
commit 142075a9fb
2 changed files with 16 additions and 16 deletions

View file

@ -231,8 +231,8 @@ impl<'tcx> UsageMap<'tcx> {
assert!(self.used_map.insert(user_item, used_items).is_none()); assert!(self.used_map.insert(user_item, used_items).is_none());
} }
pub fn get_user_items(&self, item: MonoItem<'tcx>) -> Option<&[MonoItem<'tcx>]> { pub fn get_user_items(&self, item: MonoItem<'tcx>) -> &[MonoItem<'tcx>] {
self.user_map.get(&item).map(|items| items.as_slice()) self.user_map.get(&item).map(|items| items.as_slice()).unwrap_or(&[])
} }
/// Internally iterate over all inlined items used by `item`. /// Internally iterate over all inlined items used by `item`.

View file

@ -495,8 +495,9 @@ fn internalize_symbols<'tcx>(
if !single_codegen_unit { if !single_codegen_unit {
debug_assert_eq!(mono_item_placements[item], home_cgu); debug_assert_eq!(mono_item_placements[item], home_cgu);
if let Some(user_items) = cx.usage_map.get_user_items(*item) { if cx
if user_items .usage_map
.get_user_items(*item)
.iter() .iter()
.filter_map(|user_item| { .filter_map(|user_item| {
// Some user mono items might not have been // Some user mono items might not have been
@ -510,7 +511,6 @@ fn internalize_symbols<'tcx>(
continue; continue;
} }
} }
}
// If we got here, we did not find any uses from other CGUs, so // If we got here, we did not find any uses from other CGUs, so
// it's fine to make this monomorphization internal. // it's fine to make this monomorphization internal.