]> git.lizzy.rs Git - rust.git/commitdiff
rustc: rename mir::LocalDecl's source_info to visibility_source_info.
authorEduard-Mihai Burtescu <edy.burt@gmail.com>
Tue, 29 May 2018 14:37:24 +0000 (17:37 +0300)
committerEduard-Mihai Burtescu <edy.burt@gmail.com>
Wed, 30 May 2018 17:30:10 +0000 (20:30 +0300)
20 files changed:
src/librustc/ich/impls_mir.rs
src/librustc/mir/mod.rs
src/librustc/mir/visit.rs
src/librustc_codegen_llvm/debuginfo/create_scope_map.rs
src/librustc_codegen_llvm/mir/mod.rs
src/librustc_mir/borrow_check/error_reporting.rs
src/librustc_mir/borrow_check/mod.rs
src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs
src/librustc_mir/borrow_check/nll/type_check/mod.rs
src/librustc_mir/build/expr/into.rs
src/librustc_mir/build/matches/mod.rs
src/librustc_mir/build/mod.rs
src/librustc_mir/dataflow/move_paths/builder.rs
src/librustc_mir/shim.rs
src/librustc_mir/transform/check_unsafety.rs
src/librustc_mir/transform/generator.rs
src/librustc_mir/transform/inline.rs
src/librustc_mir/transform/promote_consts.rs
src/librustc_mir/transform/qualify_consts.rs
src/librustc_mir/util/pretty.rs

index a3acb6c1b24731b4927e0d422bf4a1a136eeba43..e5d28fdf785fcea08460ccfc85d3638206bbcb11 100644 (file)
@@ -25,8 +25,8 @@
     mutability,
     ty,
     name,
-    source_info,
     syntactic_source_info,
+    visibility_source_info,
     internal,
     is_user_variable
 });
index 2faacfb598f1f1f5592d8d34412877f3d940ad50..2251d4a4b60998d4a84f50587b4ec2e9ad4a9384 100644 (file)
@@ -505,10 +505,6 @@ pub struct LocalDecl<'tcx> {
     /// to generate better debuginfo.
     pub name: Option<Name>,
 
-    /// Source info of the local. The `SourceScope` is the *visibility* one,
-    /// not the the *syntactic* one (see `syntactic_source_info` for more details).
-    pub source_info: SourceInfo,
-
     /// The *syntactic* (i.e. not visibility) source scope the local is defined
     /// in. If the local was defined in a let-statement, this
     /// is *within* the let-statement, rather than outside
@@ -562,7 +558,7 @@ pub struct LocalDecl<'tcx> {
     /// To allow both uses to work, we need to have more than a single scope
     /// for a local. We have the `syntactic_source_info.scope` represent the
     /// "syntactic" lint scope (with a variable being under its let
-    /// block) while the `source_info.scope` represents the "local variable"
+    /// block) while the `visibility_source_info.scope` represents the "local variable"
     /// scope (where the "rest" of a block is under all prior let-statements).
     ///
     /// The end result looks like this:
@@ -581,14 +577,18 @@ pub struct LocalDecl<'tcx> {
     ///  │ │
     ///  │ │ │{ let y: u32 }
     ///  │ │ │
-    ///  │ │ │← y.source_info.scope
+    ///  │ │ │← y.visibility_source_info.scope
     ///  │ │ │← `y + 2`
     ///  │
     ///  │ │{ let x: u32 }
-    ///  │ │← x.source_info.scope
+    ///  │ │← x.visibility_source_info.scope
     ///  │ │← `drop(x)` // this accesses `x: u32`
     /// ```
     pub syntactic_source_info: SourceInfo,
+
+    /// Source info of the local. The `SourceScope` is the *visibility* one,
+    /// not the the *syntactic* one (see `syntactic_source_info` for more details).
+    pub visibility_source_info: SourceInfo,
 }
 
 impl<'tcx> LocalDecl<'tcx> {
@@ -599,11 +599,11 @@ pub fn new_temp(ty: Ty<'tcx>, span: Span) -> Self {
             mutability: Mutability::Mut,
             ty,
             name: None,
-            source_info: SourceInfo {
+            syntactic_source_info: SourceInfo {
                 span,
                 scope: OUTERMOST_SOURCE_SCOPE
             },
-            syntactic_source_info: SourceInfo {
+            visibility_source_info: SourceInfo {
                 span,
                 scope: OUTERMOST_SOURCE_SCOPE
             },
@@ -619,11 +619,11 @@ pub fn new_internal(ty: Ty<'tcx>, span: Span) -> Self {
             mutability: Mutability::Mut,
             ty,
             name: None,
-            source_info: SourceInfo {
+            syntactic_source_info: SourceInfo {
                 span,
                 scope: OUTERMOST_SOURCE_SCOPE
             },
-            syntactic_source_info: SourceInfo {
+            visibility_source_info: SourceInfo {
                 span,
                 scope: OUTERMOST_SOURCE_SCOPE
             },
@@ -640,11 +640,11 @@ pub fn new_return_place(return_ty: Ty, span: Span) -> LocalDecl {
         LocalDecl {
             mutability: Mutability::Mut,
             ty: return_ty,
-            source_info: SourceInfo {
+            syntactic_source_info: SourceInfo {
                 span,
                 scope: OUTERMOST_SOURCE_SCOPE
             },
-            syntactic_source_info: SourceInfo {
+            visibility_source_info: SourceInfo {
                 span,
                 scope: OUTERMOST_SOURCE_SCOPE
             },
@@ -2200,8 +2200,8 @@ impl<'tcx> TypeFoldable<'tcx> for LocalDecl<'tcx> {
         internal,
         ty,
         name,
-        source_info,
         syntactic_source_info,
+        visibility_source_info,
     }
 }
 
index 72d7540b2871a78f2c40c6101e2372606bd7626a..3aec9f10e3d5e17694ae22f2da9337af997ac858 100644 (file)
@@ -714,18 +714,18 @@ fn super_local_decl(&mut self,
                     mutability: _,
                     ref $($mutability)* ty,
                     name: _,
-                    ref $($mutability)* source_info,
-                    internal: _,
                     ref $($mutability)* syntactic_source_info,
+                    ref $($mutability)* visibility_source_info,
+                    internal: _,
                     is_user_variable: _,
                 } = *local_decl;
 
                 self.visit_ty(ty, TyContext::LocalDecl {
                     local,
-                    source_info: *source_info,
+                    source_info: *visibility_source_info,
                 });
                 self.visit_source_info(syntactic_source_info);
-                self.visit_source_info(source_info);
+                self.visit_source_info(visibility_source_info);
             }
 
             fn super_source_scope(&mut self,
index 24d9ff492d50970101307faf8b88fca6f26fa58c..81d8e510d11ea293c5ab3449239e2c6944386368 100644 (file)
@@ -65,7 +65,7 @@ pub fn create_mir_scopes(cx: &CodegenCx, mir: &Mir, debug_context: &FunctionDebu
     let mut has_variables = BitVector::new(mir.source_scopes.len());
     for var in mir.vars_iter() {
         let decl = &mir.local_decls[var];
-        has_variables.insert(decl.source_info.scope.index());
+        has_variables.insert(decl.visibility_source_info.scope.index());
     }
 
     // Instantiate all scopes.
index 4c0d7fee783cc255412371185654c2a539be1054..8dd8cc3f4bc610b67d4bb8a72b53526a999dac45 100644 (file)
@@ -265,7 +265,7 @@ pub fn codegen_mir<'a, 'tcx: 'a>(
 
             if let Some(name) = decl.name {
                 // User variable
-                let debug_scope = fx.scopes[decl.source_info.scope];
+                let debug_scope = fx.scopes[decl.visibility_source_info.scope];
                 let dbg = debug_scope.is_valid() && bx.sess().opts.debuginfo == FullDebugInfo;
 
                 if !memory_locals.contains(local.index()) && !dbg {
@@ -276,7 +276,7 @@ pub fn codegen_mir<'a, 'tcx: 'a>(
                 debug!("alloc: {:?} ({}) -> place", local, name);
                 let place = PlaceRef::alloca(&bx, layout, &name.as_str());
                 if dbg {
-                    let (scope, span) = fx.debug_loc(decl.source_info);
+                    let (scope, span) = fx.debug_loc(decl.visibility_source_info);
                     declare_local(&bx, &fx.debug_context, name, layout.ty, scope,
                         VariableAccess::DirectVariable { alloca: place.llval },
                         VariableKind::LocalVariable, span);
index 9061af1b68ca4717c9f4c562d22da3b79fb45013..eedf8decd168dbc4cf5d2b25490a10aa078b86b2 100644 (file)
@@ -398,7 +398,7 @@ pub(super) fn report_borrowed_value_does_not_live_long_enough(
 
         let borrow_span = self.mir.source_info(borrow.reserve_location).span;
         let proper_span = match *root_place {
-            Place::Local(local) => self.mir.local_decls[local].source_info.span,
+            Place::Local(local) => self.mir.local_decls[local].visibility_source_info.span,
             _ => drop_span,
         };
 
index 0fab6634e0bbf1276351e447efb20d7ecd10f092..7b6bec06fa65ccb43fc8e448d556c45f288b3fc2 100644 (file)
@@ -306,7 +306,7 @@ fn do_mir_borrowck<'a, 'gcx, 'tcx>(
                 None => continue,
             }
 
-            let source_info = local_decl.source_info;
+            let source_info = local_decl.visibility_source_info;
             let mut_span = tcx.sess.codemap().span_until_non_whitespace(source_info.span);
 
             tcx.struct_span_lint_node(
index 2807a4e8857e0b91421dbf09506b2598f16fb48a..88b9afbd138627e6eb238c1f973fc92faad40a5d 100644 (file)
@@ -67,7 +67,7 @@ pub(in borrow_check) fn explain_why_borrow_contains_point(
                             }
                             None => {
                                 err.span_label(
-                                    mir.local_decls[local].source_info.span,
+                                    mir.local_decls[local].visibility_source_info.span,
                                     "borrow may end up in a temporary, created here",
                                 );
 
index 04f5024b76946602cd2341f393ac30ba921fe7eb..f8a0eb3749c0b64cf4009d0b4bb7e2f19d3a02fc 100644 (file)
@@ -1201,7 +1201,7 @@ fn check_local(&mut self, mir: &Mir<'tcx>, local: Local, local_decl: &LocalDecl<
             LocalKind::Var | LocalKind::Temp => {}
         }
 
-        let span = local_decl.source_info.span;
+        let span = local_decl.visibility_source_info.span;
         let ty = local_decl.ty;
 
         // Erase the regions from `ty` to get a global type.  The
index f8b57bed93e020a0e606b56be6a02857d972910a..049d4340193af68d3b3bf7fa82a077bada0eb9f0 100644 (file)
@@ -246,8 +246,8 @@ pub fn into_expr(&mut self,
                         mutability: Mutability::Mut,
                         ty: ptr_ty,
                         name: None,
-                        source_info,
                         syntactic_source_info: source_info,
+                        visibility_source_info: source_info,
                         internal: true,
                         is_user_variable: false
                     });
index 80739aa9d4f33f4ddd67a02628aab34e2dc8a792..e6ad36f3034bb5ae156d86815e4f4c23a5b7fc66 100644 (file)
@@ -294,22 +294,22 @@ pub fn place_into_pattern(&mut self,
         block.unit()
     }
 
-    /// Declares the bindings of the given pattern and returns the source scope
+    /// Declares the bindings of the given pattern and returns the visibility scope
     /// for the bindings in this patterns, if such a scope had to be created.
     /// NOTE: Declaring the bindings should always be done in their drop scope.
     pub fn declare_bindings(&mut self,
-                            mut var_scope: Option<SourceScope>,
+                            mut visibility_scope: Option<SourceScope>,
                             scope_span: Span,
                             lint_level: LintLevel,
                             pattern: &Pattern<'tcx>,
                             has_guard: ArmHasGuard)
                             -> Option<SourceScope> {
-        assert!(!(var_scope.is_some() && lint_level.is_explicit()),
-                "can't have both a var and a lint scope at the same time");
+        assert!(!(visibility_scope.is_some() && lint_level.is_explicit()),
+                "can't have both a visibility and a lint scope at the same time");
         let mut syntactic_scope = self.source_scope;
         self.visit_bindings(pattern, &mut |this, mutability, name, var, span, ty| {
-            if var_scope.is_none() {
-                var_scope = Some(this.new_source_scope(scope_span,
+            if visibility_scope.is_none() {
+                visibility_scope = Some(this.new_source_scope(scope_span,
                                                            LintLevel::Inherited,
                                                            None));
                 // If we have lints, create a new source scope
@@ -320,18 +320,18 @@ pub fn declare_bindings(&mut self,
                         this.new_source_scope(scope_span, lint_level, None);
                 }
             }
-            let source_info = SourceInfo {
-                span,
-                scope: var_scope.unwrap()
-            };
             let syntactic_source_info = SourceInfo {
                 span,
                 scope: syntactic_scope,
             };
-            this.declare_binding(source_info, syntactic_source_info, mutability, name, var,
+            let visibility_source_info = SourceInfo {
+                span,
+                scope: visibility_scope.unwrap()
+            };
+            this.declare_binding(syntactic_source_info, visibility_source_info, mutability, name, var,
                                  ty, has_guard);
         });
-        var_scope
+        visibility_scope
     }
 
     pub fn storage_live_binding(&mut self,
@@ -1117,25 +1117,25 @@ fn bind_matched_candidate_for_arm_body(&mut self,
     /// `&T`. The second local is a binding for occurrences of `var`
     /// in the arm body, which will have type `T`.
     fn declare_binding(&mut self,
-                       source_info: SourceInfo,
                        syntactic_source_info: SourceInfo,
+                       visibility_source_info: SourceInfo,
                        mutability: Mutability,
                        name: Name,
                        var_id: NodeId,
                        var_ty: Ty<'tcx>,
                        has_guard: ArmHasGuard)
     {
-        debug!("declare_binding(var_id={:?}, name={:?}, var_ty={:?}, source_info={:?}, \
+        debug!("declare_binding(var_id={:?}, name={:?}, var_ty={:?}, visibility_source_info={:?}, \
                 syntactic_source_info={:?})",
-               var_id, name, var_ty, source_info, syntactic_source_info);
+               var_id, name, var_ty, visibility_source_info, syntactic_source_info);
 
         let tcx = self.hir.tcx();
         let local = LocalDecl::<'tcx> {
             mutability,
             ty: var_ty.clone(),
             name: Some(name),
-            source_info,
             syntactic_source_info,
+            visibility_source_info,
             internal: false,
             is_user_variable: true,
         };
@@ -1146,8 +1146,8 @@ fn declare_binding(&mut self,
                 mutability,
                 ty: tcx.mk_imm_ref(tcx.types.re_empty, var_ty),
                 name: Some(name),
-                source_info,
                 syntactic_source_info,
+                visibility_source_info,
                 internal: false,
                 is_user_variable: true,
             });
index 06f43ad46214b59120a85f051cfb37c08be804e7..527e605a16ac1f16ab5160e1d0d2c669acea139c 100644 (file)
@@ -664,8 +664,8 @@ fn args_and_body(&mut self,
             self.local_decls.push(LocalDecl {
                 mutability: Mutability::Mut,
                 ty,
-                source_info,
                 syntactic_source_info: source_info,
+                visibility_source_info: source_info,
                 name,
                 internal: false,
                 is_user_variable: false,
index 2ff22842141d9bfc806bff4ae7ca4b3f7f8b46c2..321f307a43c74069385c23285e94d8ee3ab8f36f 100644 (file)
@@ -233,7 +233,7 @@ impl<'a, 'gcx, 'tcx> MoveDataBuilder<'a, 'gcx, 'tcx> {
     fn gather_args(&mut self) {
         for arg in self.mir.args_iter() {
             let path = self.data.rev_lookup.locals[arg];
-            let span = self.mir.local_decls[arg].source_info.span;
+            let span = self.mir.local_decls[arg].visibility_source_info.span;
 
             let init = self.data.inits.push(Init {
                 path, span, kind: InitKind::Deep
index 6692849bd0f65aefc1e078431726d4072bd7b2ed..f168292897ea90aa40c9ed2195fabc0935e51745 100644 (file)
@@ -141,8 +141,8 @@ fn temp_decl(mutability: Mutability, ty: Ty, span: Span) -> LocalDecl {
     let source_info = SourceInfo { scope: OUTERMOST_SOURCE_SCOPE, span };
     LocalDecl {
         mutability, ty, name: None,
-        source_info,
         syntactic_source_info: source_info,
+        visibility_source_info: source_info,
         internal: false,
         is_user_variable: false
     }
index fedd0774df44cb20595283d211f029877b0c2de4..48de30f1ff18a3e0a04eaf262007baeb144be7b4 100644 (file)
@@ -166,7 +166,7 @@ fn visit_place(&mut self,
                         // Internal locals are used in the `move_val_init` desugaring.
                         // We want to check unsafety against the source info of the
                         // desugaring, rather than the source info of the RHS.
-                        self.source_info = self.mir.local_decls[local].source_info;
+                        self.source_info = self.mir.local_decls[local].visibility_source_info;
                     }
                 }
                 let base_ty = base.ty(self.mir, self.tcx).to_ty(self.tcx);
index 1c833453c36191f337a36c6f111e3f97bd86d0cc..940a13a42df9f1a131c38c93ef4d3558f2eb82ec 100644 (file)
@@ -300,8 +300,8 @@ fn replace_result_variable<'tcx>(ret_ty: Ty<'tcx>,
         mutability: Mutability::Mut,
         ty: ret_ty,
         name: None,
-        source_info,
         syntactic_source_info: source_info,
+        visibility_source_info: source_info,
         internal: false,
         is_user_variable: false,
     };
@@ -641,8 +641,8 @@ fn create_generator_drop_shim<'a, 'tcx>(
         mutability: Mutability::Mut,
         ty: tcx.mk_nil(),
         name: None,
-        source_info,
         syntactic_source_info: source_info,
+        visibility_source_info: source_info,
         internal: false,
         is_user_variable: false,
     };
@@ -657,8 +657,8 @@ fn create_generator_drop_shim<'a, 'tcx>(
             mutbl: hir::Mutability::MutMutable,
         }),
         name: None,
-        source_info,
         syntactic_source_info: source_info,
+        visibility_source_info: source_info,
         internal: false,
         is_user_variable: false,
     };
index 2434f3031784af2d0f6852baa1e51420dc9d0ade..868d7cadde4ac90a6810d3b762d19fdf0ccd057e 100644 (file)
@@ -398,11 +398,12 @@ fn inline_call(&self,
                 for loc in callee_mir.vars_and_temps_iter() {
                     let mut local = callee_mir.local_decls[loc].clone();
 
-                    local.source_info.scope = scope_map[local.source_info.scope];
-                    local.source_info.span = callsite.location.span;
                     local.syntactic_source_info.scope =
                         scope_map[local.syntactic_source_info.scope];
                     local.syntactic_source_info.span = callsite.location.span;
+                    local.visibility_source_info.scope =
+                        scope_map[local.visibility_source_info.scope];
+                    local.visibility_source_info.span = callsite.location.span;
 
                     let idx = caller_mir.local_decls.push(local);
                     local_map.push(idx);
index 61f43f23a232bc27c2e0815ebaab70e5d916d73e..98cc0ed8234a054d33583501499e979f0ebf0dba 100644 (file)
@@ -210,7 +210,7 @@ fn promote_temp(&mut self, temp: Local) -> Local {
         let no_stmts = self.source[loc.block].statements.len();
         let new_temp = self.promoted.local_decls.push(
             LocalDecl::new_temp(self.source.local_decls[temp].ty,
-                                self.source.local_decls[temp].source_info.span));
+                                self.source.local_decls[temp].visibility_source_info.span));
 
         debug!("promote({:?} @ {:?}/{:?}, {:?})",
                temp, loc, no_stmts, self.keep_original);
@@ -334,8 +334,8 @@ fn interior_base<'a, 'tcx>(place: &'a mut Place<'tcx>)
                             // This is because `*r` requires `r` to be a local,
                             // otherwise we would use the `promoted` directly.
                             let mut promoted_ref = LocalDecl::new_temp(ref_ty, span);
-                            promoted_ref.source_info = statement.source_info;
                             promoted_ref.syntactic_source_info = statement.source_info;
+                            promoted_ref.visibility_source_info = statement.source_info;
                             let promoted_ref = local_decls.push(promoted_ref);
                             assert_eq!(self.temps.push(TempState::Unpromotable), promoted_ref);
                             self.extra_statements.push((loc, Statement {
index 719630129440a6defacbbe1cc3928914cb937e92..05e232753d716d2291652dd9317426ab56a509fa 100644 (file)
@@ -1046,7 +1046,7 @@ fn visit_terminator_kind(&mut self,
                 // conservatively, that drop elaboration will do.
                 let needs_drop = if let Place::Local(local) = *place {
                     if self.local_qualif[local].map_or(true, |q| q.intersects(Qualif::NEEDS_DROP)) {
-                        Some(self.mir.local_decls[local].source_info.span)
+                        Some(self.mir.local_decls[local].visibility_source_info.span)
                     } else {
                         None
                     }
@@ -1102,7 +1102,7 @@ fn visit_assign(&mut self,
                     let mut err = feature_err(
                         &self.tcx.sess.parse_sess,
                         "const_let",
-                        decl.source_info.span,
+                        decl.visibility_source_info.span,
                         GateIssue::Language,
                         "arguments of constant functions can only be immutable by-value bindings"
                     );
index 8176c644dd7457b392b1fd07a62af275cd304e24..bf01619d5b0b53ef45f31d8e1b1f4662e6b4eb4f 100644 (file)
@@ -467,8 +467,8 @@ fn write_scope_tree(
         // User variable types (including the user's name in a comment).
         for local in mir.vars_iter() {
             let var = &mir.local_decls[local];
-            let (name, source_info) = if var.source_info.scope == child {
-                (var.name.unwrap(), var.source_info)
+            let (name, source_info) = if var.visibility_source_info.scope == child {
+                (var.name.unwrap(), var.visibility_source_info)
             } else {
                 // Not a variable or not declared in this scope.
                 continue;