rustc: middle: move TraitItemKind from resolve to def.
This commit is contained in:
parent
d9504d4a47
commit
5d1257a760
@ -19,7 +19,6 @@ use metadata::cstore;
|
||||
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,
|
||||
|
@ -27,7 +27,6 @@ use metadata::tydecode::{parse_ty_data, parse_region_data, parse_def_id,
|
||||
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<IdentInterner>,
|
||||
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)
|
||||
|
@ -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 @@ impl TyParamProvenance {
|
||||
}
|
||||
}
|
||||
|
||||
#[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 @@ impl Def {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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::def::*;
|
||||
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<Module>, 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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user