From 4b9acad7c66c9e9cb8f585ff7446872eec5c33de Mon Sep 17 00:00:00 2001 From: Paul Faria Date: Thu, 27 Jul 2017 19:43:05 -0400 Subject: [PATCH] Squash Span into SourceInfo and rename enum and its inner types --- src/librustc/mir/visit.rs | 31 +++++++++++---------- src/librustc_mir/build/mod.rs | 4 +-- src/librustc_mir/transform/erase_regions.rs | 4 +-- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/librustc/mir/visit.rs b/src/librustc/mir/visit.rs index 2e7dfa8f70d..fd3a9f8cd2d 100644 --- a/src/librustc/mir/visit.rs +++ b/src/librustc/mir/visit.rs @@ -211,7 +211,7 @@ macro_rules! make_mir_visitor { fn visit_ty(&mut self, ty: & $($mutability)* Ty<'tcx>, - _: PositionalInfo) { + _: Lookup) { self.super_ty(ty); } @@ -269,7 +269,11 @@ macro_rules! make_mir_visitor { self.visit_visibility_scope_data(scope); } - self.visit_ty(&$($mutability)* mir.return_ty, PositionalInfo::Span(mir.span)); + let lookup = Lookup::Src(SourceInfo { + span: mir.span, + scope: ARGUMENT_VISIBILITY_SCOPE, + }); + self.visit_ty(&$($mutability)* mir.return_ty, lookup); for local_decl in &$($mutability)* mir.local_decls { self.visit_local_decl(local_decl); @@ -388,7 +392,7 @@ macro_rules! make_mir_visitor { ref values, ref targets } => { self.visit_operand(discr, source_location); - self.visit_ty(switch_ty, PositionalInfo::Location(source_location)); + self.visit_ty(switch_ty, Lookup::Loc(source_location)); for value in &values[..] { self.visit_const_int(value, source_location); } @@ -492,7 +496,7 @@ macro_rules! make_mir_visitor { ref $($mutability)* operand, ref $($mutability)* ty) => { self.visit_operand(operand, location); - self.visit_ty(ty, PositionalInfo::Location(location)); + self.visit_ty(ty, Lookup::Loc(location)); } Rvalue::BinaryOp(_bin_op, @@ -514,7 +518,7 @@ macro_rules! make_mir_visitor { } Rvalue::NullaryOp(_op, ref $($mutability)* ty) => { - self.visit_ty(ty, PositionalInfo::Location(location)); + self.visit_ty(ty, Lookup::Loc(location)); } Rvalue::Aggregate(ref $($mutability)* kind, @@ -522,7 +526,7 @@ macro_rules! make_mir_visitor { let kind = &$($mutability)* **kind; match *kind { AggregateKind::Array(ref $($mutability)* ty) => { - self.visit_ty(ty, PositionalInfo::Location(location)); + self.visit_ty(ty, Lookup::Loc(location)); } AggregateKind::Tuple => { } @@ -584,7 +588,7 @@ macro_rules! make_mir_visitor { ref $($mutability)* ty, } = *static_; self.visit_def_id(def_id, location); - self.visit_ty(ty, PositionalInfo::Location(location)); + self.visit_ty(ty, Lookup::Loc(location)); } fn super_projection(&mut self, @@ -614,7 +618,7 @@ macro_rules! make_mir_visitor { ProjectionElem::Subslice { from: _, to: _ } => { } ProjectionElem::Field(_field, ref $($mutability)* ty) => { - self.visit_ty(ty, PositionalInfo::Location(location)); + self.visit_ty(ty, Lookup::Loc(location)); } ProjectionElem::Index(ref $($mutability)* operand) => { self.visit_operand(operand, location); @@ -638,7 +642,7 @@ macro_rules! make_mir_visitor { is_user_variable: _, } = *local_decl; - self.visit_ty(ty, PositionalInfo::SourceInfo(*source_info)); + self.visit_ty(ty, Lookup::Src(*source_info)); self.visit_source_info(source_info); } @@ -661,7 +665,7 @@ macro_rules! make_mir_visitor { } = *constant; self.visit_span(span); - self.visit_ty(ty, PositionalInfo::Location(location)); + self.visit_ty(ty, Lookup::Loc(location)); self.visit_literal(literal, location); } @@ -737,10 +741,9 @@ macro_rules! make_mir_visitor { make_mir_visitor!(Visitor,); make_mir_visitor!(MutVisitor,mut); -pub enum PositionalInfo { - Location(Location), - SourceInfo(SourceInfo), - Span(Span), +pub enum Lookup { + Loc(Location), + Src(SourceInfo), } #[derive(Copy, Clone, Debug, PartialEq, Eq)] diff --git a/src/librustc_mir/build/mod.rs b/src/librustc_mir/build/mod.rs index abb431f70eb..74101abd5d7 100644 --- a/src/librustc_mir/build/mod.rs +++ b/src/librustc_mir/build/mod.rs @@ -17,7 +17,7 @@ use rustc::hir::def_id::DefId; use rustc::middle::region::CodeExtent; use rustc::mir::*; use rustc::mir::transform::MirSource; -use rustc::mir::visit::{MutVisitor, PositionalInfo}; +use rustc::mir::visit::{MutVisitor, Lookup}; use rustc::ty::{self, Ty, TyCtxt}; use rustc::ty::subst::Substs; use rustc::util::nodemap::NodeMap; @@ -143,7 +143,7 @@ struct GlobalizeMir<'a, 'gcx: 'a> { } impl<'a, 'gcx: 'tcx, 'tcx> MutVisitor<'tcx> for GlobalizeMir<'a, 'gcx> { - fn visit_ty(&mut self, ty: &mut Ty<'tcx>, _: PositionalInfo) { + fn visit_ty(&mut self, ty: &mut Ty<'tcx>, _: Lookup) { if let Some(lifted) = self.tcx.lift(ty) { *ty = lifted; } else { diff --git a/src/librustc_mir/transform/erase_regions.rs b/src/librustc_mir/transform/erase_regions.rs index 45a0fab7b62..da9032685e0 100644 --- a/src/librustc_mir/transform/erase_regions.rs +++ b/src/librustc_mir/transform/erase_regions.rs @@ -15,7 +15,7 @@ use rustc::ty::subst::Substs; use rustc::ty::{Ty, TyCtxt, ClosureSubsts}; use rustc::mir::*; -use rustc::mir::visit::{MutVisitor, PositionalInfo}; +use rustc::mir::visit::{MutVisitor, Lookup}; use rustc::mir::transform::{MirPass, MirSource}; struct EraseRegionsVisitor<'a, 'tcx: 'a> { @@ -31,7 +31,7 @@ impl<'a, 'tcx> EraseRegionsVisitor<'a, 'tcx> { } impl<'a, 'tcx> MutVisitor<'tcx> for EraseRegionsVisitor<'a, 'tcx> { - fn visit_ty(&mut self, ty: &mut Ty<'tcx>, _: PositionalInfo) { + fn visit_ty(&mut self, ty: &mut Ty<'tcx>, _: Lookup) { let old_ty = *ty; *ty = self.tcx.erase_regions(&old_ty); }