diff options
Diffstat (limited to 'crates/ra_hir/src/ty/lower.rs')
-rw-r--r-- | crates/ra_hir/src/ty/lower.rs | 14 |
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 | }; |
20 | use ra_arena::map::ArenaMap; | 20 | use ra_arena::map::ArenaMap; |
21 | use ra_db::CrateId; | 21 | use 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, |