Don't unnecessarily clone the input tt for decl macros

This commit is contained in:
Lukas Wirth 2023-07-10 16:28:23 +02:00
parent d5f64f875a
commit f6c09099da
3 changed files with 23 additions and 12 deletions

View file

@ -311,9 +311,7 @@ impl DeclarativeMacro {
DeclarativeMacro { rules: rules.into_boxed_slice(), shift: Shift::new(tt), is_2021, err }
}
pub fn expand(&self, tt: &tt::Subtree) -> ExpandResult<tt::Subtree> {
// apply shift
let mut tt = tt.clone();
pub fn expand(&self, mut tt: tt::Subtree) -> ExpandResult<tt::Subtree> {
self.shift.shift_all(&mut tt);
expander::expand_rules(&self.rules, &tt, self.is_2021)
}