aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/lower.rs
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2020-02-22 12:14:39 +0000
committerFlorian Diebold <[email protected]>2020-02-22 12:14:39 +0000
commit3e106c77ff76c39be49444165eac805d32666e41 (patch)
tree7f136356bb7edb610233a2821be0b755725ed03a /crates/ra_hir_ty/src/lower.rs
parentc2000257941956cd4c4365d6eb6cdbc1b16e929c (diff)
Rework find_super_trait_path to protect against cycles
Diffstat (limited to 'crates/ra_hir_ty/src/lower.rs')
-rw-r--r--crates/ra_hir_ty/src/lower.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/crates/ra_hir_ty/src/lower.rs b/crates/ra_hir_ty/src/lower.rs
index 0e6efa971..092977e93 100644
--- a/crates/ra_hir_ty/src/lower.rs
+++ b/crates/ra_hir_ty/src/lower.rs
@@ -241,7 +241,8 @@ impl Ty {
241 TypeNs::TraitId(trait_) => { 241 TypeNs::TraitId(trait_) => {
242 // if this is a bare dyn Trait, we'll directly put the required ^0 for the self type in there 242 // if this is a bare dyn Trait, we'll directly put the required ^0 for the self type in there
243 let self_ty = if remaining_segments.len() == 0 { Some(Ty::Bound(0)) } else { None }; 243 let self_ty = if remaining_segments.len() == 0 { Some(Ty::Bound(0)) } else { None };
244 let trait_ref = TraitRef::from_resolved_path(ctx, trait_, resolved_segment, self_ty); 244 let trait_ref =
245 TraitRef::from_resolved_path(ctx, trait_, resolved_segment, self_ty);
245 return if remaining_segments.len() == 1 { 246 return if remaining_segments.len() == 1 {
246 let segment = remaining_segments.first().unwrap(); 247 let segment = remaining_segments.first().unwrap();
247 let associated_ty = associated_type_by_name_including_super_traits( 248 let associated_ty = associated_type_by_name_including_super_traits(