From 4ec7b713dd2de43f4b0b03d33271f9c7dbb56d1c Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Thu, 27 Aug 2015 05:16:05 +0530 Subject: [PATCH 1/2] Enumify CompilerExpansion in ExpnInfo --- src/libsyntax/codemap.rs | 41 +++++++++++++++---- src/libsyntax/diagnostic.rs | 8 ++-- src/libsyntax/ext/asm.rs | 3 +- src/libsyntax/ext/base.rs | 9 +++-- src/libsyntax/ext/deriving/generic/mod.rs | 3 +- src/libsyntax/ext/expand.rs | 48 ++++++++++------------- src/libsyntax/std_inject.rs | 3 +- src/libsyntax/test.rs | 6 +-- 8 files changed, 68 insertions(+), 53 deletions(-) diff --git a/src/libsyntax/codemap.rs b/src/libsyntax/codemap.rs index 0aeb572b6bcf6..ce2adccbfc3f1 100644 --- a/src/libsyntax/codemap.rs +++ b/src/libsyntax/codemap.rs @@ -257,21 +257,38 @@ pub struct FileMapAndBytePos { pub fm: Rc, pub pos: BytePos } // /// The source of expansion. -#[derive(Clone, Copy, Hash, Debug, PartialEq, Eq)] +#[derive(Clone, Hash, Debug, PartialEq, Eq)] pub enum ExpnFormat { /// e.g. #[derive(...)] - MacroAttribute, + MacroAttribute(String), /// e.g. `format!()` - MacroBang, + MacroBang(String), /// Syntax sugar expansion performed by the compiler (libsyntax::expand). - CompilerExpansion, + CompilerExpansion(CompilerExpansionFormat), } +#[derive(Clone, Copy, Hash, Debug, PartialEq, Eq)] +pub enum CompilerExpansionFormat { + IfLet, + PlacementIn, + WhileLet, + ForLoop, + Closure, +} + +impl CompilerExpansionFormat { + pub fn name(self) -> &'static str { + match self { + CompilerExpansionFormat::IfLet => "if let expansion", + CompilerExpansionFormat::PlacementIn => "placement-in expansion", + CompilerExpansionFormat::WhileLet => "while let expansion", + CompilerExpansionFormat::ForLoop => "for loop expansion", + CompilerExpansionFormat::Closure => "closure expansion", + } + } +} #[derive(Clone, Hash, Debug)] pub struct NameAndSpan { - /// The name of the macro that was invoked to create the thing - /// with this Span. - pub name: String, /// The format with which the macro was invoked. pub format: ExpnFormat, /// Whether the macro is allowed to use #[unstable]/feature-gated @@ -284,6 +301,16 @@ pub struct NameAndSpan { pub span: Option } +impl NameAndSpan { + pub fn name(&self) -> &str{ + match self.format { + ExpnFormat::MacroAttribute(ref s) => &s, + ExpnFormat::MacroBang(ref s) => &s, + ExpnFormat::CompilerExpansion(ce) => ce.name(), + } + } +} + /// Extra information for tracking spans of macro and syntax sugar expansion #[derive(Hash, Debug)] pub struct ExpnInfo { diff --git a/src/libsyntax/diagnostic.rs b/src/libsyntax/diagnostic.rs index 7476302b2f058..067e3fff3eb29 100644 --- a/src/libsyntax/diagnostic.rs +++ b/src/libsyntax/diagnostic.rs @@ -733,14 +733,14 @@ impl EmitterWriter { let ss = ei.callee.span.map_or(String::new(), |span| cm.span_to_string(span)); let (pre, post) = match ei.callee.format { - codemap::MacroAttribute => ("#[", "]"), - codemap::MacroBang => ("", "!"), - codemap::CompilerExpansion => ("", ""), + codemap::MacroAttribute(..) => ("#[", "]"), + codemap::MacroBang(..) => ("", "!"), + codemap::CompilerExpansion(..) => ("", ""), }; try!(self.print_diagnostic(&ss, Note, &format!("in expansion of {}{}{}", pre, - ei.callee.name, + ei.callee.name(), post), None)); let ss = cm.span_to_string(ei.call_site); diff --git a/src/libsyntax/ext/asm.rs b/src/libsyntax/ext/asm.rs index 6915969032810..2509a071807a0 100644 --- a/src/libsyntax/ext/asm.rs +++ b/src/libsyntax/ext/asm.rs @@ -211,8 +211,7 @@ pub fn expand_asm<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) let expn_id = cx.codemap().record_expansion(codemap::ExpnInfo { call_site: sp, callee: codemap::NameAndSpan { - name: "asm".to_string(), - format: codemap::MacroBang, + format: codemap::MacroBang("asm".to_string()), span: None, allow_internal_unstable: false, }, diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index ef11a2bd66e80..ef49ef11497fc 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -714,13 +714,14 @@ impl<'a> ExtCtxt<'a> { loop { if self.codemap().with_expn_info(expn_id, |info| { info.map_or(None, |i| { - if i.callee.name == "include" { + if i.callee.name() == "include" { // Stop going up the backtrace once include! is encountered return None; } expn_id = i.call_site.expn_id; - if i.callee.format != CompilerExpansion { - last_macro = Some(i.call_site) + match i.callee.format { + CompilerExpansion(..) => (), + _ => last_macro = Some(i.call_site), } return Some(()); }) @@ -744,7 +745,7 @@ impl<'a> ExtCtxt<'a> { if self.recursion_count > self.ecfg.recursion_limit { panic!(self.span_fatal(ei.call_site, &format!("recursion limit reached while expanding the macro `{}`", - ei.callee.name))); + ei.callee.name()))); } let mut call_site = ei.call_site; diff --git a/src/libsyntax/ext/deriving/generic/mod.rs b/src/libsyntax/ext/deriving/generic/mod.rs index 2986e96804531..f23dec92f9357 100644 --- a/src/libsyntax/ext/deriving/generic/mod.rs +++ b/src/libsyntax/ext/deriving/generic/mod.rs @@ -1436,8 +1436,7 @@ impl<'a> TraitDef<'a> { to_set.expn_id = cx.codemap().record_expansion(codemap::ExpnInfo { call_site: to_set, callee: codemap::NameAndSpan { - name: format!("derive({})", trait_name), - format: codemap::MacroAttribute, + format: codemap::MacroAttribute(format!("derive({})", trait_name)), span: Some(self.span), allow_internal_unstable: false, } diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 4f89b3494d403..bf995c000096d 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -19,7 +19,8 @@ use ext::build::AstBuilder; use attr; use attr::AttrMetaMethods; use codemap; -use codemap::{Span, Spanned, ExpnInfo, NameAndSpan, MacroBang, MacroAttribute, CompilerExpansion}; +use codemap::{Span, Spanned, ExpnInfo, NameAndSpan, MacroBang, MacroAttribute}; +use codemap::{CompilerExpansion, CompilerExpansionFormat}; use ext::base::*; use feature_gate::{self, Features, GatedCfg}; use fold; @@ -43,12 +44,12 @@ fn mk_core_path(fld: &mut MacroExpander, } pub fn expand_expr(e: P, fld: &mut MacroExpander) -> P { - fn push_compiler_expansion(fld: &mut MacroExpander, span: Span, expansion_desc: &str) { + fn push_compiler_expansion(fld: &mut MacroExpander, span: Span, + expansion_type: CompilerExpansionFormat) { fld.cx.bt_push(ExpnInfo { call_site: span, callee: NameAndSpan { - name: expansion_desc.to_string(), - format: CompilerExpansion, + format: CompilerExpansion(expansion_type), // This does *not* mean code generated after // `push_compiler_expansion` is automatically exempt @@ -111,7 +112,7 @@ pub fn expand_expr(e: P, fld: &mut MacroExpander) -> P { &fld.cx.parse_sess.span_diagnostic, expr_span); - push_compiler_expansion(fld, expr_span, "placement-in expansion"); + push_compiler_expansion(fld, expr_span, CompilerExpansionFormat::PlacementIn); let value_span = value_expr.span; let placer_span = placer.span; @@ -223,7 +224,7 @@ pub fn expand_expr(e: P, fld: &mut MacroExpander) -> P { // } // } - push_compiler_expansion(fld, span, "while let expansion"); + push_compiler_expansion(fld, span, CompilerExpansionFormat::WhileLet); // ` => ` let pat_arm = { @@ -262,7 +263,7 @@ pub fn expand_expr(e: P, fld: &mut MacroExpander) -> P { // _ => [ | ()] // } - push_compiler_expansion(fld, span, "if let expansion"); + push_compiler_expansion(fld, span, CompilerExpansionFormat::IfLet); // ` => ` let pat_arm = { @@ -334,7 +335,7 @@ pub fn expand_expr(e: P, fld: &mut MacroExpander) -> P { ast::ExprIf(cond, blk, elseopt) => { let elseopt = elseopt.map(|els| els.and_then(|els| match els.node { ast::ExprIfLet(..) => { - push_compiler_expansion(fld, span, "if let expansion"); + push_compiler_expansion(fld, span, CompilerExpansionFormat::IfLet); // wrap the if-let expr in a block let span = els.span; let blk = P(ast::Block { @@ -378,7 +379,7 @@ pub fn expand_expr(e: P, fld: &mut MacroExpander) -> P { // result // } - push_compiler_expansion(fld, span, "for loop expansion"); + push_compiler_expansion(fld, span, CompilerExpansionFormat::ForLoop); let span = fld.new_span(span); @@ -458,7 +459,7 @@ pub fn expand_expr(e: P, fld: &mut MacroExpander) -> P { } ast::ExprClosure(capture_clause, fn_decl, block) => { - push_compiler_expansion(fld, span, "closure expansion"); + push_compiler_expansion(fld, span, CompilerExpansionFormat::Closure); let (rewritten_fn_decl, rewritten_block) = expand_and_rename_fn_decl_and_block(fn_decl, block, fld); let new_node = ast::ExprClosure(capture_clause, @@ -542,8 +543,7 @@ fn expand_mac_invoc(mac: ast::Mac, fld.cx.bt_push(ExpnInfo { call_site: span, callee: NameAndSpan { - name: extname.to_string(), - format: MacroBang, + format: MacroBang(extname.to_string()), span: exp_span, allow_internal_unstable: allow_internal_unstable, }, @@ -721,8 +721,7 @@ pub fn expand_item_mac(it: P, fld.cx.bt_push(ExpnInfo { call_site: it.span, callee: NameAndSpan { - name: extname.to_string(), - format: MacroBang, + format: MacroBang(extname.to_string()), span: span, allow_internal_unstable: allow_internal_unstable, } @@ -741,8 +740,7 @@ pub fn expand_item_mac(it: P, fld.cx.bt_push(ExpnInfo { call_site: it.span, callee: NameAndSpan { - name: extname.to_string(), - format: MacroBang, + format: MacroBang(extname.to_string()), span: span, allow_internal_unstable: allow_internal_unstable, } @@ -762,8 +760,7 @@ pub fn expand_item_mac(it: P, fld.cx.bt_push(ExpnInfo { call_site: it.span, callee: NameAndSpan { - name: extname.to_string(), - format: MacroBang, + format: MacroBang(extname.to_string()), span: None, // `macro_rules!` doesn't directly allow // unstable (this is orthogonal to whether @@ -1090,8 +1087,7 @@ fn expand_pat(p: P, fld: &mut MacroExpander) -> P { fld.cx.bt_push(ExpnInfo { call_site: span, callee: NameAndSpan { - name: extname.to_string(), - format: MacroBang, + format: MacroBang(extname.to_string()), span: tt_span, allow_internal_unstable: allow_internal_unstable, } @@ -1302,8 +1298,7 @@ fn expand_decorators(a: Annotatable, fld.cx.bt_push(ExpnInfo { call_site: attr.span, callee: NameAndSpan { - name: mname.to_string(), - format: MacroAttribute, + format: MacroAttribute(mname.to_string()), span: Some(attr.span), // attributes can do whatever they like, // for now. @@ -1330,8 +1325,7 @@ fn expand_decorators(a: Annotatable, fld.cx.bt_push(ExpnInfo { call_site: attr.span, callee: NameAndSpan { - name: mname.to_string(), - format: MacroAttribute, + format: MacroAttribute(mname.to_string()), span: Some(attr.span), // attributes can do whatever they like, // for now. @@ -1381,8 +1375,7 @@ fn expand_item_multi_modifier(mut it: Annotatable, fld.cx.bt_push(ExpnInfo { call_site: attr.span, callee: NameAndSpan { - name: mname.to_string(), - format: MacroAttribute, + format: MacroAttribute(mname.to_string()), span: Some(attr.span), // attributes can do whatever they like, // for now @@ -1430,8 +1423,7 @@ fn expand_item_modifiers(mut it: P, fld.cx.bt_push(ExpnInfo { call_site: attr.span, callee: NameAndSpan { - name: mname.to_string(), - format: MacroAttribute, + format: MacroAttribute(mname.to_string()), span: Some(attr.span), // attributes can do whatever they like, // for now diff --git a/src/libsyntax/std_inject.rs b/src/libsyntax/std_inject.rs index d41a8ff140c6b..8fbaa6a7608fe 100644 --- a/src/libsyntax/std_inject.rs +++ b/src/libsyntax/std_inject.rs @@ -27,8 +27,7 @@ fn ignored_span(sess: &ParseSess, sp: Span) -> Span { let info = ExpnInfo { call_site: DUMMY_SP, callee: NameAndSpan { - name: "std_inject".to_string(), - format: MacroAttribute, + format: MacroAttribute("std_inject".to_string()), span: None, allow_internal_unstable: true, } diff --git a/src/libsyntax/test.rs b/src/libsyntax/test.rs index 26fb287ce35d1..6278bc20bf1dc 100644 --- a/src/libsyntax/test.rs +++ b/src/libsyntax/test.rs @@ -265,8 +265,7 @@ fn generate_test_harness(sess: &ParseSess, cx.ext_cx.bt_push(ExpnInfo { call_site: DUMMY_SP, callee: NameAndSpan { - name: "test".to_string(), - format: MacroAttribute, + format: MacroAttribute("test".to_string()), span: None, allow_internal_unstable: false, } @@ -298,8 +297,7 @@ fn ignored_span(cx: &TestCtxt, sp: Span) -> Span { let info = ExpnInfo { call_site: DUMMY_SP, callee: NameAndSpan { - name: "test".to_string(), - format: MacroAttribute, + format: MacroAttribute("test".to_string()), span: None, allow_internal_unstable: true, } From 25cbb4385ee58804cb2483af56d1333fbee6e27d Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Thu, 27 Aug 2015 05:41:53 +0530 Subject: [PATCH 2/2] Move ExpnInfo to Name --- src/libsyntax/codemap.rs | 16 ++++++------ src/libsyntax/ext/asm.rs | 4 +-- src/libsyntax/ext/deriving/generic/mod.rs | 4 +-- src/libsyntax/ext/expand.rs | 30 +++++++++++------------ src/libsyntax/std_inject.rs | 5 ++-- src/libsyntax/test.rs | 6 ++--- src/test/compile-fail-fulldeps/qquote.rs | 3 +-- src/test/run-fail-fulldeps/qquote.rs | 3 +-- src/test/run-pass-fulldeps/qquote.rs | 4 +-- 9 files changed, 37 insertions(+), 38 deletions(-) diff --git a/src/libsyntax/codemap.rs b/src/libsyntax/codemap.rs index ce2adccbfc3f1..e07cd7b5847e8 100644 --- a/src/libsyntax/codemap.rs +++ b/src/libsyntax/codemap.rs @@ -29,6 +29,8 @@ use std::io::{self, Read}; use serialize::{Encodable, Decodable, Encoder, Decoder}; +use parse::token::intern; +use ast::Name; // _____________________________________________________________________________ // Pos, BytePos, CharPos @@ -260,9 +262,9 @@ pub struct FileMapAndBytePos { pub fm: Rc, pub pos: BytePos } #[derive(Clone, Hash, Debug, PartialEq, Eq)] pub enum ExpnFormat { /// e.g. #[derive(...)] - MacroAttribute(String), + MacroAttribute(Name), /// e.g. `format!()` - MacroBang(String), + MacroBang(Name), /// Syntax sugar expansion performed by the compiler (libsyntax::expand). CompilerExpansion(CompilerExpansionFormat), } @@ -302,13 +304,13 @@ pub struct NameAndSpan { } impl NameAndSpan { - pub fn name(&self) -> &str{ + pub fn name(&self) -> Name { match self.format { - ExpnFormat::MacroAttribute(ref s) => &s, - ExpnFormat::MacroBang(ref s) => &s, - ExpnFormat::CompilerExpansion(ce) => ce.name(), + ExpnFormat::MacroAttribute(s) => s, + ExpnFormat::MacroBang(s) => s, + ExpnFormat::CompilerExpansion(ce) => intern(ce.name()), } - } + } } /// Extra information for tracking spans of macro and syntax sugar expansion diff --git a/src/libsyntax/ext/asm.rs b/src/libsyntax/ext/asm.rs index 2509a071807a0..c48b740d83ae5 100644 --- a/src/libsyntax/ext/asm.rs +++ b/src/libsyntax/ext/asm.rs @@ -19,7 +19,7 @@ use codemap::Span; use ext::base; use ext::base::*; use feature_gate; -use parse::token::InternedString; +use parse::token::{intern, InternedString}; use parse::token; use ptr::P; @@ -211,7 +211,7 @@ pub fn expand_asm<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) let expn_id = cx.codemap().record_expansion(codemap::ExpnInfo { call_site: sp, callee: codemap::NameAndSpan { - format: codemap::MacroBang("asm".to_string()), + format: codemap::MacroBang(intern("asm")), span: None, allow_internal_unstable: false, }, diff --git a/src/libsyntax/ext/deriving/generic/mod.rs b/src/libsyntax/ext/deriving/generic/mod.rs index f23dec92f9357..3196380ec6c36 100644 --- a/src/libsyntax/ext/deriving/generic/mod.rs +++ b/src/libsyntax/ext/deriving/generic/mod.rs @@ -205,7 +205,7 @@ use codemap::Span; use diagnostic::SpanHandler; use fold::MoveMap; use owned_slice::OwnedSlice; -use parse::token::InternedString; +use parse::token::{intern, InternedString}; use parse::token::special_idents; use ptr::P; @@ -1436,7 +1436,7 @@ impl<'a> TraitDef<'a> { to_set.expn_id = cx.codemap().record_expansion(codemap::ExpnInfo { call_site: to_set, callee: codemap::NameAndSpan { - format: codemap::MacroAttribute(format!("derive({})", trait_name)), + format: codemap::MacroAttribute(intern(&format!("derive({})", trait_name))), span: Some(self.span), allow_internal_unstable: false, } diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index bf995c000096d..3459caecb260a 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -543,7 +543,7 @@ fn expand_mac_invoc(mac: ast::Mac, fld.cx.bt_push(ExpnInfo { call_site: span, callee: NameAndSpan { - format: MacroBang(extname.to_string()), + format: MacroBang(extname), span: exp_span, allow_internal_unstable: allow_internal_unstable, }, @@ -721,7 +721,7 @@ pub fn expand_item_mac(it: P, fld.cx.bt_push(ExpnInfo { call_site: it.span, callee: NameAndSpan { - format: MacroBang(extname.to_string()), + format: MacroBang(extname), span: span, allow_internal_unstable: allow_internal_unstable, } @@ -740,7 +740,7 @@ pub fn expand_item_mac(it: P, fld.cx.bt_push(ExpnInfo { call_site: it.span, callee: NameAndSpan { - format: MacroBang(extname.to_string()), + format: MacroBang(extname), span: span, allow_internal_unstable: allow_internal_unstable, } @@ -760,7 +760,7 @@ pub fn expand_item_mac(it: P, fld.cx.bt_push(ExpnInfo { call_site: it.span, callee: NameAndSpan { - format: MacroBang(extname.to_string()), + format: MacroBang(extname), span: None, // `macro_rules!` doesn't directly allow // unstable (this is orthogonal to whether @@ -1087,7 +1087,7 @@ fn expand_pat(p: P, fld: &mut MacroExpander) -> P { fld.cx.bt_push(ExpnInfo { call_site: span, callee: NameAndSpan { - format: MacroBang(extname.to_string()), + format: MacroBang(extname), span: tt_span, allow_internal_unstable: allow_internal_unstable, } @@ -1289,8 +1289,8 @@ fn expand_decorators(a: Annotatable, new_attrs: &mut Vec) { for attr in a.attrs() { - let mname = attr.name(); - match fld.cx.syntax_env.find(&intern(&mname)) { + let mname = intern(&attr.name()); + match fld.cx.syntax_env.find(&mname) { Some(rc) => match *rc { Decorator(ref dec) => { attr::mark_used(&attr); @@ -1298,7 +1298,7 @@ fn expand_decorators(a: Annotatable, fld.cx.bt_push(ExpnInfo { call_site: attr.span, callee: NameAndSpan { - format: MacroAttribute(mname.to_string()), + format: MacroAttribute(mname), span: Some(attr.span), // attributes can do whatever they like, // for now. @@ -1325,7 +1325,7 @@ fn expand_decorators(a: Annotatable, fld.cx.bt_push(ExpnInfo { call_site: attr.span, callee: NameAndSpan { - format: MacroAttribute(mname.to_string()), + format: MacroAttribute(mname), span: Some(attr.span), // attributes can do whatever they like, // for now. @@ -1366,16 +1366,16 @@ fn expand_item_multi_modifier(mut it: Annotatable, } for attr in &modifiers { - let mname = attr.name(); + let mname = intern(&attr.name()); - match fld.cx.syntax_env.find(&intern(&mname)) { + match fld.cx.syntax_env.find(&mname) { Some(rc) => match *rc { MultiModifier(ref mac) => { attr::mark_used(attr); fld.cx.bt_push(ExpnInfo { call_site: attr.span, callee: NameAndSpan { - format: MacroAttribute(mname.to_string()), + format: MacroAttribute(mname), span: Some(attr.span), // attributes can do whatever they like, // for now @@ -1414,16 +1414,16 @@ fn expand_item_modifiers(mut it: P, } for attr in &modifiers { - let mname = attr.name(); + let mname = intern(&attr.name()); - match fld.cx.syntax_env.find(&intern(&mname)) { + match fld.cx.syntax_env.find(&mname) { Some(rc) => match *rc { Modifier(ref mac) => { attr::mark_used(attr); fld.cx.bt_push(ExpnInfo { call_site: attr.span, callee: NameAndSpan { - format: MacroAttribute(mname.to_string()), + format: MacroAttribute(mname), span: Some(attr.span), // attributes can do whatever they like, // for now diff --git a/src/libsyntax/std_inject.rs b/src/libsyntax/std_inject.rs index 8fbaa6a7608fe..d6974abd394f9 100644 --- a/src/libsyntax/std_inject.rs +++ b/src/libsyntax/std_inject.rs @@ -14,8 +14,7 @@ use codemap::{DUMMY_SP, Span, ExpnInfo, NameAndSpan, MacroAttribute}; use codemap; use fold::Folder; use fold; -use parse::token::InternedString; -use parse::token::special_idents; +use parse::token::{intern, InternedString, special_idents}; use parse::{token, ParseSess}; use ptr::P; use util::small_vector::SmallVector; @@ -27,7 +26,7 @@ fn ignored_span(sess: &ParseSess, sp: Span) -> Span { let info = ExpnInfo { call_site: DUMMY_SP, callee: NameAndSpan { - format: MacroAttribute("std_inject".to_string()), + format: MacroAttribute(intern("std_inject")), span: None, allow_internal_unstable: true, } diff --git a/src/libsyntax/test.rs b/src/libsyntax/test.rs index 6278bc20bf1dc..c24c1364bd2a1 100644 --- a/src/libsyntax/test.rs +++ b/src/libsyntax/test.rs @@ -30,7 +30,7 @@ use ext::expand::ExpansionConfig; use fold::{Folder, MoveMap}; use fold; use owned_slice::OwnedSlice; -use parse::token::InternedString; +use parse::token::{intern, InternedString}; use parse::{token, ParseSess}; use print::pprust; use {ast, ast_util}; @@ -265,7 +265,7 @@ fn generate_test_harness(sess: &ParseSess, cx.ext_cx.bt_push(ExpnInfo { call_site: DUMMY_SP, callee: NameAndSpan { - format: MacroAttribute("test".to_string()), + format: MacroAttribute(intern("test")), span: None, allow_internal_unstable: false, } @@ -297,7 +297,7 @@ fn ignored_span(cx: &TestCtxt, sp: Span) -> Span { let info = ExpnInfo { call_site: DUMMY_SP, callee: NameAndSpan { - format: MacroAttribute("test".to_string()), + format: MacroAttribute(intern("test")), span: None, allow_internal_unstable: true, } diff --git a/src/test/compile-fail-fulldeps/qquote.rs b/src/test/compile-fail-fulldeps/qquote.rs index c83a154056ba2..7ffbbe69c3d6b 100644 --- a/src/test/compile-fail-fulldeps/qquote.rs +++ b/src/test/compile-fail-fulldeps/qquote.rs @@ -27,8 +27,7 @@ fn main() { cx.bt_push(syntax::codemap::ExpnInfo { call_site: DUMMY_SP, callee: syntax::codemap::NameAndSpan { - name: "".to_string(), - format: syntax::codemap::MacroBang, + format: syntax::codemap::MacroBang(parse::token::intern("")), allow_internal_unstable: false, span: None, } diff --git a/src/test/run-fail-fulldeps/qquote.rs b/src/test/run-fail-fulldeps/qquote.rs index eac38037b4bc1..d42a777a019a3 100644 --- a/src/test/run-fail-fulldeps/qquote.rs +++ b/src/test/run-fail-fulldeps/qquote.rs @@ -31,8 +31,7 @@ fn main() { cx.bt_push(syntax::codemap::ExpnInfo { call_site: DUMMY_SP, callee: syntax::codemap::NameAndSpan { - name: "".to_string(), - format: syntax::codemap::MacroBang, + format: syntax::codemap::MacroBang(parse::token::intern("")), allow_internal_unstable: false, span: None, } diff --git a/src/test/run-pass-fulldeps/qquote.rs b/src/test/run-pass-fulldeps/qquote.rs index e272a5fe4f6cd..ba713bb98f854 100644 --- a/src/test/run-pass-fulldeps/qquote.rs +++ b/src/test/run-pass-fulldeps/qquote.rs @@ -16,6 +16,7 @@ extern crate syntax; use syntax::codemap::DUMMY_SP; use syntax::print::pprust::*; +use syntax::parse::token::intern; fn main() { let ps = syntax::parse::ParseSess::new(); @@ -27,8 +28,7 @@ fn main() { cx.bt_push(syntax::codemap::ExpnInfo { call_site: DUMMY_SP, callee: syntax::codemap::NameAndSpan { - name: "".to_string(), - format: syntax::codemap::MacroBang, + format: syntax::codemap::MacroBang(intern("")), allow_internal_unstable: false, span: None, }