diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-06-23 21:41:39 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-06-23 21:53:24 +0300 |
| commit | 20ce91076af125eda82bb36e446e67b1c7af4218 (patch) | |
| tree | db4017fc25d2a0d413f70ed1186b6d7dfd45be4a /src/libsyntax/ext | |
| parent | 117cb040f14719489a38ace1c256ec282f42c367 (diff) | |
| download | rust-20ce91076af125eda82bb36e446e67b1c7af4218.tar.gz rust-20ce91076af125eda82bb36e446e67b1c7af4218.zip | |
hygiene: Merge `NameAndSpan` into `ExpnInfo`
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/base.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/ext/derive.rs | 14 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 72 |
3 files changed, 38 insertions, 50 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index e8fad1a2177..16d786dd6ca 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -834,7 +834,7 @@ impl<'a> ExtCtxt<'a> { let mut last_macro = None; loop { if ctxt.outer().expn_info().map_or(None, |info| { - if info.callee.name() == "include" { + if info.format.name() == "include" { // Stop going up the backtrace once include! is encountered return None; } diff --git a/src/libsyntax/ext/derive.rs b/src/libsyntax/ext/derive.rs index 0b6a7e1c4f4..940fb6405f1 100644 --- a/src/libsyntax/ext/derive.rs +++ b/src/libsyntax/ext/derive.rs @@ -10,7 +10,7 @@ use attr::HasAttrs; use ast; -use codemap::{hygiene, ExpnInfo, NameAndSpan, ExpnFormat}; +use codemap::{hygiene, ExpnInfo, ExpnFormat}; use ext::base::ExtCtxt; use ext::build::AstBuilder; use parse::parser::PathStyle; @@ -60,13 +60,11 @@ pub fn add_derived_markers<T>(cx: &mut ExtCtxt, span: Span, traits: &[ast::Path] cx.current_expansion.mark.set_expn_info(ExpnInfo { call_site: span, - callee: NameAndSpan { - format: ExpnFormat::MacroAttribute(Symbol::intern(&pretty_name)), - span: None, - allow_internal_unstable: true, - allow_internal_unsafe: false, - edition: hygiene::default_edition(), - }, + def_site: None, + format: ExpnFormat::MacroAttribute(Symbol::intern(&pretty_name)), + allow_internal_unstable: true, + allow_internal_unsafe: false, + edition: hygiene::default_edition(), }); let span = span.with_ctxt(cx.backtrace()); diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 8ad6e32f42d..69c99c63aaf 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -11,7 +11,7 @@ use ast::{self, Block, Ident, NodeId, PatKind, Path}; use ast::{MacStmtStyle, StmtKind, ItemKind}; use attr::{self, HasAttrs}; -use codemap::{ExpnInfo, NameAndSpan, MacroBang, MacroAttribute, dummy_spanned, respan}; +use codemap::{ExpnInfo, MacroBang, MacroAttribute, dummy_spanned, respan}; use config::{is_test_or_bench, StripUnconfigured}; use errors::{Applicability, FatalError}; use ext::base::*; @@ -514,7 +514,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> { let suggested_limit = self.cx.ecfg.recursion_limit * 2; let mut err = self.cx.struct_span_err(info.call_site, &format!("recursion limit reached while expanding the macro `{}`", - info.callee.name())); + info.format.name())); err.help(&format!( "consider adding a `#![recursion_limit=\"{}\"]` attribute to your crate", suggested_limit)); @@ -538,13 +538,11 @@ impl<'a, 'b> MacroExpander<'a, 'b> { attr::mark_used(&attr); invoc.expansion_data.mark.set_expn_info(ExpnInfo { call_site: attr.span, - callee: NameAndSpan { - format: MacroAttribute(Symbol::intern(&format!("{}", attr.path))), - span: None, - allow_internal_unstable: false, - allow_internal_unsafe: false, - edition: ext.edition(), - } + def_site: None, + format: MacroAttribute(Symbol::intern(&format!("{}", attr.path))), + allow_internal_unstable: false, + allow_internal_unsafe: false, + edition: ext.edition(), }); match *ext { @@ -727,13 +725,11 @@ impl<'a, 'b> MacroExpander<'a, 'b> { } mark.set_expn_info(ExpnInfo { call_site: span, - callee: NameAndSpan { - format: macro_bang_format(path), - span: def_site_span, - allow_internal_unstable, - allow_internal_unsafe, - edition, - }, + def_site: def_site_span, + format: macro_bang_format(path), + allow_internal_unstable, + allow_internal_unsafe, + edition, }); Ok(()) }; @@ -777,13 +773,11 @@ impl<'a, 'b> MacroExpander<'a, 'b> { } else { invoc.expansion_data.mark.set_expn_info(ExpnInfo { call_site: span, - callee: NameAndSpan { - format: macro_bang_format(path), - span: tt_span, - allow_internal_unstable, - allow_internal_unsafe: false, - edition: hygiene::default_edition(), - } + def_site: tt_span, + format: macro_bang_format(path), + allow_internal_unstable, + allow_internal_unsafe: false, + edition: hygiene::default_edition(), }); let input: Vec<_> = mac.node.stream().into_trees().collect(); @@ -815,16 +809,14 @@ impl<'a, 'b> MacroExpander<'a, 'b> { self.gate_proc_macro_expansion_kind(span, kind); invoc.expansion_data.mark.set_expn_info(ExpnInfo { call_site: span, - callee: NameAndSpan { - format: macro_bang_format(path), - // FIXME procedural macros do not have proper span info - // yet, when they do, we should use it here. - span: None, - // FIXME probably want to follow macro_rules macros here. - allow_internal_unstable, - allow_internal_unsafe: false, - edition, - }, + // FIXME procedural macros do not have proper span info + // yet, when they do, we should use it here. + def_site: None, + format: macro_bang_format(path), + // FIXME probably want to follow macro_rules macros here. + allow_internal_unstable, + allow_internal_unsafe: false, + edition, }); let tok_result = expandfun.expand(self.cx, span, mac.node.stream()); @@ -894,13 +886,11 @@ impl<'a, 'b> MacroExpander<'a, 'b> { let mut expn_info = ExpnInfo { call_site: span, - callee: NameAndSpan { - format: MacroAttribute(pretty_name), - span: None, - allow_internal_unstable: false, - allow_internal_unsafe: false, - edition: ext.edition(), - } + def_site: None, + format: MacroAttribute(pretty_name), + allow_internal_unstable: false, + allow_internal_unsafe: false, + edition: ext.edition(), }; match *ext { @@ -916,7 +906,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> { Some(invoc.fragment_kind.expect_from_annotatables(items)) } BuiltinDerive(func) => { - expn_info.callee.allow_internal_unstable = true; + expn_info.allow_internal_unstable = true; invoc.expansion_data.mark.set_expn_info(expn_info); let span = span.with_ctxt(self.cx.backtrace()); let mut items = Vec::new(); |
