From caea42f6c8ba8f5cc5ed04557ec5d072b107e7b4 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Mon, 27 May 2019 13:52:11 +1000 Subject: Introduce and use `SyntaxContext::outer_expn_info()`. It reduces two `hygiene_data` accesses to one on some hot paths. --- src/libsyntax/source_map.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/libsyntax/source_map.rs') diff --git a/src/libsyntax/source_map.rs b/src/libsyntax/source_map.rs index 8a210db9185..e83cad93d1c 100644 --- a/src/libsyntax/source_map.rs +++ b/src/libsyntax/source_map.rs @@ -30,8 +30,8 @@ use errors::SourceMapper; /// otherwise return the call site span up to the `enclosing_sp` by /// following the `expn_info` chain. pub fn original_sp(sp: Span, enclosing_sp: Span) -> Span { - let call_site1 = sp.ctxt().outer().expn_info().map(|ei| ei.call_site); - let call_site2 = enclosing_sp.ctxt().outer().expn_info().map(|ei| ei.call_site); + let call_site1 = sp.ctxt().outer_expn_info().map(|ei| ei.call_site); + let call_site2 = enclosing_sp.ctxt().outer_expn_info().map(|ei| ei.call_site); match (call_site1, call_site2) { (None, _) => sp, (Some(call_site1), Some(call_site2)) if call_site1 == call_site2 => sp, -- cgit 1.4.1-3-g733a5