Skip to content

Commit 24fb5e1

Browse files
ayazhafizytmimi
authored andcommitted
Backport 4220
Handle const generic bounds in structs
1 parent 7d6ca7c commit 24fb5e1

File tree

4 files changed

+15
-7
lines changed

4 files changed

+15
-7
lines changed

src/items.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,13 +1273,12 @@ pub(crate) fn format_struct_struct(
12731273
result.push_str(&header_str);
12741274

12751275
let header_hi = struct_parts.ident.span.hi();
1276-
let body_lo = if let Some(generics) = struct_parts.generics {
1277-
// Adjust the span to start at the end of the generic arguments before searching for the '{'
1278-
let span = span.with_lo(generics.span.hi());
1279-
context.snippet_provider.span_after(span, "{")
1280-
} else {
1281-
context.snippet_provider.span_after(span, "{")
1282-
};
1276+
let after_generics_span = struct_parts.generics.map_or(span, |generics| {
1277+
mk_sp(generics.where_clause.span.hi(), span.hi())
1278+
});
1279+
let body_lo = context
1280+
.snippet_provider
1281+
.span_after(after_generics_span, "{");
12831282

12841283
let generics_str = match struct_parts.generics {
12851284
Some(g) => format_generics(

tests/source/issue_4724.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
struct x{/** */#[x="{"]x:x}

tests/target/issue-4218.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
pub struct Arr
2+
where
3+
[u8; { 10 / 2 }]: Send, {}

tests/target/issue_4724.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
struct x {
2+
/** */
3+
#[x = "{"]
4+
x: x,
5+
}

0 commit comments

Comments
 (0)