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
This commit is contained in:
bors 2024-03-28 16:45:45 +00:00
commit ab10eea62e
2 changed files with 24 additions and 1 deletions

View File

@ -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;

View File

@ -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>
```
"#]],
)
}