diff options
| author | Nicholas Nethercote <nnethercote@mozilla.com> | 2019-05-17 18:37:53 +1000 |
|---|---|---|
| committer | Nicholas Nethercote <nnethercote@mozilla.com> | 2019-05-17 20:10:50 +1000 |
| commit | 86cc326d0665997669ca6069c5bb2619e1955f6c (patch) | |
| tree | cf0e1d660fe5c44ab4f65783479d40146e4bf56f /src/libsyntax_ext | |
| parent | be3724fb7cd416ad3d7016fd3917f0f6a68714c8 (diff) | |
| download | rust-86cc326d0665997669ca6069c5bb2619e1955f6c.tar.gz rust-86cc326d0665997669ca6069c5bb2619e1955f6c.zip | |
Avoid unnecessary interning in `Ident::from_str()` calls.
A lot of these static symbols are pre-interned.
Diffstat (limited to 'src/libsyntax_ext')
| -rw-r--r-- | src/libsyntax_ext/env.rs | 5 | ||||
| -rw-r--r-- | src/libsyntax_ext/proc_macro_decls.rs | 6 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/libsyntax_ext/env.rs b/src/libsyntax_ext/env.rs index ccff4aec2c8..2127179eecb 100644 --- a/src/libsyntax_ext/env.rs +++ b/src/libsyntax_ext/env.rs @@ -6,7 +6,7 @@ use syntax::ast::{self, Ident, GenericArg}; use syntax::ext::base::{self, *}; use syntax::ext::build::AstBuilder; -use syntax::symbol::{keywords, Symbol}; +use syntax::symbol::{keywords, Symbol, sym}; use syntax_pos::Span; use syntax::tokenstream; @@ -29,7 +29,8 @@ pub fn expand_option_env<'cx>(cx: &'cx mut ExtCtxt<'_>, true, cx.std_path(&["option", "Option", "None"]), vec![GenericArg::Type(cx.ty_rptr(sp, - cx.ty_ident(sp, Ident::from_str("str")), + cx.ty_ident(sp, + Ident::with_empty_ctxt(sym::str)), Some(lt), ast::Mutability::Immutable))], vec![])) diff --git a/src/libsyntax_ext/proc_macro_decls.rs b/src/libsyntax_ext/proc_macro_decls.rs index 1eab739cf64..c582fb422c9 100644 --- a/src/libsyntax_ext/proc_macro_decls.rs +++ b/src/libsyntax_ext/proc_macro_decls.rs @@ -362,11 +362,11 @@ fn mk_decls( }); let span = DUMMY_SP.apply_mark(mark); - let hidden = cx.meta_list_item_word(span, Symbol::intern("hidden")); - let doc = cx.meta_list(span, Symbol::intern("doc"), vec![hidden]); + let hidden = cx.meta_list_item_word(span, sym::hidden); + let doc = cx.meta_list(span, sym::doc, vec![hidden]); let doc_hidden = cx.attribute(span, doc); - let proc_macro = Ident::from_str("proc_macro"); + let proc_macro = Ident::with_empty_ctxt(sym::proc_macro); let krate = cx.item(span, proc_macro, Vec::new(), |
