diff --git a/src/librustc/metadata/csearch.rs b/src/librustc/metadata/csearch.rs index a474af7c6e1ff0dd81173ae09ffce2f8ef91dddc..b702f4925d84739983de49941b63a046b620dddb 100644 --- a/src/librustc/metadata/csearch.rs +++ b/src/librustc/metadata/csearch.rs @@ -19,7 +19,6 @@ use metadata::decoder; use middle::def; use middle::lang_items; -use middle::resolve; use middle::ty; use rbml; @@ -148,7 +147,7 @@ pub fn get_impl_or_trait_item<'tcx>(tcx: &ty::ctxt<'tcx>, def: ast::DefId) } pub fn get_trait_item_name_and_kind(cstore: &cstore::CStore, def: ast::DefId) - -> (ast::Name, resolve::TraitItemKind) { + -> (ast::Name, def::TraitItemKind) { let cdata = cstore.get_crate_data(def.krate); decoder::get_trait_item_name_and_kind(cstore.intr.clone(), &*cdata, diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs index b89c5dbcd0885af2dc093e0b8777bd61de88e77e..d8168814c6cd0591324f9fadbd96049c063e7140 100644 --- a/src/librustc/metadata/decoder.rs +++ b/src/librustc/metadata/decoder.rs @@ -27,7 +27,6 @@ parse_predicate_data}; use middle::def; use middle::lang_items; -use middle::resolve::{TraitItemKind, TypeTraitItemKind}; use middle::subst; use middle::ty::{ImplContainer, TraitContainer}; use middle::ty::{mod, Ty}; @@ -785,15 +784,15 @@ pub fn get_impl_items(cdata: Cmd, impl_id: ast::NodeId) pub fn get_trait_item_name_and_kind(intr: Rc, cdata: Cmd, id: ast::NodeId) - -> (ast::Name, TraitItemKind) { + -> (ast::Name, def::TraitItemKind) { let doc = lookup_item(id, cdata.data()); let name = item_name(&*intr, doc); match item_sort(doc) { 'r' | 'p' => { let explicit_self = get_explicit_self(doc); - (name, TraitItemKind::from_explicit_self_category(explicit_self)) + (name, def::TraitItemKind::from_explicit_self_category(explicit_self)) } - 't' => (name, TypeTraitItemKind), + 't' => (name, def::TypeTraitItemKind), c => { panic!("get_trait_item_name_and_kind(): unknown trait item kind \ in metadata: `{}`", c) diff --git a/src/librustc/middle/def.rs b/src/librustc/middle/def.rs index ddf5b6f7e37d11d9793a5c4181f4d619084fa2b1..a582907612fd5bf5f5b441ea7f12c963c7f49a0f 100644 --- a/src/librustc/middle/def.rs +++ b/src/librustc/middle/def.rs @@ -10,8 +10,10 @@ pub use self::Def::*; pub use self::MethodProvenance::*; +pub use self::TraitItemKind::*; use middle::subst::ParamSpace; +use middle::ty::{ExplicitSelfCategory, StaticExplicitSelfCategory}; use util::nodemap::NodeMap; use syntax::ast; use syntax::ast_util::local_def; @@ -103,6 +105,25 @@ pub fn def_id(&self) -> ast::DefId { } } +#[deriving(Clone, Copy, Eq, PartialEq)] +pub enum TraitItemKind { + NonstaticMethodTraitItemKind, + StaticMethodTraitItemKind, + TypeTraitItemKind, +} + +impl TraitItemKind { + pub fn from_explicit_self_category(explicit_self_category: + ExplicitSelfCategory) + -> TraitItemKind { + if explicit_self_category == StaticExplicitSelfCategory { + StaticMethodTraitItemKind + } else { + NonstaticMethodTraitItemKind + } + } +} + impl Def { pub fn def_id(&self) -> ast::DefId { match *self { @@ -137,4 +158,3 @@ pub fn variant_def_ids(&self) -> Option<(ast::DefId, ast::DefId)> { } } } - diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs index a27b3b750094c8c4cd05bb42a7bfb7173af14f16..47320dfec7b3dea7eaf10ba168335edd58c1b940 100644 --- a/src/librustc/middle/resolve.rs +++ b/src/librustc/middle/resolve.rs @@ -10,7 +10,6 @@ pub use self::PrivateDep::*; pub use self::ImportUse::*; -pub use self::TraitItemKind::*; pub use self::LastPrivate::*; use self::PatternBindingMode::*; use self::Namespace::*; @@ -42,7 +41,6 @@ use middle::lang_items::LanguageItems; use middle::pat_util::pat_bindings; use middle::subst::{ParamSpace, FnSpace, TypeSpace}; -use middle::ty::{ExplicitSelfCategory, StaticExplicitSelfCategory}; use middle::ty::{CaptureModeMap, Freevar, FreevarMap, TraitMap}; use util::nodemap::{NodeMap, NodeSet, DefIdSet, FnvHashMap}; @@ -323,25 +321,6 @@ enum ModulePrefixResult { PrefixFound(Rc, uint) } -#[deriving(Clone, Copy, Eq, PartialEq)] -pub enum TraitItemKind { - NonstaticMethodTraitItemKind, - StaticMethodTraitItemKind, - TypeTraitItemKind, -} - -impl TraitItemKind { - pub fn from_explicit_self_category(explicit_self_category: - ExplicitSelfCategory) - -> TraitItemKind { - if explicit_self_category == StaticExplicitSelfCategory { - StaticMethodTraitItemKind - } else { - NonstaticMethodTraitItemKind - } - } -} - #[deriving(Copy, PartialEq)] enum NameSearchType { /// We're doing a name search in order to resolve a `use` directive.