about summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2021-02-23 01:38:36 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2021-02-23 01:50:34 +0300
commitddd20ef8cba83d97bdfd0b1e113e6ff7ee6e93f3 (patch)
tree328dd503742301b78e7f0b3df16ac6cab9a4bffa /compiler
parenta15f484b918a4533ad633ea903ccce82910af342 (diff)
downloadrust-ddd20ef8cba83d97bdfd0b1e113e6ff7ee6e93f3.tar.gz
rust-ddd20ef8cba83d97bdfd0b1e113e6ff7ee6e93f3.zip
expand: Do not allocate `Lrc` for `allow_internal_unstable` list unless necessary
Diffstat (limited to 'compiler')
-rw-r--r--compiler/rustc_expand/src/base.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/rustc_expand/src/base.rs b/compiler/rustc_expand/src/base.rs
index ca304c05cdc..90be010e667 100644
--- a/compiler/rustc_expand/src/base.rs
+++ b/compiler/rustc_expand/src/base.rs
@@ -757,7 +757,7 @@ impl SyntaxExtension {
         attrs: &[ast::Attribute],
     ) -> SyntaxExtension {
         let allow_internal_unstable =
-            Some(attr::allow_internal_unstable(sess, &attrs).collect::<Vec<Symbol>>().into());
+            attr::allow_internal_unstable(sess, &attrs).collect::<Vec<Symbol>>();
 
         let mut local_inner_macros = false;
         if let Some(macro_export) = sess.find_by_name(attrs, sym::macro_export) {
@@ -779,7 +779,8 @@ impl SyntaxExtension {
         SyntaxExtension {
             kind,
             span,
-            allow_internal_unstable,
+            allow_internal_unstable: (!allow_internal_unstable.is_empty())
+                .then(|| allow_internal_unstable.into()),
             allow_internal_unsafe: sess.contains_name(attrs, sym::allow_internal_unsafe),
             local_inner_macros,
             stability,