From 7d2173ed27c1cddc4d4a7a9755f244b66cf1ec81 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Fri, 13 Dec 2019 11:25:08 +1100 Subject: Use `P` for `NtMeta`. This commit reduces the size of `Nonterminal` from a 72 bytes to 40 bytes (on x86-64). --- src/libsyntax/mut_visit.rs | 3 ++- src/libsyntax/token.rs | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'src/libsyntax') diff --git a/src/libsyntax/mut_visit.rs b/src/libsyntax/mut_visit.rs index e9e1675b9b0..3bcdf8fe286 100644 --- a/src/libsyntax/mut_visit.rs +++ b/src/libsyntax/mut_visit.rs @@ -704,7 +704,8 @@ pub fn noop_visit_interpolated(nt: &mut token::Nonterminal, vis: token::NtIdent(ident, _is_raw) => vis.visit_ident(ident), token::NtLifetime(ident) => vis.visit_ident(ident), token::NtLiteral(expr) => vis.visit_expr(expr), - token::NtMeta(AttrItem { path, args }) => { + token::NtMeta(item) => { + let AttrItem { path, args } = item.deref_mut(); vis.visit_path(path); visit_mac_args(args, vis); } diff --git a/src/libsyntax/token.rs b/src/libsyntax/token.rs index c826b728f80..3045f147698 100644 --- a/src/libsyntax/token.rs +++ b/src/libsyntax/token.rs @@ -673,7 +673,7 @@ pub enum Nonterminal { NtLifetime(ast::Ident), NtLiteral(P), /// Stuff inside brackets for attributes - NtMeta(ast::AttrItem), + NtMeta(P), NtPath(ast::Path), NtVis(ast::Visibility), NtTT(TokenTree), @@ -687,7 +687,7 @@ pub enum Nonterminal { // `Nonterminal` is used a lot. Make sure it doesn't unintentionally get bigger. #[cfg(target_arch = "x86_64")] -rustc_data_structures::static_assert_size!(Nonterminal, 72); +rustc_data_structures::static_assert_size!(Nonterminal, 40); impl PartialEq for Nonterminal { fn eq(&self, rhs: &Self) -> bool { -- cgit 1.4.1-3-g733a5