diff options
| author | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2019-04-20 18:26:26 +0300 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2019-05-03 22:48:27 +0300 |
| commit | a3fcab36d25317ff2bad24d67f7e932c37f35d19 (patch) | |
| tree | 3f24997e9d0e1d57bfb7912ec33f9be3743fafda /src/librustc_save_analysis | |
| parent | 3af1bdc4bcc502d576b1e836f99bae1eb29dbafd (diff) | |
rustc: factor most DefId-containing variants out of Def and into DefKind.
Diffstat (limited to 'src/librustc_save_analysis')
| -rw-r--r-- | src/librustc_save_analysis/dump_visitor.rs | 16 | ||||
| -rw-r--r-- | src/librustc_save_analysis/lib.rs | 48 | ||||
| -rw-r--r-- | src/librustc_save_analysis/sig.rs | 6 |
3 files changed, 36 insertions, 34 deletions
diff --git a/src/librustc_save_analysis/dump_visitor.rs b/src/librustc_save_analysis/dump_visitor.rs index a5ddf89d3d4..36413e76a1e 100644 --- a/src/librustc_save_analysis/dump_visitor.rs +++ b/src/librustc_save_analysis/dump_visitor.rs @@ -13,7 +13,7 @@ //! DumpVisitor walks the AST and processes it, and JsonDumper is used for //! recording the output. -use rustc::hir::def::Def as HirDef; +use rustc::hir::def::{Def as HirDef, DefKind as HirDefKind}; use rustc::hir::def_id::DefId; use rustc::session::config::Input; use rustc::span_bug; @@ -957,13 +957,13 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> DumpVisitor<'l, 'tcx, 'll, O> { ); } } - HirDef::Ctor(_, _, _) | - HirDef::Const(..) | - HirDef::AssociatedConst(..) | - HirDef::Struct(..) | - HirDef::Variant(..) | - HirDef::TyAlias(..) | - HirDef::AssociatedTy(..) | + HirDef::Def(HirDefKind::Ctor(..), _) | + HirDef::Def(HirDefKind::Const, _) | + HirDef::Def(HirDefKind::AssociatedConst, _) | + HirDef::Def(HirDefKind::Struct, _) | + HirDef::Def(HirDefKind::Variant, _) | + HirDef::Def(HirDefKind::TyAlias, _) | + HirDef::Def(HirDefKind::AssociatedTy, _) | HirDef::SelfTy(..) => { self.dump_path_ref(id, &ast::Path::from_ident(ident)); } diff --git a/src/librustc_save_analysis/lib.rs b/src/librustc_save_analysis/lib.rs index c173d51fd40..47d0b5055ea 100644 --- a/src/librustc_save_analysis/lib.rs +++ b/src/librustc_save_analysis/lib.rs @@ -15,7 +15,7 @@ mod span_utils; mod sig; use rustc::hir; -use rustc::hir::def::{CtorOf, Def as HirDef}; +use rustc::hir::def::{CtorOf, Def as HirDef, DefKind as HirDefKind}; use rustc::hir::Node; use rustc::hir::def_id::{DefId, LOCAL_CRATE}; use rustc::middle::privacy::AccessLevels; @@ -710,39 +710,39 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> { ref_id: id_from_node_id(self.tcx.hir().hir_to_node_id(id), self), }) } - HirDef::Trait(def_id) if fn_type(path_seg) => { + HirDef::Def(HirDefKind::Trait, def_id) if fn_type(path_seg) => { Some(Ref { kind: RefKind::Type, span, ref_id: id_from_def_id(def_id), }) } - HirDef::Struct(def_id) | - HirDef::Variant(def_id, ..) | - HirDef::Union(def_id) | - HirDef::Enum(def_id) | - HirDef::TyAlias(def_id) | - HirDef::ForeignTy(def_id) | - HirDef::TraitAlias(def_id) | - HirDef::AssociatedExistential(def_id) | - HirDef::AssociatedTy(def_id) | - HirDef::Trait(def_id) | - HirDef::Existential(def_id) | - HirDef::TyParam(def_id) => { + HirDef::Def(HirDefKind::Struct, def_id) | + HirDef::Def(HirDefKind::Variant, def_id) | + HirDef::Def(HirDefKind::Union, def_id) | + HirDef::Def(HirDefKind::Enum, def_id) | + HirDef::Def(HirDefKind::TyAlias, def_id) | + HirDef::Def(HirDefKind::ForeignTy, def_id) | + HirDef::Def(HirDefKind::TraitAlias, def_id) | + HirDef::Def(HirDefKind::AssociatedExistential, def_id) | + HirDef::Def(HirDefKind::AssociatedTy, def_id) | + HirDef::Def(HirDefKind::Trait, def_id) | + HirDef::Def(HirDefKind::Existential, def_id) | + HirDef::Def(HirDefKind::TyParam, def_id) => { Some(Ref { kind: RefKind::Type, span, ref_id: id_from_def_id(def_id), }) } - HirDef::ConstParam(def_id) => { + HirDef::Def(HirDefKind::ConstParam, def_id) => { Some(Ref { kind: RefKind::Variable, span, ref_id: id_from_def_id(def_id), }) } - HirDef::Ctor(def_id, CtorOf::Struct, ..) => { + HirDef::Def(HirDefKind::Ctor(CtorOf::Struct, ..), def_id) => { // This is a reference to a tuple struct where the def_id points // to an invisible constructor function. That is not a very useful // def, so adjust to point to the tuple struct itself. @@ -753,17 +753,17 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> { ref_id: id_from_def_id(parent_def_id), }) } - HirDef::Static(..) | - HirDef::Const(..) | - HirDef::AssociatedConst(..) | - HirDef::Ctor(..) => { + HirDef::Def(HirDefKind::Static, _) | + HirDef::Def(HirDefKind::Const, _) | + HirDef::Def(HirDefKind::AssociatedConst, _) | + HirDef::Def(HirDefKind::Ctor(..), _) => { Some(Ref { kind: RefKind::Variable, span, ref_id: id_from_def_id(def.def_id()), }) } - HirDef::Method(decl_id) => { + HirDef::Def(HirDefKind::Method, decl_id) => { let def_id = if decl_id.is_local() { let ti = self.tcx.associated_item(decl_id); self.tcx @@ -780,14 +780,14 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> { ref_id: id_from_def_id(def_id.unwrap_or(decl_id)), }) } - HirDef::Fn(def_id) => { + HirDef::Def(HirDefKind::Fn, def_id) => { Some(Ref { kind: RefKind::Function, span, ref_id: id_from_def_id(def_id), }) } - HirDef::Mod(def_id) => { + HirDef::Def(HirDefKind::Mod, def_id) => { Some(Ref { kind: RefKind::Mod, span, @@ -797,7 +797,7 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> { HirDef::PrimTy(..) | HirDef::SelfTy(..) | HirDef::Label(..) | - HirDef::Macro(..) | + HirDef::Def(HirDefKind::Macro(..), _) | HirDef::ToolMod | HirDef::NonMacroAttr(..) | HirDef::SelfCtor(..) | diff --git a/src/librustc_save_analysis/sig.rs b/src/librustc_save_analysis/sig.rs index 5ac75d01275..bcdb6be0ebd 100644 --- a/src/librustc_save_analysis/sig.rs +++ b/src/librustc_save_analysis/sig.rs @@ -29,7 +29,7 @@ use crate::{id_from_def_id, id_from_node_id, SaveContext}; use rls_data::{SigElement, Signature}; -use rustc::hir::def::Def; +use rustc::hir::def::{Def, DefKind}; use syntax::ast::{self, NodeId}; use syntax::print::pprust; @@ -586,7 +586,9 @@ impl Sig for ast::Path { refs: vec![], }) } - Def::AssociatedConst(..) | Def::Variant(..) | Def::Ctor(..) => { + Def::Def(DefKind::AssociatedConst, _) + | Def::Def(DefKind::Variant, _) + | Def::Def(DefKind::Ctor(..), _) => { let len = self.segments.len(); if len < 2 { return Err("Bad path"); |
