diff options
| author | Nicholas Nethercote <nnethercote@mozilla.com> | 2019-12-13 11:25:08 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <nnethercote@mozilla.com> | 2020-01-30 11:19:40 +1100 |
| commit | 7d2173ed27c1cddc4d4a7a9755f244b66cf1ec81 (patch) | |
| tree | bd6b839356cc0830d36c62079f9c76fd5919f946 /src/libsyntax | |
| parent | 0d69fe8308a76630a104504c14e1d3d74e2a3f15 (diff) | |
Use `P` for `NtMeta`.
This commit reduces the size of `Nonterminal` from a 72 bytes to 40 bytes (on x86-64).
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/mut_visit.rs | 3 | ||||
| -rw-r--r-- | src/libsyntax/token.rs | 4 |
2 files changed, 4 insertions, 3 deletions
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<T: MutVisitor>(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<ast::Expr>), /// Stuff inside brackets for attributes - NtMeta(ast::AttrItem), + NtMeta(P<ast::AttrItem>), 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 { |
