Skip to content

Commit 2df4f2a

Browse files
committed
Add field backtrace: SyntaxContext to ExpansionData.
1 parent c9f8119 commit 2df4f2a

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/librustc_resolve/macros.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use syntax::errors::DiagnosticBuilder;
1818
use syntax::ext::base::{self, MultiModifier, MultiDecorator, MultiItemModifier};
1919
use syntax::ext::base::{NormalTT, SyntaxExtension};
2020
use syntax::ext::expand::{Expansion, Invocation, InvocationKind};
21-
use syntax::ext::hygiene::Mark;
21+
use syntax::ext::hygiene::{Mark, SyntaxContext};
2222
use syntax::ext::tt::macro_rules;
2323
use syntax::parse::token::intern;
2424
use syntax::util::lev_distance::find_best_match_for_name;
@@ -30,6 +30,7 @@ pub struct NameBinding {
3030

3131
#[derive(Clone)]
3232
pub struct ExpansionData<'a> {
33+
backtrace: SyntaxContext,
3334
pub module: Module<'a>,
3435
def_index: DefIndex,
3536
// True if this expansion is in a `const_integer` position, for example `[u32; m!()]`.
@@ -40,6 +41,7 @@ pub struct ExpansionData<'a> {
4041
impl<'a> ExpansionData<'a> {
4142
pub fn root(graph_root: Module<'a>) -> Self {
4243
ExpansionData {
44+
backtrace: SyntaxContext::empty(),
4345
module: graph_root,
4446
def_index: CRATE_DEF_INDEX,
4547
const_integer: false,
@@ -56,6 +58,7 @@ impl<'a> base::Resolver for Resolver<'a> {
5658
let mark = Mark::fresh();
5759
let module = self.module_map[&id];
5860
self.expansion_data.insert(mark, ExpansionData {
61+
backtrace: SyntaxContext::empty(),
5962
module: module,
6063
def_index: module.def_id().unwrap().index,
6164
const_integer: false,
@@ -171,9 +174,10 @@ impl<'a> Resolver<'a> {
171174

172175
fn collect_def_ids(&mut self, mark: Mark, expansion: &Expansion) {
173176
let expansion_data = &mut self.expansion_data;
174-
let ExpansionData { def_index, const_integer, module } = expansion_data[&mark];
177+
let ExpansionData { backtrace, def_index, const_integer, module } = expansion_data[&mark];
175178
let visit_macro_invoc = &mut |invoc: map::MacroInvocationData| {
176179
expansion_data.entry(invoc.mark).or_insert(ExpansionData {
180+
backtrace: backtrace.apply_mark(invoc.mark),
177181
def_index: invoc.def_index,
178182
const_integer: invoc.const_integer,
179183
module: module,

0 commit comments

Comments
 (0)