aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/assists/src/utils.rs2
-rw-r--r--crates/ide/src/inlay_hints.rs6
2 files changed, 5 insertions, 3 deletions
diff --git a/crates/assists/src/utils.rs b/crates/assists/src/utils.rs
index 92b3c3b00..c074b8d02 100644
--- a/crates/assists/src/utils.rs
+++ b/crates/assists/src/utils.rs
@@ -308,7 +308,7 @@ pub mod iter {
308 } 308 }
309 } 309 }
310 } 310 }
311 pub(crate) mod collect { 311 pub(crate) mod collect {
312 pub trait IntoIterator { 312 pub trait IntoIterator {
313 type Item; 313 type Item;
314 } 314 }
diff --git a/crates/ide/src/inlay_hints.rs b/crates/ide/src/inlay_hints.rs
index 279d02541..7540f56a4 100644
--- a/crates/ide/src/inlay_hints.rs
+++ b/crates/ide/src/inlay_hints.rs
@@ -211,7 +211,9 @@ fn hint_iterator(
211 ty: &Type, 211 ty: &Type,
212) -> Option<SmolStr> { 212) -> Option<SmolStr> {
213 let db = sema.db; 213 let db = sema.db;
214 let strukt = ty.as_adt()?; 214 let strukt = std::iter::successors(Some(ty.clone()), |ty| ty.remove_ref())
215 .last()
216 .and_then(|strukt| strukt.as_adt())?;
215 let krate = strukt.krate(db)?; 217 let krate = strukt.krate(db)?;
216 if krate.declaration_name(db).as_deref() != Some("core") { 218 if krate.declaration_name(db).as_deref() != Some("core") {
217 return None; 219 return None;
@@ -1169,7 +1171,7 @@ fn main() {
1169 InlayHint { 1171 InlayHint {
1170 range: 175..225, 1172 range: 175..225,
1171 kind: ChainingHint, 1173 kind: ChainingHint,
1172 label: "&mut Take<&mut MyIter>", 1174 label: "impl Iterator<Item = ()>",
1173 }, 1175 },
1174 InlayHint { 1176 InlayHint {
1175 range: 175..207, 1177 range: 175..207,