]> git.lizzy.rs Git - rust.git/commitdiff
Remove TraitData from API
authorAleksey Kladov <aleksey.kladov@gmail.com>
Fri, 22 Nov 2019 15:53:39 +0000 (18:53 +0300)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Fri, 22 Nov 2019 15:53:39 +0000 (18:53 +0300)
crates/ra_hir/src/code_model.rs
crates/ra_hir/src/ty/method_resolution.rs

index af07b2c4ddc4e1658f0873da5e0c48767d478ae8..9f8c6c4a52b3b468c828ef2cca13eff6e4f973b0 100644 (file)
@@ -10,7 +10,6 @@
     adt::VariantData,
     body::scope::ExprScopes,
     builtin_type::BuiltinType,
-    data::TraitData,
     nameres::per_ns::PerNs,
     resolver::{HasResolver, TypeNs},
     type_ref::TypeRef,
@@ -707,11 +706,11 @@ pub fn module(self, db: &impl DefDatabase) -> Module {
     }
 
     pub fn name(self, db: &impl DefDatabase) -> Option<Name> {
-        self.trait_data(db).name.clone()
+        db.trait_data(self.id).name.clone()
     }
 
     pub fn items(self, db: &impl DefDatabase) -> Vec<AssocItem> {
-        self.trait_data(db).items.iter().map(|it| (*it).into()).collect()
+        db.trait_data(self.id).items.iter().map(|it| (*it).into()).collect()
     }
 
     fn direct_super_traits(self, db: &impl HirDatabase) -> Vec<Trait> {
@@ -757,7 +756,7 @@ pub fn all_super_traits(self, db: &impl HirDatabase) -> Vec<Trait> {
     }
 
     pub fn associated_type_by_name(self, db: &impl DefDatabase, name: &Name) -> Option<TypeAlias> {
-        let trait_data = self.trait_data(db);
+        let trait_data = db.trait_data(self.id);
         let res =
             trait_data.associated_types().map(TypeAlias::from).find(|t| &t.name(db) == name)?;
         Some(res)
@@ -771,16 +770,12 @@ pub fn associated_type_by_name_including_super_traits(
         self.all_super_traits(db).into_iter().find_map(|t| t.associated_type_by_name(db, name))
     }
 
-    pub(crate) fn trait_data(self, db: &impl DefDatabase) -> Arc<TraitData> {
-        db.trait_data(self.id)
-    }
-
     pub fn trait_ref(self, db: &impl HirDatabase) -> TraitRef {
         TraitRef::for_trait(db, self)
     }
 
     pub fn is_auto(self, db: &impl DefDatabase) -> bool {
-        self.trait_data(db).auto
+        db.trait_data(self.id).auto
     }
 }
 
index f84aae26eee755f488ea0eae7f52c102a09cee22..f61c27218c3a53a7a260319f970175748dc8543d 100644 (file)
@@ -233,7 +233,7 @@ fn iterate_trait_method_candidates<T>(
         .chain(traits_from_env)
         .chain(resolver.traits_in_scope(db).into_iter().map(Trait::from));
     'traits: for t in traits {
-        let data = t.trait_data(db);
+        let data = db.trait_data(t.id);
 
         // we'll be lazy about checking whether the type implements the
         // trait, but if we find out it doesn't, we'll skip the rest of the