Skip to content

Commit

Permalink
Prevent trailing whitespace in where clause bound predicate
Browse files Browse the repository at this point in the history
resolves 5012
resolves 4850

This behavior was noticed when using the ``trailing_comma = "Never"``
configuration option (5012).

This behavior was also noticed when using default configurations (4850).

rustfmt would add a trailing space to where clause bounds that had an
empty right hand side.

Now no trailing space is added to the end of these where clause bounds.
  • Loading branch information
ytmimi committed Oct 30, 2021
1 parent a4d7011 commit 5e4ccab
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/expr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1962,6 +1962,9 @@ fn choose_rhs<R: Rewrite>(
has_rhs_comment: bool,
) -> Option<String> {
match orig_rhs {
Some(ref new_str) if new_str.is_empty() => {
return Some(String::new());
}
Some(ref new_str)
if !new_str.contains('\n') && unicode_str_width(new_str) <= shape.width =>
{
Expand Down
8 changes: 8 additions & 0 deletions tests/target/issue-5012/trailing_comma_always.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// rustfmt-trailing_comma: Always

pub struct Matrix<T, const R: usize, const C: usize,>
where
[T; R * C]:,
{
contents: [T; R * C],
}
8 changes: 8 additions & 0 deletions tests/target/issue-5012/trailing_comma_never.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// rustfmt-trailing_comma: Never

pub struct Matrix<T, const R: usize, const C: usize>
where
[T; R * C]:
{
contents: [T; R * C]
}
4 changes: 4 additions & 0 deletions tests/target/issue_4850.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
impl ThisIsALongStructNameToPushTheWhereToWrapLolololol where
[(); this_is_a_long_const_function_name()]:
{
}

0 comments on commit 5e4ccab

Please sign in to comment.