Skip to content

Commit

Permalink
fix: use correct span for struct generics
Browse files Browse the repository at this point in the history
  • Loading branch information
calebcartwright authored and ytmimi committed Feb 16, 2023
1 parent 5391847 commit 34f9ca2
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/items.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1278,7 +1278,7 @@ pub(crate) fn format_struct_struct(
let header_hi = struct_parts.ident.span.hi();
let body_lo = if let Some(generics) = struct_parts.generics {
// Adjust the span to start at the end of the generic arguments before searching for the '{'
let span = span.with_lo(generics.span.hi());
let span = span.with_lo(generics.where_clause.span.hi());
context.snippet_provider.span_after(span, "{")
} else {
context.snippet_provider.span_after(span, "{")
Expand Down
16 changes: 16 additions & 0 deletions tests/target/issue_5691.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
struct S<const C: usize>
where
[(); { num_slots!(C) }]:, {
/* An asterisk-based, or a double-slash-prefixed, comment here is
required to trigger the fmt bug.
A single-line triple-slash-prefixed comment (with a field following it) is not enough - it will not trigger the fmt bug.
Side note: If you have a combination of two, or all three of the
above mentioned types of comments here, some of them disappear
after `cargo fmt`.
The bug gets triggered even if a field definition following the
(asterisk-based, or a double-slash-prefixed) comment, too.
*/
}

0 comments on commit 34f9ca2

Please sign in to comment.