Skip to content

Commit 4a1f445

Browse files
committed
Use a symbol for ExpansionConfig::crate_name.
This avoids some symbol interning and `to_string` conversions.
1 parent 42b0201 commit 4a1f445

File tree

7 files changed

+12
-11
lines changed

7 files changed

+12
-11
lines changed

compiler/rustc_builtin_macros/src/proc_macro_harness.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ pub fn inject(
5656
is_test_crate: bool,
5757
dcx: DiagCtxtHandle<'_>,
5858
) {
59-
let ecfg = ExpansionConfig::default("proc_macro".to_string(), features);
59+
let ecfg = ExpansionConfig::default(sym::proc_macro, features);
6060
let mut cx = ExtCtxt::new(sess, ecfg, resolver, None);
6161

6262
let mut collect = CollectProcMacros {

compiler/rustc_builtin_macros/src/standard_library_imports.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ pub fn inject(
3636
let span = DUMMY_SP.with_def_site_ctxt(expn_id.to_expn_id());
3737
let call_site = DUMMY_SP.with_call_site_ctxt(expn_id.to_expn_id());
3838

39-
let ecfg = ExpansionConfig::default("std_lib_injection".to_string(), features);
39+
let ecfg = ExpansionConfig::default(sym::std_lib_injection, features);
4040
let cx = ExtCtxt::new(sess, ecfg, resolver, None);
4141

4242
let ident_span = if edition >= Edition2018 { span } else { call_site };

compiler/rustc_builtin_macros/src/test_harness.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ fn generate_test_harness(
227227
panic_strategy: PanicStrategy,
228228
test_runner: Option<ast::Path>,
229229
) {
230-
let econfig = ExpansionConfig::default("test".to_string(), features);
230+
let econfig = ExpansionConfig::default(sym::test, features);
231231
let ext_cx = ExtCtxt::new(sess, econfig, resolver, None);
232232

233233
let expn_id = ext_cx.resolver.expansion_for_ast_pass(

compiler/rustc_expand/src/errors.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,12 +183,12 @@ pub(crate) struct FeatureNotAllowed {
183183
#[derive(Diagnostic)]
184184
#[diag(expand_recursion_limit_reached)]
185185
#[help]
186-
pub(crate) struct RecursionLimitReached<'a> {
186+
pub(crate) struct RecursionLimitReached {
187187
#[primary_span]
188188
pub span: Span,
189189
pub descr: String,
190190
pub suggested_limit: Limit,
191-
pub crate_name: &'a str,
191+
pub crate_name: Symbol,
192192
}
193193

194194
#[derive(Diagnostic)]

compiler/rustc_expand/src/expand.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ use rustc_session::lint::builtin::{UNUSED_ATTRIBUTES, UNUSED_DOC_COMMENTS};
2626
use rustc_session::parse::feature_err;
2727
use rustc_session::{Limit, Session};
2828
use rustc_span::hygiene::SyntaxContext;
29-
use rustc_span::{ErrorGuaranteed, FileName, Ident, LocalExpnId, Span, sym};
29+
use rustc_span::{ErrorGuaranteed, FileName, Ident, LocalExpnId, Span, Symbol, sym};
3030
use smallvec::SmallVec;
3131

3232
use crate::base::*;
@@ -473,7 +473,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
473473
let dir_path = file_path.parent().unwrap_or(&file_path).to_owned();
474474
self.cx.root_path = dir_path.clone();
475475
self.cx.current_expansion.module = Rc::new(ModuleData {
476-
mod_path: vec![Ident::from_str(&self.cx.ecfg.crate_name)],
476+
mod_path: vec![Ident::with_dummy_span(self.cx.ecfg.crate_name)],
477477
file_path_stack: vec![file_path],
478478
dir_path,
479479
});
@@ -689,7 +689,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
689689
span: expn_data.call_site,
690690
descr: expn_data.kind.descr(),
691691
suggested_limit,
692-
crate_name: &self.cx.ecfg.crate_name,
692+
crate_name: self.cx.ecfg.crate_name,
693693
});
694694

695695
self.cx.trace_macros_diag();
@@ -2458,7 +2458,7 @@ impl<'a, 'b> MutVisitor for InvocationCollector<'a, 'b> {
24582458
}
24592459

24602460
pub struct ExpansionConfig<'feat> {
2461-
pub crate_name: String,
2461+
pub crate_name: Symbol,
24622462
pub features: &'feat Features,
24632463
pub recursion_limit: Limit,
24642464
pub trace_mac: bool,
@@ -2471,7 +2471,7 @@ pub struct ExpansionConfig<'feat> {
24712471
}
24722472

24732473
impl ExpansionConfig<'_> {
2474-
pub fn default(crate_name: String, features: &Features) -> ExpansionConfig<'_> {
2474+
pub fn default(crate_name: Symbol, features: &Features) -> ExpansionConfig<'_> {
24752475
ExpansionConfig {
24762476
crate_name,
24772477
features,

compiler/rustc_interface/src/passes.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ fn configure_and_expand(
192192
// Create the config for macro expansion
193193
let recursion_limit = get_recursion_limit(pre_configured_attrs, sess);
194194
let cfg = rustc_expand::expand::ExpansionConfig {
195-
crate_name: crate_name.to_string(),
195+
crate_name,
196196
features,
197197
recursion_limit,
198198
trace_mac: sess.opts.unstable_opts.trace_macros,

compiler/rustc_span/src/symbol.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2052,6 +2052,7 @@ symbols! {
20522052
static_recursion,
20532053
staticlib,
20542054
std,
2055+
std_lib_injection,
20552056
std_panic,
20562057
std_panic_2015_macro,
20572058
std_panic_macro,

0 commit comments

Comments
 (0)