diff --git a/src/librustc/mir/repr.rs b/src/librustc/mir/repr.rs index 28437fa13368..aacb3aae81c5 100644 --- a/src/librustc/mir/repr.rs +++ b/src/librustc/mir/repr.rs @@ -698,6 +698,7 @@ impl ScopeId { #[derive(Clone, Debug, RustcEncodable, RustcDecodable)] pub struct ScopeData { + pub span: Span, pub parent_scope: Option, } diff --git a/src/librustc/mir/visit.rs b/src/librustc/mir/visit.rs index 450d25b60671..87f013910495 100644 --- a/src/librustc/mir/visit.rs +++ b/src/librustc/mir/visit.rs @@ -298,9 +298,11 @@ macro_rules! make_mir_visitor { fn super_scope_data(&mut self, scope_data: & $($mutability)* ScopeData) { let ScopeData { + ref $($mutability)* span, ref $($mutability)* parent_scope, } = *scope_data; + self.visit_span(span); if let Some(ref $($mutability)* parent_scope) = *parent_scope { self.visit_scope_id(parent_scope); } diff --git a/src/librustc_mir/build/scope.rs b/src/librustc_mir/build/scope.rs index bda9cf058f6e..84fda62067d9 100644 --- a/src/librustc_mir/build/scope.rs +++ b/src/librustc_mir/build/scope.rs @@ -255,7 +255,9 @@ impl<'a,'tcx> Builder<'a,'tcx> { debug!("push_scope({:?})", extent); let parent_id = self.scopes.last().map(|s| s.id); let id = ScopeId::new(self.scope_datas.len()); + let tcx = self.hir.tcx(); self.scope_datas.push(ScopeData { + span: extent.span(&tcx.region_maps, &tcx.map).unwrap_or(DUMMY_SP), parent_scope: parent_id, }); self.scopes.push(Scope {