summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorljedrz <ljedrz@gmail.com>2018-10-31 16:58:51 +0100
committerljedrz <ljedrz@gmail.com>2018-10-31 16:58:51 +0100
commitf4c03fd8473c2b5a254789abcb712c90b558f92d (patch)
treecd954625a031646b799768e1f2693f590ea3f14e /src/libsyntax
parent0db7abe5b6f3cdfca736f9238689cbea8ef61c7e (diff)
downloadrust-f4c03fd8473c2b5a254789abcb712c90b558f92d.tar.gz
rust-f4c03fd8473c2b5a254789abcb712c90b558f92d.zip
syntax: improve a few allocations
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/ext/expand.rs2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs
index 33b651e1b38..37e7b44694f 100644
--- a/src/libsyntax/ext/expand.rs
+++ b/src/libsyntax/ext/expand.rs
@@ -387,6 +387,8 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
                         add_derived_markers(&mut self.cx, item.span(), &traits, item.clone());
                     let derives = derives.entry(invoc.expansion_data.mark).or_default();
 
+                    derives.reserve(traits.len());
+                    invocations.reserve(traits.len());
                     for path in &traits {
                         let mark = Mark::fresh(self.cx.current_expansion.mark);
                         derives.push(mark);