Skip to content

Commit ae540c2

Browse files
committed
Avoid vec allocations
1 parent af4929c commit ae540c2

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

src/overflow.rs

+17-11
Original file line numberDiff line numberDiff line change
@@ -182,17 +182,24 @@ impl<'a> OverflowableItem<'a> {
182182
}
183183
}
184184

185-
fn special_cases(&self, config: &Config) -> Vec<(&'static str, usize)> {
185+
fn special_cases(&self, config: &Config) -> impl Iterator<Item = &(&'static str, usize)> {
186+
let base_cases = match self {
187+
OverflowableItem::MacroArg(..) => SPECIAL_CASE_MACROS,
188+
OverflowableItem::NestedMetaItem(..) => SPECIAL_CASE_ATTR,
189+
_ => &[],
190+
};
191+
let additional_cases = if config.version() == Version::Two {
192+
self.special_cases_v2()
193+
} else {
194+
&[]
195+
};
196+
base_cases.iter().chain(additional_cases)
197+
}
198+
199+
fn special_cases_v2(&self) -> &'static [(&'static str, usize)] {
186200
match self {
187-
OverflowableItem::MacroArg(..) => {
188-
let mut cases = SPECIAL_CASE_MACROS.to_vec();
189-
if config.version() == Version::Two {
190-
cases.push(("trace!", 0));
191-
}
192-
cases
193-
}
194-
OverflowableItem::NestedMetaItem(..) => SPECIAL_CASE_ATTR.to_vec(),
195-
_ => vec![],
201+
OverflowableItem::MacroArg(..) => &[("trace!", 0)],
202+
_ => &[],
196203
}
197204
}
198205
}
@@ -782,7 +789,6 @@ pub(crate) fn maybe_get_args_offset(
782789
if let Some(&(_, num_args_before)) = args
783790
.get(0)?
784791
.special_cases(config)
785-
.iter()
786792
.find(|&&(s, _)| s == callee_str)
787793
{
788794
let all_simple = args.len() > num_args_before

0 commit comments

Comments
 (0)