[PATCH v2 0/2] rust: minor idiomatic fixes to doctest generator

1 view
Skip to first unread message

Tamir Duberstein

unread,
May 29, 2025, 9:15:01 AM5/29/25
to Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Brendan Higgins, David Gow, Rae Moar, linux-k...@vger.kernel.org, kuni...@googlegroups.com, rust-fo...@vger.kernel.org, linux-...@vger.kernel.org, Tamir Duberstein
Please see individual commit messages.

Signed-off-by: Tamir Duberstein <tam...@gmail.com>
---
Changes in v2:
- rustfmt.
- Alice's RB.
- Add second patch to emit information in panic rather than separately
to stderr.
- Link to v1: https://lore.kernel.org/r/20250527-idiomatic-match...@gmail.com

---
Tamir Duberstein (2):
rust: replace length checks with match
rust: emit path candidates in panic message

scripts/rustdoc_test_gen.rs | 33 +++++++++++++++++----------------
1 file changed, 17 insertions(+), 16 deletions(-)
---
base-commit: 1ce98bb2bb30713ec4374ef11ead0d7d3e856766
change-id: 20250527-idiomatic-match-slice-26a79d100e4d

Best regards,
--
Tamir Duberstein <tam...@gmail.com>

Tamir Duberstein

unread,
May 29, 2025, 9:15:03 AM5/29/25
to Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Brendan Higgins, David Gow, Rae Moar, linux-k...@vger.kernel.org, kuni...@googlegroups.com, rust-fo...@vger.kernel.org, linux-...@vger.kernel.org, Tamir Duberstein
Use a match expression with slice patterns instead of length checks and
indexing. The result is more idiomatic, which is a better example for
future Rust code authors.

Reviewed-by: Alice Ryhl <alic...@google.com>
Signed-off-by: Tamir Duberstein <tam...@gmail.com>
---
scripts/rustdoc_test_gen.rs | 31 +++++++++++++++----------------
1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/scripts/rustdoc_test_gen.rs b/scripts/rustdoc_test_gen.rs
index 1ca253594d38..d796481f4359 100644
--- a/scripts/rustdoc_test_gen.rs
+++ b/scripts/rustdoc_test_gen.rs
@@ -85,24 +85,23 @@ fn find_candidates(
}
}

- assert!(
- valid_paths.len() > 0,
- "No path candidates found for `{file}`. This is likely a bug in the build system, or some \
- files went away while compiling."
- );
-
- if valid_paths.len() > 1 {
- eprintln!("Several path candidates found:");
- for path in valid_paths {
- eprintln!(" {path:?}");
+ match valid_paths.as_slice() {
+ [] => panic!(
+ "No path candidates found for `{file}`. This is likely a bug in the build system, or \
+ some files went away while compiling."
+ ),
+ [valid_path] => valid_path.to_str().unwrap(),
+ valid_paths => {
+ eprintln!("Several path candidates found:");
+ for path in valid_paths {
+ eprintln!(" {path:?}");
+ }
+ panic!(
+ "Several path candidates found for `{file}`, please resolve the ambiguity by \
+ renaming a file or folder."
+ );
}
- panic!(
- "Several path candidates found for `{file}`, please resolve the ambiguity by renaming \
- a file or folder."
- );
}
-
- valid_paths[0].to_str().unwrap()
}

fn main() {

--
2.49.0

Tamir Duberstein

unread,
May 29, 2025, 9:15:15 AM5/29/25
to Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Brendan Higgins, David Gow, Rae Moar, linux-k...@vger.kernel.org, kuni...@googlegroups.com, rust-fo...@vger.kernel.org, linux-...@vger.kernel.org, Tamir Duberstein
Include all information in the panic message rather than emit fragments
to stderr.

Signed-off-by: Tamir Duberstein <tam...@gmail.com>
---
scripts/rustdoc_test_gen.rs | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/scripts/rustdoc_test_gen.rs b/scripts/rustdoc_test_gen.rs
index d796481f4359..f95129b03cd8 100644
--- a/scripts/rustdoc_test_gen.rs
+++ b/scripts/rustdoc_test_gen.rs
@@ -92,13 +92,15 @@ fn find_candidates(
),
[valid_path] => valid_path.to_str().unwrap(),
valid_paths => {
- eprintln!("Several path candidates found:");
+ use std::fmt::Write;
+
+ let mut candidates = String::new();
for path in valid_paths {
- eprintln!(" {path:?}");
+ write!(&mut candidates, " {path:?}").unwrap();
}
panic!(
"Several path candidates found for `{file}`, please resolve the ambiguity by \
- renaming a file or folder."
+ renaming a file or folder. Candidates:\n{candidates}",
);
}
}

--
2.49.0

Miguel Ojeda

unread,
May 29, 2025, 9:21:57 AM5/29/25
to Tamir Duberstein, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Brendan Higgins, David Gow, Rae Moar, linux-k...@vger.kernel.org, kuni...@googlegroups.com, rust-fo...@vger.kernel.org, linux-...@vger.kernel.org
On Thu, May 29, 2025 at 3:15 PM Tamir Duberstein <tam...@gmail.com> wrote:
>
> Include all information in the panic message rather than emit fragments
> to stderr.

Could we explain the "why" as well in the message? (i.e. not just the "what")

Thanks!

Cheers,
Miguel

Tamir Duberstein

unread,
May 29, 2025, 10:38:43 AM5/29/25
to Miguel Ojeda, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Brendan Higgins, David Gow, Rae Moar, linux-k...@vger.kernel.org, kuni...@googlegroups.com, rust-fo...@vger.kernel.org, linux-...@vger.kernel.org
Sure, that would be:

Include all information in the panic message rather than emit fragments
to stderr to avoid possible interleaving with other output.

Let me know if I should send another spin for this, or if this is ok
to do on apply.

Miguel Ojeda

unread,
May 29, 2025, 12:00:23 PM5/29/25
to Tamir Duberstein, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Brendan Higgins, David Gow, Rae Moar, linux-k...@vger.kernel.org, kuni...@googlegroups.com, rust-fo...@vger.kernel.org, linux-...@vger.kernel.org
On Thu, May 29, 2025 at 4:38 PM Tamir Duberstein <tam...@gmail.com> wrote:
>
> Sure, that would be:
>
> Include all information in the panic message rather than emit fragments
> to stderr to avoid possible interleaving with other output.
>
> Let me know if I should send another spin for this, or if this is ok
> to do on apply.

Thanks! No worries, I can do that on apply.

Cheers,
Miguel

Miguel Ojeda

unread,
Jul 20, 2025, 6:20:41 PM7/20/25
to Tamir Duberstein, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Brendan Higgins, David Gow, Rae Moar, linux-k...@vger.kernel.org, kuni...@googlegroups.com, rust-fo...@vger.kernel.org, linux-...@vger.kernel.org
On Thu, May 29, 2025 at 3:15 PM Tamir Duberstein <tam...@gmail.com> wrote:
>
> + write!(&mut candidates, " {path:?}").unwrap();

I assume this was supposed to be `writeln!`; otherwise, we lose the
newlines and the indent does not make much sense.

I will fix it when applying.

Cheers,
Miguel

Miguel Ojeda

unread,
Jul 20, 2025, 6:57:54 PM7/20/25
to Tamir Duberstein, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Brendan Higgins, David Gow, Rae Moar, linux-k...@vger.kernel.org, kuni...@googlegroups.com, rust-fo...@vger.kernel.org, linux-...@vger.kernel.org
On Thu, May 29, 2025 at 3:15 PM Tamir Duberstein <tam...@gmail.com> wrote:
>
> Please see individual commit messages.
>
> Signed-off-by: Tamir Duberstein <tam...@gmail.com>

Applied to `rust-next` -- thanks everyone!

[ Reworded title. - Miguel ]

[ Kept newlines using `writeln!`. Used new message from Tamir. Reworded
title. - Miguel ]

Cheers,
Miguel

Tamir Duberstein

unread,
Jul 20, 2025, 7:02:23 PM7/20/25
to Miguel Ojeda, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Brendan Higgins, David Gow, Rae Moar, linux-k...@vger.kernel.org, kuni...@googlegroups.com, rust-fo...@vger.kernel.org, linux-...@vger.kernel.org
On Sun, Jul 20, 2025 at 6:20 PM Miguel Ojeda
<miguel.oje...@gmail.com> wrote:
>
> On Thu, May 29, 2025 at 3:15 PM Tamir Duberstein <tam...@gmail.com> wrote:
> >
> > + write!(&mut candidates, " {path:?}").unwrap();
>
> I assume this was supposed to be `writeln!`; otherwise, we lose the
> newlines and the indent does not make much sense.

Duh, yes, that's right.

> I will fix it when applying.

Thank you!
Reply all
Reply to author
Forward
0 new messages