aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/lower.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-11-26 15:00:36 +0000
committerAleksey Kladov <[email protected]>2019-11-26 15:01:34 +0000
commit72d8e7e69abca9f27fb3ea386a6879324741e152 (patch)
tree55d2afdba12adaff0e7c329b6d0dfc79efb6db73 /crates/ra_hir/src/ty/lower.rs
parent6560e4ff2eae4e54384896d6ae100f1d2df20518 (diff)
Use TraitId in TraitRef
Diffstat (limited to 'crates/ra_hir/src/ty/lower.rs')
-rw-r--r--crates/ra_hir/src/ty/lower.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/crates/ra_hir/src/ty/lower.rs b/crates/ra_hir/src/ty/lower.rs
index 805a73ff5..a7149614d 100644
--- a/crates/ra_hir/src/ty/lower.rs
+++ b/crates/ra_hir/src/ty/lower.rs
@@ -15,7 +15,7 @@ use hir_def::{
15 resolver::{HasResolver, Resolver, TypeNs}, 15 resolver::{HasResolver, Resolver, TypeNs},
16 type_ref::{TypeBound, TypeRef}, 16 type_ref::{TypeBound, TypeRef},
17 AdtId, AstItemDef, EnumVariantId, FunctionId, GenericDefId, HasModule, LocalStructFieldId, 17 AdtId, AstItemDef, EnumVariantId, FunctionId, GenericDefId, HasModule, LocalStructFieldId,
18 Lookup, StructId, VariantId, 18 Lookup, StructId, TraitId, VariantId,
19}; 19};
20use ra_arena::map::ArenaMap; 20use ra_arena::map::ArenaMap;
21use ra_db::CrateId; 21use ra_db::CrateId;
@@ -172,7 +172,7 @@ impl Ty {
172 let segment = &remaining_segments[0]; 172 let segment = &remaining_segments[0];
173 let associated_ty = associated_type_by_name_including_super_traits( 173 let associated_ty = associated_type_by_name_including_super_traits(
174 db, 174 db,
175 trait_ref.trait_.id, 175 trait_ref.trait_,
176 &segment.name, 176 &segment.name,
177 ); 177 );
178 match associated_ty { 178 match associated_ty {
@@ -263,7 +263,7 @@ impl Ty {
263 GenericPredicate::Implemented(tr) if tr.self_ty() == &self_ty => Some(tr.trait_), 263 GenericPredicate::Implemented(tr) if tr.self_ty() == &self_ty => Some(tr.trait_),
264 _ => None, 264 _ => None,
265 }); 265 });
266 let traits = traits_from_env.flat_map(|t| all_super_traits(db, t.id)).map(Trait::from); 266 let traits = traits_from_env.flat_map(|t| all_super_traits(db, t)).map(Trait::from);
267 for t in traits { 267 for t in traits {
268 if let Some(associated_ty) = db.trait_data(t.id).associated_type_by_name(&segment.name) 268 if let Some(associated_ty) = db.trait_data(t.id).associated_type_by_name(&segment.name)
269 { 269 {
@@ -423,7 +423,7 @@ impl TraitRef {
423 if let Some(self_ty) = explicit_self_ty { 423 if let Some(self_ty) = explicit_self_ty {
424 make_mut_slice(&mut substs.0)[0] = self_ty; 424 make_mut_slice(&mut substs.0)[0] = self_ty;
425 } 425 }
426 TraitRef { trait_: resolved, substs } 426 TraitRef { trait_: resolved.id, substs }
427 } 427 }
428 428
429 pub(crate) fn from_hir( 429 pub(crate) fn from_hir(
@@ -450,8 +450,8 @@ impl TraitRef {
450 substs_from_path_segment(db, resolver, segment, Some(resolved.id.into()), !has_self_param) 450 substs_from_path_segment(db, resolver, segment, Some(resolved.id.into()), !has_self_param)
451 } 451 }
452 452
453 pub(crate) fn for_trait(db: &impl HirDatabase, trait_: Trait) -> TraitRef { 453 pub(crate) fn for_trait(db: &impl HirDatabase, trait_: TraitId) -> TraitRef {
454 let substs = Substs::identity(&db.generic_params(trait_.id.into())); 454 let substs = Substs::identity(&db.generic_params(trait_.into()));
455 TraitRef { trait_, substs } 455 TraitRef { trait_, substs }
456 } 456 }
457 457
@@ -510,7 +510,7 @@ fn assoc_type_bindings_from_type_bound<'a>(
510 .flat_map(|args_and_bindings| args_and_bindings.bindings.iter()) 510 .flat_map(|args_and_bindings| args_and_bindings.bindings.iter())
511 .map(move |(name, type_ref)| { 511 .map(move |(name, type_ref)| {
512 let associated_ty = 512 let associated_ty =
513 associated_type_by_name_including_super_traits(db, trait_ref.trait_.id, &name); 513 associated_type_by_name_including_super_traits(db, trait_ref.trait_, &name);
514 let associated_ty = match associated_ty { 514 let associated_ty = match associated_ty {
515 None => return GenericPredicate::Error, 515 None => return GenericPredicate::Error,
516 Some(t) => t, 516 Some(t) => t,