]> git.lizzy.rs Git - rust.git/commitdiff
mir: store the span of a scope in the ScopeData.
authorEduard Burtescu <edy.burt@gmail.com>
Wed, 6 Apr 2016 14:17:12 +0000 (17:17 +0300)
committerEduard Burtescu <edy.burt@gmail.com>
Mon, 11 Apr 2016 17:49:07 +0000 (20:49 +0300)
src/librustc/mir/repr.rs
src/librustc/mir/visit.rs
src/librustc_mir/build/scope.rs

index 28437fa13368aff0b1fd14780839a1fed91822d0..aacb3aae81c5e1124aa38ee17a6553d7dba74d1c 100644 (file)
@@ -698,6 +698,7 @@ pub fn index(self) -> usize {
 
 #[derive(Clone, Debug, RustcEncodable, RustcDecodable)]
 pub struct ScopeData {
+    pub span: Span,
     pub parent_scope: Option<ScopeId>,
 }
 
index 450d25b60671942be2ca8f4ac9d5b4d5f141974e..87f0139104952054aad3798c1672bc644a5d5b5f 100644 (file)
@@ -298,9 +298,11 @@ fn super_basic_block_data(&mut self,
             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);
                 }
index bda9cf058f6e966420dc7663f6d3864b4261070f..84fda62067d95910377aa81eafe0372840dcc426 100644 (file)
@@ -255,7 +255,9 @@ pub fn push_scope(&mut self, extent: CodeExtent, entry: BasicBlock) -> ScopeId {
         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 {