fix ADT hover considering only type or const len not lifetimes

This commit is contained in:
dfireBird 2024-03-28 20:31:15 +05:30
parent 899db83128
commit 34a8cd6a7a
No known key found for this signature in database
GPG key ID: 26D522CA5FC2B93D
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>
```
"#]],
)
}