Basics for trait method resolution

This commit is contained in:
Florian Diebold 2019-03-24 17:36:15 +01:00
parent bb77bc5c2f
commit c947c15ce1
11 changed files with 156 additions and 25 deletions

View file

@ -17,6 +17,7 @@ use crate::{
impl_block::ImplBlock,
resolve::Resolver,
diagnostics::DiagnosticSink,
traits::{TraitItem, TraitData},
};
/// hir::Crate describes a single crate. It's the main interface with which
@ -649,6 +650,18 @@ impl Trait {
pub fn generic_params(&self, db: &impl DefDatabase) -> Arc<GenericParams> {
db.generic_params((*self).into())
}
pub fn name(self, db: &impl DefDatabase) -> Option<Name> {
self.trait_data(db).name().clone()
}
pub fn items(self, db: &impl DefDatabase) -> Vec<TraitItem> {
self.trait_data(db).items().to_vec()
}
pub(crate) fn trait_data(self, db: &impl DefDatabase) -> Arc<TraitData> {
db.trait_data(self)
}
}
impl Docs for Trait {