Unnamed repository; edit this file 'description' to name the repository.
Auto merge of #16967 - dfireBird:fix-16963, r=lnicola
fix: ADT hover considering only type or const len not lifetimes
I feel like test doesn't do much. Please suggest if I should improve it?
Fixes #16963
| -rw-r--r-- | crates/hir/src/lib.rs | 3 | ||||
| -rw-r--r-- | crates/ide/src/hover/tests.rs | 22 |
2 files changed, 24 insertions, 1 deletions
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs index b4388ad965..cf6297c037 100644 --- a/crates/hir/src/lib.rs +++ b/crates/hir/src/lib.rs @@ -1418,7 +1418,8 @@ impl Adt { } pub fn layout(self, db: &dyn HirDatabase) -> Result<Layout, LayoutError> { - if db.generic_params(self.into()).iter().count() != 0 { + let generic_params = &db.generic_params(self.into()); + if generic_params.iter().next().is_some() || generic_params.iter_lt().next().is_some() { return Err(LayoutError::HasPlaceholder); } let krate = self.krate(db).id; diff --git a/crates/ide/src/hover/tests.rs b/crates/ide/src/hover/tests.rs index 192f6c0272..08925fcdff 100644 --- a/crates/ide/src/hover/tests.rs +++ b/crates/ide/src/hover/tests.rs @@ -7856,3 +7856,25 @@ impl Iterator for S { "#]], ); } + +#[test] +fn hover_lifetime_regression_16963() { + check( + r#" +struct Pedro$0<'a> { + hola: &'a str +} +"#, + expect![[r#" + *Pedro* + + ```rust + test + ``` + + ```rust + struct Pedro<'a> + ``` + "#]], + ) +} |