diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-08-13 03:34:46 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-08-15 20:41:45 +0300 |
| commit | 1a447738b8a7ac8f0a47a134f9fa1a60a4621620 (patch) | |
| tree | 8191446f5bf325a273c0451a4ab8f531fbe50986 /src/libsyntax | |
| parent | aca1353240e03eaba4b3540e1c7b3dea99d5c8ac (diff) | |
| download | rust-1a447738b8a7ac8f0a47a134f9fa1a60a4621620.tar.gz rust-1a447738b8a7ac8f0a47a134f9fa1a60a4621620.zip | |
hygiene: Merge `ExpnInfo` and `InternalExpnData`
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ext/base.rs | 5 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 15 |
2 files changed, 12 insertions, 8 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index 8eacb96e3ff..734b566b3ad 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -640,10 +640,11 @@ impl SyntaxExtension { SyntaxExtension::default(SyntaxExtensionKind::NonMacroAttr { mark_used }, edition) } - pub fn expn_info(&self, call_site: Span, descr: Symbol) -> ExpnInfo { + pub fn expn_info(&self, parent: ExpnId, call_site: Span, descr: Symbol) -> ExpnInfo { ExpnInfo { - call_site, kind: ExpnKind::Macro(self.macro_kind(), descr), + parent, + call_site, def_site: self.span, default_transparency: self.default_transparency, allow_internal_unstable: self.allow_internal_unstable.clone(), diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 6f3e8f14b0b..4233d5c0a22 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -353,7 +353,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> { derives.reserve(traits.len()); invocations.reserve(traits.len()); for path in traits { - let expn_id = ExpnId::fresh(self.cx.current_expansion.id, None); + let expn_id = ExpnId::fresh(None); derives.push(expn_id); invocations.push(Invocation { kind: InvocationKind::Derive { path, item: item.clone() }, @@ -800,13 +800,16 @@ impl<'a, 'b> InvocationCollector<'a, 'b> { // with exception of the derive container case which is not resolved and can get // its expansion info immediately. let expn_info = match &kind { - InvocationKind::DeriveContainer { item, .. } => Some(ExpnInfo::default( - ExpnKind::Macro(MacroKind::Attr, sym::derive), - item.span(), self.cx.parse_sess.edition, - )), + InvocationKind::DeriveContainer { item, .. } => Some(ExpnInfo { + parent: self.cx.current_expansion.id, + ..ExpnInfo::default( + ExpnKind::Macro(MacroKind::Attr, sym::derive), + item.span(), self.cx.parse_sess.edition, + ) + }), _ => None, }; - let expn_id = ExpnId::fresh(self.cx.current_expansion.id, expn_info); + let expn_id = ExpnId::fresh(expn_info); self.invocations.push(Invocation { kind, fragment_kind, |
