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 @@ pub fn has_non_default_type_params(self, db: &dyn HirDatabase) -> bool {
} }
pub fn layout(self, db: &dyn HirDatabase) -> Result<Layout, LayoutError> { 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); return Err(LayoutError::HasPlaceholder);
} }
let krate = self.krate(db).id; 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>
```
"#]],
)
}