From dbb6d8e814999c81e6bf06fda4121ca6682a494f Mon Sep 17 00:00:00 2001 From: teoxoy <28601907+teoxoy@users.noreply.github.com> Date: Fri, 2 Jun 2023 21:01:00 +0200 Subject: [PATCH] avoid allocating --- src/proc/namer.rs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/proc/namer.rs b/src/proc/namer.rs index 8227b50d89..c1e1fba8a2 100644 --- a/src/proc/namer.rs +++ b/src/proc/namer.rs @@ -25,9 +25,9 @@ pub enum NameKey { pub struct Namer { /// The last numeric suffix used for each base name. Zero means "no suffix". unique: FastHashMap, - keywords: FastHashSet, + keywords: FastHashSet<&'static str>, keywords_case_insensitive: FastHashSet>, - reserved_prefixes: Vec, + reserved_prefixes: Vec<&'static str>, } impl Namer { @@ -112,7 +112,7 @@ impl Namer { { suffixed.push(SEPARATOR); } - debug_assert!(!self.keywords.contains(&suffixed)); + debug_assert!(!self.keywords.contains::(&suffixed)); // `self.unique` wants to own its keys. This allocates only if we haven't // already done so earlier. self.unique.insert(base.into_owned(), 0); @@ -143,19 +143,17 @@ impl Namer { pub fn reset( &mut self, module: &crate::Module, - reserved_keywords: &[&str], + reserved_keywords: &[&'static str], reserved_keywords_case_insensitive: &[&'static str], - reserved_prefixes: &[&str], + reserved_prefixes: &[&'static str], output: &mut FastHashMap, ) { self.reserved_prefixes.clear(); - self.reserved_prefixes - .extend(reserved_prefixes.iter().map(|string| string.to_string())); + self.reserved_prefixes.extend(reserved_prefixes.iter()); self.unique.clear(); self.keywords.clear(); - self.keywords - .extend(reserved_keywords.iter().map(|string| (string.to_string()))); + self.keywords.extend(reserved_keywords.iter()); debug_assert!(reserved_keywords_case_insensitive .iter()