rust: doctest: fix incorrect pattern in replacement

The `-> Result<(), impl core::fmt::Debug>` string is generated by rustdoc
and by adding "::" into the string it no longer finds anything, making
the line useless.

Remove the "::" in the pattern. Omit it in the replacement too, for
consistency with upstream rustdoc.

Fixes: de7cd3e4d6 ("rust: use absolute paths in macros referencing core and kernel")
Signed-off-by: Gary Guo <gary@garyguo.net>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260616132559.2245814-1-gary@kernel.org
[ Added link in code comment to `rustdoc`'s 1.87 PR that fully qualified
  it for context. Improved comments for consistency. Reworded to drop
  changelog and to fix typo. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
This commit is contained in:
Gary Guo 2026-06-16 14:25:56 +01:00 committed by Miguel Ojeda
parent f09d2312d1
commit ac4d1caa82

View File

@ -28,7 +28,7 @@ fn main() {
//
// ```
// fn main() { #[allow(non_snake_case)] fn _doctest_main_rust_kernel_file_rs_28_0() {
// fn main() { #[allow(non_snake_case)] fn _doctest_main_rust_kernel_file_rs_37_0() -> Result<(), impl ::core::fmt::Debug> {
// fn main() { #[allow(non_snake_case)] fn _doctest_main_rust_kernel_file_rs_37_0() -> Result<(), impl core::fmt::Debug> {
// ```
//
// It should be unlikely that doctest code matches such lines (when code is formatted properly).
@ -47,12 +47,16 @@ fn main() {
})
.expect("No test function found in `rustdoc`'s output.");
// Qualify `Result` to avoid the collision with our own `Result` coming from the prelude.
// Replicate `rustdoc` 1.87+ behaviour [1] by fully qualifying `Result` to avoid the collision
// with our own `Result` coming from the prelude.
//
// [1]: https://github.com/rust-lang/rust/pull/137807
//
// TODO: Remove this when MSRV is bumped above 1.87.
let body = body.replace(
&format!("{rustdoc_function_name}() -> Result<(), impl ::core::fmt::Debug> {{"),
&format!(
"{rustdoc_function_name}() -> ::core::result::Result<(), impl ::core::fmt::Debug> {{"
),
&format!("{rustdoc_function_name}() -> Result<(), impl core::fmt::Debug> {{"),
// This intentionally does not use absolute paths to match `rustdoc` 1.87 behaviour.
&format!("{rustdoc_function_name}() -> core::result::Result<(), impl core::fmt::Debug> {{"),
);
// For tests that get generated with `Result`, like above, `rustdoc` generates an `unwrap()` on