From c871637e4374a7c59d39a70487a7ac46d3efa89a Mon Sep 17 00:00:00 2001 From: Jeffrey Seyfried Date: Tue, 29 Nov 2016 00:33:59 +0000 Subject: [PATCH] Remove `resolver.record_resolution()`. --- src/librustc/hir/lowering.rs | 30 +++++------------------------- src/librustc_driver/driver.rs | 3 --- src/librustc_resolve/lib.rs | 6 +----- 3 files changed, 6 insertions(+), 33 deletions(-) diff --git a/src/librustc/hir/lowering.rs b/src/librustc/hir/lowering.rs index d113f6b5e4e..e5a61908e0f 100644 --- a/src/librustc/hir/lowering.rs +++ b/src/librustc/hir/lowering.rs @@ -82,9 +82,6 @@ pub trait Resolver { // Obtain the resolution for a node id fn get_resolution(&mut self, id: NodeId) -> Option; - // Record the resolution of a path or binding generated by the lowerer when expanding. - fn record_resolution(&mut self, id: NodeId, def: Def); - // We must keep the set of definitions up to date as we add nodes that weren't in the AST. // This should only return `None` during testing. fn definitions(&mut self) -> &mut Definitions; @@ -351,12 +348,7 @@ impl<'a> LoweringContext<'a> { // Otherwise, the base path is an implicit `Self` type path, // e.g. `Vec` in `Vec::new` or `::Item` in // `::Item::default`. - let ty = self.ty(p.span, hir::TyPath(hir::QPath::Resolved(qself, path))); - - // Associate that innermost path type with the base Def. - self.resolver.record_resolution(ty.id, resolution.base_def); - - ty + self.ty(p.span, hir::TyPath(hir::QPath::Resolved(qself, path))) }; // Anything after the base path are associated "extensions", @@ -1902,10 +1894,8 @@ impl<'a> LoweringContext<'a> { def: def, segments: hir_vec![hir::PathSegment::from_name(id)], }))); - let expr = self.expr(span, expr_path, ThinVec::new()); - self.resolver.record_resolution(expr.id, def); - expr + self.expr(span, expr_path, ThinVec::new()) } fn expr_mut_addr_of(&mut self, span: Span, e: P) -> hir::Expr { @@ -1918,10 +1908,7 @@ impl<'a> LoweringContext<'a> { attrs: ThinVec) -> hir::Expr { let path = self.std_path(span, components, true); - let def = path.def; - let expr = self.expr(span, hir::ExprPath(hir::QPath::Resolved(None, P(path))), attrs); - self.resolver.record_resolution(expr.id, def); - expr + self.expr(span, hir::ExprPath(hir::QPath::Resolved(None, P(path))), attrs) } fn expr_match(&mut self, @@ -1948,11 +1935,8 @@ impl<'a> LoweringContext<'a> { e: Option>, attrs: ThinVec) -> hir::Expr { let path = self.std_path(span, components, false); - let def = path.def; let qpath = hir::QPath::Resolved(None, P(path)); - let expr = self.expr(span, hir::ExprStruct(qpath, fields, e), attrs); - self.resolver.record_resolution(expr.id, def); - expr + self.expr(span, hir::ExprStruct(qpath, fields, e), attrs) } fn expr(&mut self, span: Span, node: hir::Expr_, attrs: ThinVec) -> hir::Expr { @@ -2021,16 +2005,13 @@ impl<'a> LoweringContext<'a> { subpats: hir::HirVec>) -> P { let path = self.std_path(span, components, true); - let def = path.def; let qpath = hir::QPath::Resolved(None, P(path)); let pt = if subpats.is_empty() { hir::PatKind::Path(qpath) } else { hir::PatKind::TupleStruct(qpath, subpats, None) }; - let pat = self.pat(span, pt); - self.resolver.record_resolution(pat.id, def); - pat + self.pat(span, pt) } fn pat_ident(&mut self, span: Span, name: Name) -> P { @@ -2047,7 +2028,6 @@ impl<'a> LoweringContext<'a> { let def_index = defs.create_def_with_parent(parent_def, id, def_path_data); DefId::local(def_index) }; - self.resolver.record_resolution(id, Def::Local(def_id)); P(hir::Pat { id: id, diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index 7dc71f8189b..bee79103b41 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -10,7 +10,6 @@ use rustc::hir; use rustc::hir::{map as hir_map, FreevarMap, TraitMap}; -use rustc::hir::def::DefMap; use rustc::hir::lowering::lower_crate; use rustc_data_structures::blake2b::Blake2bHasher; use rustc_data_structures::fmt_wrap::FmtWrap; @@ -63,7 +62,6 @@ use derive_registrar; #[derive(Clone)] pub struct Resolutions { - pub def_map: DefMap, pub freevars: FreevarMap, pub trait_map: TraitMap, pub maybe_unused_trait_imports: NodeSet, @@ -794,7 +792,6 @@ pub fn phase_2_configure_and_expand(sess: &Session, hir_ty_to_ty: NodeMap(), }, resolutions: Resolutions { - def_map: resolver.def_map, freevars: resolver.freevars, trait_map: resolver.trait_map, maybe_unused_trait_imports: resolver.maybe_unused_trait_imports, diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index 89da3c221c6..e1200149dcc 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -1050,7 +1050,7 @@ pub struct Resolver<'a> { // The idents for the primitive types. primitive_type_table: PrimitiveTypeTable, - pub def_map: DefMap, + def_map: DefMap, pub freevars: FreevarMap, freevars_seen: NodeMap>, pub export_map: ExportMap, @@ -1183,10 +1183,6 @@ impl<'a> hir::lowering::Resolver for Resolver<'a> { self.def_map.get(&id).cloned() } - fn record_resolution(&mut self, id: NodeId, def: Def) { - self.def_map.insert(id, PathResolution::new(def)); - } - fn definitions(&mut self) -> &mut Definitions { &mut self.definitions }