fix: remove space within {} when no fields in struct

This commit is contained in:
roife 2024-04-20 10:07:33 +08:00
parent 43576989a1
commit aa1f1344cc
2 changed files with 35 additions and 11 deletions

View file

@ -249,19 +249,23 @@ fn display_fields(
} }
} else { } else {
f.write_char('{')?; f.write_char('{')?;
f.write_char(separator)?;
for field in &fields[..count] { if !fields.is_empty() {
f.write_str(indent)?;
field.hir_fmt(f)?;
f.write_char(',')?;
f.write_char(separator)?; f.write_char(separator)?;
for field in &fields[..count] {
f.write_str(indent)?;
field.hir_fmt(f)?;
f.write_char(',')?;
f.write_char(separator)?;
}
if fields.len() > count {
f.write_str(indent)?;
f.write_str("/* … */")?;
f.write_char(separator)?;
}
} }
if fields.len() > count {
f.write_str(indent)?;
f.write_str("/* … */")?;
f.write_char(separator)?;
}
f.write_str("}")?; f.write_str("}")?;
} }

View file

@ -1039,7 +1039,27 @@ fn hover_record_struct_limit() {
struct Foo { /**/ } struct Foo { /**/ }
``` ```
"#]], "#]],
) );
// No extra spaces within `{}` when there are no fields
check_hover_fields_limit(
5,
r#"
struct Foo$0 {}
"#,
expect![[r#"
*Foo*
```rust
test
```
```rust
// size = 0, align = 1
struct Foo {}
```
"#]],
);
} }
#[test] #[test]