Skip to content

Allow storing format_args!() in variable #140748

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

m-ou-se
Copy link
Member

@m-ou-se m-ou-se commented May 7, 2025

Fixes #92698

Tracking issue for super let: #139076

This change allows:

let name = "world";
let f = format_args!("hello {name}!");

println!("{f}");

This will need an FCP.

This implementation makes use of super let, which is unstable and might not exist in the future in its current form. However, it is entirely reasonable to assume future Rust will always have a way of expressing temporary lifetimes like this, since the (stable) pin!() macro needs this. (This was also the motivation for merging #139114.)

Note

This PR causes many subtle changes in diagnostics output. Most of those are good. Some of those are bad. I've collected all the bad ones in the last commit. Those still need fixing. Marking this PR as draft.

(This is a second version of #139135)

@m-ou-se m-ou-se added T-lang Relevant to the language team, which will review and decide on the PR/issue. T-libs-api Relevant to the library API team, which will review and decide on the PR/issue. needs-fcp This change is insta-stable, so needs a completed FCP to proceed. A-fmt Area: `core::fmt` labels May 7, 2025
@rustbot rustbot added A-tidy Area: The tidy tool S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels May 7, 2025
@m-ou-se m-ou-se removed T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) A-tidy Area: The tidy tool labels May 7, 2025
m-ou-se added 3 commits May 7, 2025 18:04
This uses `super let` to allow

    let f = format_args!("Hello {}", world);
    println!("{f}");

to work.
We no longer error in this case!
m-ou-se added 6 commits May 7, 2025 18:07
This message is no longer generated.

This is probably a good thing. The relevant span is entirely in user
code, and "format_args_nl" is an implementation detail with a name that
isn't even public.
These still need to be fixed!
@m-ou-se m-ou-se force-pushed the super-format-args3 branch from 4971602 to d261de6 Compare May 7, 2025 16:08
@rustbot rustbot added A-tidy Area: The tidy tool T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels May 7, 2025
@m-ou-se m-ou-se removed T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) A-tidy Area: The tidy tool labels May 7, 2025
@m-ou-se
Copy link
Member Author

m-ou-se commented May 7, 2025

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label May 7, 2025
@bors
Copy link
Collaborator

bors commented May 7, 2025

⌛ Trying commit d261de6 with merge beb8d4e...

bors added a commit to rust-lang-ci/rust that referenced this pull request May 7, 2025
 Allow storing format_args!() in variable

Fixes rust-lang#92698

Tracking issue for super let: rust-lang#139076

This change allows:

```rust
let name = "world";
let f = format_args!("hello {name}!");

println!("{f}");
```

This will need an FCP.

This implementation makes use of `super let`, which is unstable and might not exist in the future in its current form. However, it is entirely reasonable to assume future Rust will always have _a_ way of expressing temporary lifetimes like this, since the (stable) `pin!()` macro needs this. (This was also the motivation for merging rust-lang#139114.)

> [!NOTE]
> This PR causes many subtle changes in diagnostics output. Most of those are good. Some of those are bad. I've collected all the bad ones in the last commit. Those still need fixing. Marking this PR as draft.

(This is a second version of rust-lang#139135)
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-tools failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
tests/ui/ref_option/ref_option.all.fixed ... ok
tests/ui/non_std_lazy_static/non_std_lazy_static_fixable.fixed ... ok

FAILED TEST: tests/ui/format.rs
command: CLIPPY_CONF_DIR="tests" RUSTC_ICE="0" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/clippy-driver" "--error-format=json" "--emit=metadata" "-Aunused" "-Ainternal_features" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Dwarnings" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps" "--extern=clippy_config=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_config-2c93a398ed1b3bf2.rlib" "--extern=clippy_lints=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_lints-dd1f7a63ab09d2c0.rlib" "--extern=clippy_utils=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_utils-04d95fc1b4230011.rlib" "--extern=futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libfutures-6d7a81bc2763ac5f.rlib" "--extern=if_chain=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libif_chain-d494e6b7c1a6e89b.rlib" "--extern=itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libitertools-d4e4179d28fd4b4c.rlib" "--extern=parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libparking_lot-c60316d1e8e896b7.rlib" "--extern=quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libquote-07dd62da2c3e7a6e.rlib" "--extern=regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libregex-75c78277780d7d9c.rlib" "--extern=serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libserde-cc2bae94717512c6.rlib" "--extern=serde_derive=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde_derive-9431a02aee605a39.so" "--extern=syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libsyn-1cf89851da371bc7.rlib" "--extern=tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libtokio-ab47290081742c1b.rlib" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/release/deps" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/ui_test/0/tests/ui" "tests/ui/format.rs" "--edition" "2024"

error: actual output differed from expected
Execute `./x test src/tools/clippy --bless` to update `tests/ui/format.stderr` to the actual output
--- tests/ui/format.stderr
+++ <stderr output>
 error: useless use of `format!`
   --> tests/ui/format.rs:20:5
... 43 lines skipped ...
    |
 LL |     format!("{}", "foo");
-   |     ^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"foo".to_string()`
+   |     ^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `("foo").to_string()`
 
 error: useless use of `format!`
   --> tests/ui/format.rs:44:5
    |
 LL |     format!("{}", arg);
-   |     ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `arg.to_string()`
+   |     ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(arg).to_string()`
 
 error: useless use of `format!`
   --> tests/ui/format.rs:75:5
    |
 LL |     format!("{}", 42.to_string());
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `42.to_string()`
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(42.to_string()).to_string()`
 
 error: useless use of `format!`
   --> tests/ui/format.rs:78:5
    |
 LL |     format!("{}", x.display().to_string());
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `x.display().to_string()`
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(x.display().to_string()).to_string()`
 
 error: useless use of `format!`
   --> tests/ui/format.rs:83:18
    |
 LL |     let _ = Some(format!("{}", a + "bar"));
-   |                  ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `a + "bar"`
+   |                  ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(a + "bar").to_string()`
 
 error: useless use of `format!`
... 7 lines skipped ...
    |
 LL |     let _ = format!("{x}");
-   |             ^^^^^^^^^^^^^^ help: consider using `.to_string()`: `x.to_string()`
+   |             ^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(x).to_string()`
 
 error: useless use of `format!`
   --> tests/ui/format.rs:98:13
    |
 LL |     let _ = format!("{y}", y = x);
-   |             ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `x.to_string()`
+   |             ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(x).to_string()`
 
 error: useless use of `format!`
   --> tests/ui/format.rs:103:13
    |
 LL |     let _ = format!("{abc}");
-   |             ^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `abc.to_string()`
+   |             ^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(abc).to_string()`
 
 error: useless use of `format!`
   --> tests/ui/format.rs:106:13
    |
 LL |     let _ = format!("{xx}");
-   |             ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `xx.to_string()`
+   |             ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(xx).to_string()`
 
 error: aborting due to 15 previous errors
 

Full unnormalized output:
error: useless use of `format!`
##[error]  --> tests/ui/format.rs:20:5
   |
LL |     format!("foo");
   |     ^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"foo".to_string()`
   |
   = note: `-D clippy::useless-format` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::useless_format)]`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:22:5
   |
LL |     format!("{{}}");
   |     ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"{}".to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:24:5
   |
LL |     format!("{{}} abc {{}}");
   |     ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"{} abc {}".to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:26:5
   |
LL | /     format!(
LL | |
LL | |         r##"foo {{}}
LL | | " bar"##
LL | |     );
   | |_____^
   |
help: consider using `.to_string()`
   |
LL ~     r##"foo {}
LL ~ " bar"##.to_string();
   |

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:32:13
   |
LL |     let _ = format!("");
   |             ^^^^^^^^^^^ help: consider using `String::new()`: `String::new()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:35:5
   |
LL |     format!("{}", "foo");
   |     ^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `("foo").to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:44:5
   |
LL |     format!("{}", arg);
   |     ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(arg).to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:75:5
   |
LL |     format!("{}", 42.to_string());
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(42.to_string()).to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:78:5
   |
LL |     format!("{}", x.display().to_string());
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(x.display().to_string()).to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:83:18
   |
LL |     let _ = Some(format!("{}", a + "bar"));
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(a + "bar").to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:88:22
   |
LL |     let _s: String = format!("{}", &*v.join("\n"));
   |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(&*v.join("\n")).to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:95:13
   |
LL |     let _ = format!("{x}");
   |             ^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(x).to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:98:13
   |
LL |     let _ = format!("{y}", y = x);
   |             ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(x).to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:103:13
   |
LL |     let _ = format!("{abc}");
   |             ^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(abc).to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:106:13
   |
LL |     let _ = format!("{xx}");
   |             ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(xx).to_string()`

error: aborting due to 15 previous errors



full stderr:
error: useless use of `format!`
##[error]  --> tests/ui/format.rs:20:5
   |
LL |     format!("foo");
   |     ^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"foo".to_string()`
   |
   = note: `-D clippy::useless-format` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::useless_format)]`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:22:5
   |
LL |     format!("{{}}");
   |     ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"{}".to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:24:5
   |
LL |     format!("{{}} abc {{}}");
   |     ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"{} abc {}".to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:26:5
   |
LL | /     format!(
LL | |
LL | |         r##"foo {{}}
LL | | " bar"##
LL | |     );
   | |_____^
   |
help: consider using `.to_string()`
   |
LL ~     r##"foo {}
LL ~ " bar"##.to_string();
   |

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:32:13
   |
LL |     let _ = format!("");
   |             ^^^^^^^^^^^ help: consider using `String::new()`: `String::new()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:35:5
   |
LL |     format!("{}", "foo");
   |     ^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `("foo").to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:44:5
   |
LL |     format!("{}", arg);
   |     ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(arg).to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:75:5
   |
LL |     format!("{}", 42.to_string());
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(42.to_string()).to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:78:5
   |
LL |     format!("{}", x.display().to_string());
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(x.display().to_string()).to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:83:18
   |
LL |     let _ = Some(format!("{}", a + "bar"));
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(a + "bar").to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:88:22
   |
LL |     let _s: String = format!("{}", &*v.join("\n"));
   |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(&*v.join("\n")).to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:95:13
   |
LL |     let _ = format!("{x}");
   |             ^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(x).to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:98:13
   |
LL |     let _ = format!("{y}", y = x);
   |             ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(x).to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:103:13
   |
LL |     let _ = format!("{abc}");
   |             ^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(abc).to_string()`

error: useless use of `format!`
##[error]  --> tests/ui/format.rs:106:13
   |
LL |     let _ = format!("{xx}");
   |             ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `(xx).to_string()`

error: aborting due to 15 previous errors


full stdout:



FAILED TEST: tests/ui/format_args.rs
command: CLIPPY_CONF_DIR="tests" RUSTC_ICE="0" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/clippy-driver" "--error-format=json" "--emit=metadata" "-Aunused" "-Ainternal_features" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Dwarnings" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps" "--extern=clippy_config=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_config-2c93a398ed1b3bf2.rlib" "--extern=clippy_lints=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_lints-dd1f7a63ab09d2c0.rlib" "--extern=clippy_utils=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_utils-04d95fc1b4230011.rlib" "--extern=futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libfutures-6d7a81bc2763ac5f.rlib" "--extern=if_chain=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libif_chain-d494e6b7c1a6e89b.rlib" "--extern=itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libitertools-d4e4179d28fd4b4c.rlib" "--extern=parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libparking_lot-c60316d1e8e896b7.rlib" "--extern=quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libquote-07dd62da2c3e7a6e.rlib" "--extern=regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libregex-75c78277780d7d9c.rlib" "--extern=serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libserde-cc2bae94717512c6.rlib" "--extern=serde_derive=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde_derive-9431a02aee605a39.so" "--extern=syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libsyn-1cf89851da371bc7.rlib" "--extern=tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libtokio-ab47290081742c1b.rlib" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/release/deps" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/ui_test/0/tests/ui" "tests/ui/format_args.rs" "--edition" "2024"

error: actual output differed from expected
Execute `./x test src/tools/clippy --bless` to update `tests/ui/format_args.stderr` to the actual output
--- tests/ui/format_args.stderr
+++ <stderr output>
---
-   |
-LL |     println!("error: something failed at {}", Location::caller().to_string());
-   |                                                                 ^^^^^^^^^^^^ help: remove this
-
-error: `to_string` applied to a type that implements `Display` in `eprint!` args
-  --> tests/ui/format_args.rs:95:64
-   |
-LL |     eprint!("error: something failed at {}", Location::caller().to_string());
-   |                                                                ^^^^^^^^^^^^ help: remove this
-
---
-
-error: `to_string` applied to a type that implements `Display` in `assert!` args
-  --> tests/ui/format_args.rs:101:70
-   |
-LL |     assert!(true, "error: something failed at {}", Location::caller().to_string());
-   |                                                                      ^^^^^^^^^^^^ help: remove this
-
-error: `to_string` applied to a type that implements `Display` in `assert_eq!` args
-  --> tests/ui/format_args.rs:103:73
-   |
-LL |     assert_eq!(0, 0, "error: something failed at {}", Location::caller().to_string());
-   |                                                                         ^^^^^^^^^^^^ help: remove this
-
-error: `to_string` applied to a type that implements `Display` in `assert_ne!` args
-  --> tests/ui/format_args.rs:105:73
-   |
-LL |     assert_ne!(0, 0, "error: something failed at {}", Location::caller().to_string());
-   |                                                                         ^^^^^^^^^^^^ help: remove this
-
-error: `to_string` applied to a type that implements `Display` in `panic!` args
-  --> tests/ui/format_args.rs:107:63
-   |
-LL |     panic!("error: something failed at {}", Location::caller().to_string());
-   |                                                               ^^^^^^^^^^^^ help: remove this
-
-error: `to_string` applied to a type that implements `Display` in `println!` args
-  --> tests/ui/format_args.rs:109:20
-   |
-LL |     println!("{}", X(1).to_string());
-   |                    ^^^^^^^^^^^^^^^^ help: use this: `*X(1)`
-
-error: `to_string` applied to a type that implements `Display` in `println!` args
-  --> tests/ui/format_args.rs:111:20
-   |
-LL |     println!("{}", Y(&X(1)).to_string());
-   |                    ^^^^^^^^^^^^^^^^^^^^ help: use this: `***Y(&X(1))`
-
-error: `to_string` applied to a type that implements `Display` in `println!` args
-  --> tests/ui/format_args.rs:113:24
-   |
-LL |     println!("{}", Z(1).to_string());
-   |                        ^^^^^^^^^^^^ help: remove this
-
-error: `to_string` applied to a type that implements `Display` in `println!` args
-  --> tests/ui/format_args.rs:115:20
-   |
-LL |     println!("{}", x.to_string());
-   |                    ^^^^^^^^^^^^^ help: use this: `**x`
-
-error: `to_string` applied to a type that implements `Display` in `println!` args
-  --> tests/ui/format_args.rs:117:20
-   |
-LL |     println!("{}", x_ref.to_string());
-   |                    ^^^^^^^^^^^^^^^^^ help: use this: `***x_ref`
-
-error: `to_string` applied to a type that implements `Display` in `println!` args
   --> tests/ui/format_args.rs:120:39
    |
 LL |     println!("{foo}{bar}", foo = "foo".to_string(), bar = "bar");
    |                                       ^^^^^^^^^^^^ help: remove this
+   |
+   = note: `-D clippy::to-string-in-format-args` implied by `-D warnings`
+   = help: to override `-D warnings` add `#[allow(clippy::to_string_in_format_args)]`
 
 error: `to_string` applied to a type that implements `Display` in `println!` args
... 15 lines skipped ...
    |                                                    ^^^^^^^^^^^^ help: remove this
 
-error: `to_string` applied to a type that implements `Display` in `println!` args
-  --> tests/ui/format_args.rs:128:37
-   |
-LL |     println!("{}", my_other_macro!().to_string());
-   |                                     ^^^^^^^^^^^^ help: remove this
-
-error: `to_string` applied to a type that implements `Display` in `print!` args
-  --> tests/ui/format_args.rs:141:37
-   |
-LL |     print!("{}", (Location::caller().to_string()));
-   |                                     ^^^^^^^^^^^^ help: remove this
-
-error: `to_string` applied to a type that implements `Display` in `print!` args
-  --> tests/ui/format_args.rs:143:39
-   |
-LL |     print!("{}", ((Location::caller()).to_string()));
-   |                                       ^^^^^^^^^^^^ help: remove this
-
 error: `to_string` applied to a type that implements `Display` in `format!` args
   --> tests/ui/format_args.rs:172:38
... 2 lines skipped ...
    |                                      ^^^^^^^^^^^^ help: remove this
 
-error: `to_string` applied to a type that implements `Display` in `println!` args
-  --> tests/ui/format_args.rs:187:24
-   |
-LL |         println!("{}", original[..10].to_string());
-   |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use this: `&original[..10]`
+error: aborting due to 5 previous errors
 
-error: aborting due to 26 previous errors
-

Full unnormalized output:
error: `to_string` applied to a type that implements `Display` in `println!` args
##[error]  --> tests/ui/format_args.rs:120:39
   |
LL |     println!("{foo}{bar}", foo = "foo".to_string(), bar = "bar");
   |                                       ^^^^^^^^^^^^ help: remove this
   |
   = note: `-D clippy::to-string-in-format-args` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::to_string_in_format_args)]`

error: `to_string` applied to a type that implements `Display` in `println!` args
##[error]  --> tests/ui/format_args.rs:122:52
   |
LL |     println!("{foo}{bar}", foo = "foo", bar = "bar".to_string());
   |                                                    ^^^^^^^^^^^^ help: remove this

error: `to_string` applied to a type that implements `Display` in `println!` args
##[error]  --> tests/ui/format_args.rs:124:39
   |
LL |     println!("{foo}{bar}", bar = "bar".to_string(), foo = "foo");
   |                                       ^^^^^^^^^^^^ help: remove this

error: `to_string` applied to a type that implements `Display` in `println!` args
##[error]  --> tests/ui/format_args.rs:126:52
   |
LL |     println!("{foo}{bar}", bar = "bar", foo = "foo".to_string());
   |                                                    ^^^^^^^^^^^^ help: remove this

error: `to_string` applied to a type that implements `Display` in `format!` args
##[error]  --> tests/ui/format_args.rs:172:38
   |
LL |         let x = format!("{} {}", a, b.to_string());
   |                                      ^^^^^^^^^^^^ help: remove this

error: aborting due to 5 previous errors


---
full stderr:
error: `to_string` applied to a type that implements `Display` in `println!` args
##[error]  --> tests/ui/format_args.rs:120:39
   |
LL |     println!("{foo}{bar}", foo = "foo".to_string(), bar = "bar");
   |                                       ^^^^^^^^^^^^ help: remove this
   |
   = note: `-D clippy::to-string-in-format-args` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::to_string_in_format_args)]`

error: `to_string` applied to a type that implements `Display` in `println!` args
##[error]  --> tests/ui/format_args.rs:122:52
   |
LL |     println!("{foo}{bar}", foo = "foo", bar = "bar".to_string());
   |                                                    ^^^^^^^^^^^^ help: remove this

error: `to_string` applied to a type that implements `Display` in `println!` args
##[error]  --> tests/ui/format_args.rs:124:39
   |
LL |     println!("{foo}{bar}", bar = "bar".to_string(), foo = "foo");
   |                                       ^^^^^^^^^^^^ help: remove this

error: `to_string` applied to a type that implements `Display` in `println!` args
##[error]  --> tests/ui/format_args.rs:126:52
   |
LL |     println!("{foo}{bar}", bar = "bar", foo = "foo".to_string());
   |                                                    ^^^^^^^^^^^^ help: remove this

error: `to_string` applied to a type that implements `Display` in `format!` args
##[error]  --> tests/ui/format_args.rs:172:38
   |
LL |         let x = format!("{} {}", a, b.to_string());
   |                                      ^^^^^^^^^^^^ help: remove this

error: aborting due to 5 previous errors


full stdout:



FAILED TEST: tests/ui/manual_inspect.rs
command: CLIPPY_CONF_DIR="tests" RUSTC_ICE="0" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/clippy-driver" "--error-format=json" "--emit=metadata" "-Aunused" "-Ainternal_features" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Dwarnings" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps" "--extern=clippy_config=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_config-2c93a398ed1b3bf2.rlib" "--extern=clippy_lints=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_lints-dd1f7a63ab09d2c0.rlib" "--extern=clippy_utils=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_utils-04d95fc1b4230011.rlib" "--extern=futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libfutures-6d7a81bc2763ac5f.rlib" "--extern=if_chain=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libif_chain-d494e6b7c1a6e89b.rlib" "--extern=itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libitertools-d4e4179d28fd4b4c.rlib" "--extern=parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libparking_lot-c60316d1e8e896b7.rlib" "--extern=quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libquote-07dd62da2c3e7a6e.rlib" "--extern=regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libregex-75c78277780d7d9c.rlib" "--extern=serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libserde-cc2bae94717512c6.rlib" "--extern=serde_derive=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde_derive-9431a02aee605a39.so" "--extern=syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libsyn-1cf89851da371bc7.rlib" "--extern=tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libtokio-ab47290081742c1b.rlib" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/release/deps" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/ui_test/0/tests/ui" "tests/ui/manual_inspect.rs" "--edition" "2024"

error: actual output differed from expected
Execute `./x test src/tools/clippy --bless` to update `tests/ui/manual_inspect.stderr` to the actual output
--- tests/ui/manual_inspect.stderr
+++ <stderr output>
---
-LL | |         })
-LL | |         .count();
-   | |________________^
-   |
-   = help: make sure you did not confuse `map` with `filter`, `for_each` or `inspect`
-   = note: `-D clippy::suspicious-map` implied by `-D warnings`
-   = help: to override `-D warnings` add `#[allow(clippy::suspicious_map)]`
-
 error: using `map` over `inspect`
   --> tests/ui/manual_inspect.rs:170:10
... 22 lines skipped ...
    |
---
   = note: `-D clippy::manual-inspect` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::manual_inspect)]`
help: try
   |
LL ~     let _ = Some(0).inspect(|&x| {
LL |
LL ~         println!("{}", x);
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:11:21
   |
LL |     let _ = Some(0).map(|x| {
   |                     ^^^
   |
help: try
   |
LL ~     let _ = Some(0).inspect(|&x| {
LL |
LL ~         println!("{x}");
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:17:21
   |
LL |     let _ = Some(0).map(|x| {
   |                     ^^^
   |
help: try
   |
LL ~     let _ = Some(0).inspect(|&x| {
LL |
LL ~         println!("{}", x * 5 + 1);
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:23:21
   |
LL |     let _ = Some(0).map(|x| {
   |                     ^^^
   |
help: try
   |
LL ~     let _ = Some(0).inspect(|&x| {
LL |
LL |         if x == 0 {
LL |             panic!();
LL ~         }
   |
---
   |                     ^^^
   |
help: try
   |
LL ~     let _ = Some(0).inspect(|&x| {
LL |
...
LL |             panic!();
LL ~         }
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:83:41
   |
LL |     let _ = Some((String::new(), 0u32)).map(|x| {
   |                                         ^^^
   |
help: try
   |
LL ~     let _ = Some((String::new(), 0u32)).inspect(|x| {
LL |
...
LL |             panic!();
LL ~         }
   |
---
   |                                 ^^^
   |
help: try
   |
LL ~     let _ = Some(String::new()).inspect(|x| {
LL |
LL |         if x.is_empty() {
LL |             let _ = || {
LL ~                 let _x = x;
LL |             };
LL ~             return ;
LL |         }
LL ~         println!("test");
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:122:21
   |
LL |     let _ = Some(0).map(|x| {
   |                     ^^^
   |
help: try
   |
LL ~     let _ = Some(0).inspect(|&x| {
LL |
...
LL |             panic!();
LL ~         }
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:138:46
   |
LL |         let _ = Some(Cell2(Cell::new(0u32))).map(|x| {
   |                                              ^^^
   |
help: try
   |
LL ~         let _ = Some(Cell2(Cell::new(0u32))).inspect(|x| {
LL |
LL ~             x.0.set(1);
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:155:34
   |
LL |     let _: Result<_, ()> = Ok(0).map(|x| {
   |                                  ^^^
   |
help: try
   |
LL ~     let _: Result<_, ()> = Ok(0).inspect(|&x| {
LL |
LL ~         println!("{}", x);
   |

error: using `map_err` over `inspect_err`
##[error]  --> tests/ui/manual_inspect.rs:161:35
   |
LL |     let _: Result<(), _> = Err(0).map_err(|x| {
   |                                   ^^^^^^^
   |
help: try
   |
LL ~     let _: Result<(), _> = Err(0).inspect_err(|&x| {
LL |
LL ~         println!("{}", x);
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:170:10
   |
LL |         .map(|x| {
   |          ^^^
   |
help: try
   |
LL ~         .inspect(|&x| {
LL |
LL ~             println!("{}", x);
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:203:30
   |
LL |     if let Some(x) = Some(1).map(|x| { println!("{x}");
   |                              ^^^
   |
help: try
   |
LL ~     if let Some(x) = Some(1).inspect(|&x| { println!("{x}");
LL |         // Do not collapse code into this comment
LL ~          }) {
   |

error: aborting due to 13 previous errors
---
   = note: `-D clippy::manual-inspect` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::manual_inspect)]`
help: try
   |
LL ~     let _ = Some(0).inspect(|&x| {
LL |
LL ~         println!("{}", x);
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:11:21
   |
LL |     let _ = Some(0).map(|x| {
   |                     ^^^
   |
help: try
   |
LL ~     let _ = Some(0).inspect(|&x| {
LL |
LL ~         println!("{x}");
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:17:21
   |
LL |     let _ = Some(0).map(|x| {
   |                     ^^^
   |
help: try
   |
LL ~     let _ = Some(0).inspect(|&x| {
LL |
LL ~         println!("{}", x * 5 + 1);
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:23:21
   |
LL |     let _ = Some(0).map(|x| {
   |                     ^^^
   |
help: try
   |
LL ~     let _ = Some(0).inspect(|&x| {
LL |
LL |         if x == 0 {
LL |             panic!();
LL ~         }
   |
---
   |                     ^^^
   |
help: try
   |
LL ~     let _ = Some(0).inspect(|&x| {
LL |
...
LL |             panic!();
LL ~         }
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:83:41
   |
LL |     let _ = Some((String::new(), 0u32)).map(|x| {
   |                                         ^^^
   |
help: try
   |
LL ~     let _ = Some((String::new(), 0u32)).inspect(|x| {
LL |
...
LL |             panic!();
LL ~         }
   |
---
   |                                 ^^^
   |
help: try
   |
LL ~     let _ = Some(String::new()).inspect(|x| {
LL |
LL |         if x.is_empty() {
LL |             let _ = || {
LL ~                 let _x = x;
LL |             };
LL ~             return ;
LL |         }
LL ~         println!("test");
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:122:21
   |
LL |     let _ = Some(0).map(|x| {
   |                     ^^^
   |
help: try
   |
LL ~     let _ = Some(0).inspect(|&x| {
LL |
...
LL |             panic!();
LL ~         }
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:138:46
   |
LL |         let _ = Some(Cell2(Cell::new(0u32))).map(|x| {
   |                                              ^^^
   |
help: try
   |
LL ~         let _ = Some(Cell2(Cell::new(0u32))).inspect(|x| {
LL |
LL ~             x.0.set(1);
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:155:34
   |
LL |     let _: Result<_, ()> = Ok(0).map(|x| {
   |                                  ^^^
   |
help: try
   |
LL ~     let _: Result<_, ()> = Ok(0).inspect(|&x| {
LL |
LL ~         println!("{}", x);
   |

error: using `map_err` over `inspect_err`
##[error]  --> tests/ui/manual_inspect.rs:161:35
   |
LL |     let _: Result<(), _> = Err(0).map_err(|x| {
   |                                   ^^^^^^^
   |
help: try
   |
LL ~     let _: Result<(), _> = Err(0).inspect_err(|&x| {
LL |
LL ~         println!("{}", x);
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:170:10
   |
LL |         .map(|x| {
   |          ^^^
   |
help: try
   |
LL ~         .inspect(|&x| {
LL |
LL ~             println!("{}", x);
   |

error: using `map` over `inspect`
##[error]  --> tests/ui/manual_inspect.rs:203:30
   |
LL |     if let Some(x) = Some(1).map(|x| { println!("{x}");
   |                              ^^^
   |
help: try
   |
LL ~     if let Some(x) = Some(1).inspect(|&x| { println!("{x}");
LL |         // Do not collapse code into this comment
LL ~          }) {
   |

error: aborting due to 13 previous errors


full stdout:



FAILED TEST: tests/ui/unnecessary_os_str_debug_formatting.rs
command: CLIPPY_CONF_DIR="tests" RUSTC_ICE="0" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/clippy-driver" "--error-format=json" "--emit=metadata" "-Aunused" "-Ainternal_features" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Dwarnings" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps" "--extern=clippy_config=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_config-2c93a398ed1b3bf2.rlib" "--extern=clippy_lints=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_lints-dd1f7a63ab09d2c0.rlib" "--extern=clippy_utils=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_utils-04d95fc1b4230011.rlib" "--extern=futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libfutures-6d7a81bc2763ac5f.rlib" "--extern=if_chain=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libif_chain-d494e6b7c1a6e89b.rlib" "--extern=itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libitertools-d4e4179d28fd4b4c.rlib" "--extern=parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libparking_lot-c60316d1e8e896b7.rlib" "--extern=quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libquote-07dd62da2c3e7a6e.rlib" "--extern=regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libregex-75c78277780d7d9c.rlib" "--extern=serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libserde-cc2bae94717512c6.rlib" "--extern=serde_derive=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde_derive-9431a02aee605a39.so" "--extern=syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libsyn-1cf89851da371bc7.rlib" "--extern=tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libtokio-ab47290081742c1b.rlib" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/release/deps" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/ui_test/0/tests/ui" "tests/ui/unnecessary_os_str_debug_formatting.rs" "--edition" "2024"

error: no output was emitted
Execute `./x test src/tools/clippy --bless` to remove `tests/ui/unnecessary_os_str_debug_formatting.stderr`

error: diagnostic code `clippy::unnecessary_debug_formatting` not found on line 15
---

error: diagnostic code `clippy::unnecessary_debug_formatting` not found on line 18
##[error]  --> tests/ui/unnecessary_os_str_debug_formatting.rs:18:33
   |
18 |     println!("{os_str:?}"); //~ unnecessary_debug_formatting
   |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected because of this pattern
   |

error: diagnostic code `clippy::unnecessary_debug_formatting` not found on line 19
##[error]  --> tests/ui/unnecessary_os_str_debug_formatting.rs:19:36
   |
19 |     println!("{os_string:?}"); //~ unnecessary_debug_formatting
   |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected because of this pattern
   |

error: diagnostic code `clippy::unnecessary_debug_formatting` not found on line 21
##[error]  --> tests/ui/unnecessary_os_str_debug_formatting.rs:21:50
   |
21 |     let _: String = format!("{:?}", os_str); //~ unnecessary_debug_formatting
   |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected because of this pattern
   |

error: diagnostic code `clippy::unnecessary_debug_formatting` not found on line 22
##[error]  --> tests/ui/unnecessary_os_str_debug_formatting.rs:22:53
   |
22 |     let _: String = format!("{:?}", os_string); //~ unnecessary_debug_formatting
   |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected because of this pattern
   |

full stderr:

full stdout:



FAILED TEST: tests/ui/unnecessary_iter_cloned.rs
command: CLIPPY_CONF_DIR="tests" RUSTC_ICE="0" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/clippy-driver" "--error-format=json" "--emit=metadata" "-Aunused" "-Ainternal_features" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Dwarnings" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps" "--extern=clippy_config=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_config-2c93a398ed1b3bf2.rlib" "--extern=clippy_lints=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_lints-dd1f7a63ab09d2c0.rlib" "--extern=clippy_utils=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_utils-04d95fc1b4230011.rlib" "--extern=futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libfutures-6d7a81bc2763ac5f.rlib" "--extern=if_chain=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libif_chain-d494e6b7c1a6e89b.rlib" "--extern=itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libitertools-d4e4179d28fd4b4c.rlib" "--extern=parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libparking_lot-c60316d1e8e896b7.rlib" "--extern=quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libquote-07dd62da2c3e7a6e.rlib" "--extern=regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libregex-75c78277780d7d9c.rlib" "--extern=serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libserde-cc2bae94717512c6.rlib" "--extern=serde_derive=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde_derive-9431a02aee605a39.so" "--extern=syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libsyn-1cf89851da371bc7.rlib" "--extern=tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libtokio-ab47290081742c1b.rlib" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/release/deps" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/ui_test/0/tests/ui" "tests/ui/unnecessary_iter_cloned.rs" "--edition" "2024"

error: actual output differed from expected
Execute `./x test src/tools/clippy --bless` to update `tests/ui/unnecessary_iter_cloned.stderr` to the actual output
--- tests/ui/unnecessary_iter_cloned.stderr
+++ <stderr output>
---
 
-error: unnecessary use of `cloned`
-  --> tests/ui/unnecessary_iter_cloned.rs:179:18
-   |
-LL |         for c in v.iter().cloned() {
-   |                  ^^^^^^^^^^^^^^^^^ help: remove any references to the binding: `v.iter()`
 
-error: unnecessary use of `cloned`
-  --> tests/ui/unnecessary_iter_cloned.rs:188:18
-   |
-LL |         for c in v.iter().cloned() {
-   |                  ^^^^^^^^^^^^^^^^^
-   |
-help: remove any references to the binding
-   |
-LL ~         for c in v.iter() {
-LL |
-LL |
-LL ~             let ref_c = c;
-   |
+thread 'rustc' panicked at /checkout/compiler/rustc_errors/src/diagnostic.rs:926:9:
+assertion `left == right` failed: Span must not be empty and have no suggestion
+  left: Some(SubstitutionPart { span: tests/ui/unnecessary_iter_cloned.rs:182:24: 182:24 (#0), snippet: "" })
+ right: None
+stack backtrace:
+   0:     0x7fa6fdedbe60 - <<std[722de03b977f82e2]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[b85b81897dd7c607]::fmt::Display>::fmt
+   1:     0x7fa6fdf383bf - core[b85b81897dd7c607]::fmt::write
+   2:     0x7fa6fdeced49 - <std[722de03b977f82e2]::sys::stdio::unix::Stderr as std[722de03b977f82e2]::io::Write>::write_fmt
+   3:     0x7fa6fdedbd02 - <std[722de03b977f82e2]::sys::backtrace::BacktraceLock>::print
+   4:     0x7fa6fdee0508 - std[722de03b977f82e2]::panicking::default_hook::{closure#0}
+   5:     0x7fa6fdee02a2 - std[722de03b977f82e2]::panicking::default_hook
+   6:     0x7fa6f949af22 - <alloc[8f667485acfd4fc8]::boxed::Box<rustc_driver_impl[5c0983139a933bca]::install_ice_hook::{closure#1}> as core[b85b81897dd7c607]::ops::function::Fn<(&dyn for<'a, 'b> core[b85b81897dd7c607]::ops::function::Fn<(&'a std[722de03b977f82e2]::panic::PanicHookInfo<'b>,), Output = ()> + core[b85b81897dd7c607]::marker::Sync + core[b85b81897dd7c607]::marker::Send, &std[722de03b977f82e2]::panic::PanicHookInfo)>>::call
+   7:     0x7fa6fdee117b - std[722de03b977f82e2]::panicking::rust_panic_with_hook
+   8:     0x7fa6fdee0d7e - std[722de03b977f82e2]::panicking::begin_panic_handler::{closure#0}
+   9:     0x7fa6fdedc479 - std[722de03b977f82e2]::sys::backtrace::__rust_end_short_backtrace::<std[722de03b977f82e2]::panicking::begin_panic_handler::{closure#0}, !>
+  10:     0x7fa6fdee098d - __rustc[210dc653f36a8667]::rust_begin_unwind
+  11:     0x7fa6fdf34000 - core[b85b81897dd7c607]::panicking::panic_fmt
+  12:     0x7fa6fdf3456a - core[b85b81897dd7c607]::panicking::assert_failed_inner
+  13:     0x7fa6fd6e3a8f - core[b85b81897dd7c607]::panicking::assert_failed::<core[b85b81897dd7c607]::option::Option<&rustc_errors[8c94111977c95880]::SubstitutionPart>, core[b85b81897dd7c607]::option::Option<&rustc_errors[8c94111977c95880]::SubstitutionPart>>
+  14:     0x55edf21c8999 - <rustc_errors[8c94111977c95880]::diagnostic::Diag<()>>::multipart_suggestion_with_style::<&str>
+  15:     0x55edf23af504 - <clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, alloc[8f667485acfd4fc8]::string::String, clippy_lints[2d5f372497376e35]::methods::unnecessary_iter_cloned::check_for_loop_iter::{closure#1}>::{closure#0} as core[b85b81897dd7c607]::ops::function::FnOnce<(&mut rustc_errors[8c94111977c95880]::diagnostic::Diag<()>,)>>::call_once::{shim:vtable#0}
+  16:     0x7fa6fd7158b3 - rustc_middle[4a64cfee706b595]::lint::lint_level::lint_level_impl
+  17:     0x55edf237a38a - rustc_middle[4a64cfee706b595]::lint::lint_level::<clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, alloc[8f667485acfd4fc8]::string::String, clippy_lints[2d5f372497376e35]::methods::unnecessary_iter_cloned::check_for_loop_iter::{closure#1}>::{closure#0}>
+  18:     0x55edf2392cc1 - <rustc_lint[96dc6baabd10bd4e]::context::LateContext as rustc_lint[96dc6baabd10bd4e]::context::LintContext>::opt_span_lint::<rustc_span[5de9bfc504d26a6f]::span_encoding::Span, clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, alloc[8f667485acfd4fc8]::string::String, clippy_lints[2d5f372497376e35]::methods::unnecessary_iter_cloned::check_for_loop_iter::{closure#1}>::{closure#0}>
+  19:     0x55edf2202f93 - clippy_lints[2d5f372497376e35]::methods::unnecessary_iter_cloned::check_for_loop_iter
+  20:     0x55edf2462d87 - <clippy_lints[2d5f372497376e35]::methods::Methods as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr
+  21:     0x7fa6fbdfe513 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
+  22:     0x7fa6fbed38fb - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
+  23:     0x7fa6fbdfe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
+  24:     0x7fa6fbed2e1e - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
+  25:     0x7fa6fbdfe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
+  26:     0x7fa6fbed337f - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
+  27:     0x7fa6fbdfe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
+  28:     0x7fa6fbe02582 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_block
+  29:     0x7fa6fbdfe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
+  30:     0x7fa6fbdfc724 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_body
+  31:     0x7fa6fbdffae9 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_fn
+  32:     0x7fa6fbed6323 - rustc_hir[a97542dc954c1f22]::intravisit::walk_item::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
+  33:     0x7fa6fbdf3de4 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_item
+  34:     0x7fa6fbe0163c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_mod
+  35:     0x7fa6fbdf3de4 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_item
+  36:     0x7fa6fbe0163c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_mod
+  37:     0x7fa6fbe05531 - rustc_lint[96dc6baabd10bd4e]::late::late_lint_crate
+  38:     0x7fa6fbd8dbce - rustc_data_structures[6b0c338be68cbdf0]::sync::parallel::serial_join::<rustc_lint[96dc6baabd10bd4e]::late::check_crate::{closure#0}, rustc_lint[96dc6baabd10bd4e]::late::check_crate::{closure#1}, (), ()>
+  39:     0x7fa6fbe05b7b - rustc_lint[96dc6baabd10bd4e]::late::check_crate
+  40:     0x7fa6f96d3fe3 - <rustc_data_structures[6b0c338be68cbdf0]::sync::parallel::ParallelGuard>::run::<(), rustc_interface[7e2780b9127a51f3]::passes::analysis::{closure#0}::{closure#1}::{closure#0}>
+  41:     0x7fa6f9891c51 - <rustc_session[1697b6e1c1bf6b08]::session::Session>::time::<(), rustc_interface[7e2780b9127a51f3]::passes::analysis::{closure#0}>
+  42:     0x7fa6f9820bf2 - rustc_interface[7e2780b9127a51f3]::passes::analysis
+  43:     0x7fa6fc1821f3 - rustc_query_impl[296c58625f4e3441]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[296c58625f4e3441]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4a64cfee706b595]::query::erase::Erased<[u8; 0usize]>>
+  44:     0x7fa6fc0aa0d1 - <rustc_query_impl[296c58625f4e3441]::query_impl::analysis::dynamic_query::{closure#2} as core[b85b81897dd7c607]::ops::function::FnOnce<(rustc_middle[4a64cfee706b595]::ty::context::TyCtxt, ())>>::call_once
+  45:     0x7fa6fbf70269 - rustc_query_system[e31d6d9fbccfd6f2]::query::plumbing::try_execute_query::<rustc_query_impl[296c58625f4e3441]::DynamicConfig<rustc_query_system[e31d6d9fbccfd6f2]::query::caches::SingleCache<rustc_middle[4a64cfee706b595]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[296c58625f4e3441]::plumbing::QueryCtxt, false>
+  46:     0x7fa6fc2785d2 - rustc_query_impl[296c58625f4e3441]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
+  47:     0x7fa6f942e833 - <std[722de03b977f82e2]::thread::local::LocalKey<core[b85b81897dd7c607]::cell::Cell<*const ()>>>::with::<rustc_middle[4a64cfee706b595]::ty::context::tls::enter_context<<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>::enter<rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>::{closure#1}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>::{closure#0}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>
+  48:     0x7fa6f944b072 - <rustc_middle[4a64cfee706b595]::ty::context::TyCtxt>::create_global_ctxt::<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
+  49:     0x7fa6f942ae46 - <rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[b85b81897dd7c607]::ops::function::FnOnce<(&rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
+  50:     0x7fa6f949a2b6 - <alloc[8f667485acfd4fc8]::boxed::Box<dyn for<'a> core[b85b81897dd7c607]::ops::function::FnOnce<(&'a rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &'a std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena<'a>>, &'a rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena<'a>>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}), Output = core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>> as core[b85b81897dd7c607]::ops::function::FnOnce<(&rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2})>>::call_once
+  51:     0x7fa6f94087e7 - rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt::<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>
+  52:     0x7fa6f93a2a69 - rustc_span[5de9bfc504d26a6f]::create_session_globals_then::<(), rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
+  53:     0x7fa6f93c3dd9 - std[722de03b977f82e2]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
+  54:     0x7fa6f93c6e44 - <<std[722de03b977f82e2]::thread::Builder>::spawn_unchecked_<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[b85b81897dd7c607]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
+  55:     0x7fa6fdee4aa5 - <std[722de03b977f82e2]::sys::pal::unix::thread::Thread>::new::thread_start
+  56:     0x7fa6f706bac3 - <unknown>
+  57:     0x7fa6f70fd850 - <unknown>
+  58:                0x0 - <unknown>
 
-error: unnecessary use of `cloned`
-  --> tests/ui/unnecessary_iter_cloned.rs:198:23
-   |
-LL |         for (i, c) in v.iter().cloned() {
-   |                       ^^^^^^^^^^^^^^^^^
-   |
-help: remove any references to the binding
-   |
-LL ~         for (i, c) in v.iter() {
-LL |
-LL |
-LL ~             let ref_c = c;
-LL ~             let ref_i = i;
-   |
+error: the compiler unexpectedly panicked. this is a bug.
 
-error: aborting due to 5 previous errors
+note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new?template=ice.yml
 
+note: please make sure that you have updated to the latest nightly
+
+note: rustc 1.88.0-nightly (7ab5976f9 2025-05-07) running on x86_64-unknown-linux-gnu
+
---
Full unnormalized output:
error: unnecessary use of `copied`
##[error]  --> tests/ui/unnecessary_iter_cloned.rs:31:22
   |
LL |     for (t, path) in files.iter().copied() {
   |                      ^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `-D clippy::unnecessary-to-owned` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::unnecessary_to_owned)]`
help: remove any references to the binding
   |
LL ~     for (t, path) in files {
LL |
LL ~         let other = match get_file_path(t) {
   |

error: unnecessary use of `copied`
##[error]  --> tests/ui/unnecessary_iter_cloned.rs:47:22
   |
LL |     for (t, path) in files.iter().copied() {
   |                      ^^^^^^^^^^^^^^^^^^^^^
   |
help: remove any references to the binding
   |
LL ~     for (t, path) in files.iter() {
LL |
LL ~         let other = match get_file_path(t) {
   |


thread 'rustc' panicked at /checkout/compiler/rustc_errors/src/diagnostic.rs:926:9:
assertion `left == right` failed: Span must not be empty and have no suggestion
  left: Some(SubstitutionPart { span: tests/ui/unnecessary_iter_cloned.rs:182:24: 182:24 (#0), snippet: "" })
 right: None
stack backtrace:
   0:     0x7fa6fdedbe60 - <<std[722de03b977f82e2]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[b85b81897dd7c607]::fmt::Display>::fmt
   1:     0x7fa6fdf383bf - core[b85b81897dd7c607]::fmt::write
   2:     0x7fa6fdeced49 - <std[722de03b977f82e2]::sys::stdio::unix::Stderr as std[722de03b977f82e2]::io::Write>::write_fmt
   3:     0x7fa6fdedbd02 - <std[722de03b977f82e2]::sys::backtrace::BacktraceLock>::print
   4:     0x7fa6fdee0508 - std[722de03b977f82e2]::panicking::default_hook::{closure#0}
   5:     0x7fa6fdee02a2 - std[722de03b977f82e2]::panicking::default_hook
   6:     0x7fa6f949af22 - <alloc[8f667485acfd4fc8]::boxed::Box<rustc_driver_impl[5c0983139a933bca]::install_ice_hook::{closure#1}> as core[b85b81897dd7c607]::ops::function::Fn<(&dyn for<'a, 'b> core[b85b81897dd7c607]::ops::function::Fn<(&'a std[722de03b977f82e2]::panic::PanicHookInfo<'b>,), Output = ()> + core[b85b81897dd7c607]::marker::Sync + core[b85b81897dd7c607]::marker::Send, &std[722de03b977f82e2]::panic::PanicHookInfo)>>::call
   7:     0x7fa6fdee117b - std[722de03b977f82e2]::panicking::rust_panic_with_hook
   8:     0x7fa6fdee0d7e - std[722de03b977f82e2]::panicking::begin_panic_handler::{closure#0}
   9:     0x7fa6fdedc479 - std[722de03b977f82e2]::sys::backtrace::__rust_end_short_backtrace::<std[722de03b977f82e2]::panicking::begin_panic_handler::{closure#0}, !>
  10:     0x7fa6fdee098d - __rustc[210dc653f36a8667]::rust_begin_unwind
  11:     0x7fa6fdf34000 - core[b85b81897dd7c607]::panicking::panic_fmt
  12:     0x7fa6fdf3456a - core[b85b81897dd7c607]::panicking::assert_failed_inner
  13:     0x7fa6fd6e3a8f - core[b85b81897dd7c607]::panicking::assert_failed::<core[b85b81897dd7c607]::option::Option<&rustc_errors[8c94111977c95880]::SubstitutionPart>, core[b85b81897dd7c607]::option::Option<&rustc_errors[8c94111977c95880]::SubstitutionPart>>
  14:     0x55edf21c8999 - <rustc_errors[8c94111977c95880]::diagnostic::Diag<()>>::multipart_suggestion_with_style::<&str>
  15:     0x55edf23af504 - <clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, alloc[8f667485acfd4fc8]::string::String, clippy_lints[2d5f372497376e35]::methods::unnecessary_iter_cloned::check_for_loop_iter::{closure#1}>::{closure#0} as core[b85b81897dd7c607]::ops::function::FnOnce<(&mut rustc_errors[8c94111977c95880]::diagnostic::Diag<()>,)>>::call_once::{shim:vtable#0}
  16:     0x7fa6fd7158b3 - rustc_middle[4a64cfee706b595]::lint::lint_level::lint_level_impl
  17:     0x55edf237a38a - rustc_middle[4a64cfee706b595]::lint::lint_level::<clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, alloc[8f667485acfd4fc8]::string::String, clippy_lints[2d5f372497376e35]::methods::unnecessary_iter_cloned::check_for_loop_iter::{closure#1}>::{closure#0}>
  18:     0x55edf2392cc1 - <rustc_lint[96dc6baabd10bd4e]::context::LateContext as rustc_lint[96dc6baabd10bd4e]::context::LintContext>::opt_span_lint::<rustc_span[5de9bfc504d26a6f]::span_encoding::Span, clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, alloc[8f667485acfd4fc8]::string::String, clippy_lints[2d5f372497376e35]::methods::unnecessary_iter_cloned::check_for_loop_iter::{closure#1}>::{closure#0}>
  19:     0x55edf2202f93 - clippy_lints[2d5f372497376e35]::methods::unnecessary_iter_cloned::check_for_loop_iter
  20:     0x55edf2462d87 - <clippy_lints[2d5f372497376e35]::methods::Methods as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr
  21:     0x7fa6fbdfe513 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  22:     0x7fa6fbed38fb - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  23:     0x7fa6fbdfe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  24:     0x7fa6fbed2e1e - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  25:     0x7fa6fbdfe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  26:     0x7fa6fbed337f - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  27:     0x7fa6fbdfe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  28:     0x7fa6fbe02582 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_block
  29:     0x7fa6fbdfe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  30:     0x7fa6fbdfc724 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_body
  31:     0x7fa6fbdffae9 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_fn
  32:     0x7fa6fbed6323 - rustc_hir[a97542dc954c1f22]::intravisit::walk_item::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  33:     0x7fa6fbdf3de4 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_item
  34:     0x7fa6fbe0163c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_mod
  35:     0x7fa6fbdf3de4 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_item
  36:     0x7fa6fbe0163c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_mod
  37:     0x7fa6fbe05531 - rustc_lint[96dc6baabd10bd4e]::late::late_lint_crate
  38:     0x7fa6fbd8dbce - rustc_data_structures[6b0c338be68cbdf0]::sync::parallel::serial_join::<rustc_lint[96dc6baabd10bd4e]::late::check_crate::{closure#0}, rustc_lint[96dc6baabd10bd4e]::late::check_crate::{closure#1}, (), ()>
  39:     0x7fa6fbe05b7b - rustc_lint[96dc6baabd10bd4e]::late::check_crate
  40:     0x7fa6f96d3fe3 - <rustc_data_structures[6b0c338be68cbdf0]::sync::parallel::ParallelGuard>::run::<(), rustc_interface[7e2780b9127a51f3]::passes::analysis::{closure#0}::{closure#1}::{closure#0}>
  41:     0x7fa6f9891c51 - <rustc_session[1697b6e1c1bf6b08]::session::Session>::time::<(), rustc_interface[7e2780b9127a51f3]::passes::analysis::{closure#0}>
  42:     0x7fa6f9820bf2 - rustc_interface[7e2780b9127a51f3]::passes::analysis
  43:     0x7fa6fc1821f3 - rustc_query_impl[296c58625f4e3441]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[296c58625f4e3441]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4a64cfee706b595]::query::erase::Erased<[u8; 0usize]>>
  44:     0x7fa6fc0aa0d1 - <rustc_query_impl[296c58625f4e3441]::query_impl::analysis::dynamic_query::{closure#2} as core[b85b81897dd7c607]::ops::function::FnOnce<(rustc_middle[4a64cfee706b595]::ty::context::TyCtxt, ())>>::call_once
  45:     0x7fa6fbf70269 - rustc_query_system[e31d6d9fbccfd6f2]::query::plumbing::try_execute_query::<rustc_query_impl[296c58625f4e3441]::DynamicConfig<rustc_query_system[e31d6d9fbccfd6f2]::query::caches::SingleCache<rustc_middle[4a64cfee706b595]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[296c58625f4e3441]::plumbing::QueryCtxt, false>
  46:     0x7fa6fc2785d2 - rustc_query_impl[296c58625f4e3441]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  47:     0x7fa6f942e833 - <std[722de03b977f82e2]::thread::local::LocalKey<core[b85b81897dd7c607]::cell::Cell<*const ()>>>::with::<rustc_middle[4a64cfee706b595]::ty::context::tls::enter_context<<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>::enter<rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>::{closure#1}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>::{closure#0}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>
  48:     0x7fa6f944b072 - <rustc_middle[4a64cfee706b595]::ty::context::TyCtxt>::create_global_ctxt::<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  49:     0x7fa6f942ae46 - <rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[b85b81897dd7c607]::ops::function::FnOnce<(&rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  50:     0x7fa6f949a2b6 - <alloc[8f667485acfd4fc8]::boxed::Box<dyn for<'a> core[b85b81897dd7c607]::ops::function::FnOnce<(&'a rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &'a std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena<'a>>, &'a rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena<'a>>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}), Output = core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>> as core[b85b81897dd7c607]::ops::function::FnOnce<(&rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2})>>::call_once
  51:     0x7fa6f94087e7 - rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt::<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>
  52:     0x7fa6f93a2a69 - rustc_span[5de9bfc504d26a6f]::create_session_globals_then::<(), rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
  53:     0x7fa6f93c3dd9 - std[722de03b977f82e2]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  54:     0x7fa6f93c6e44 - <<std[722de03b977f82e2]::thread::Builder>::spawn_unchecked_<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[b85b81897dd7c607]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  55:     0x7fa6fdee4aa5 - <std[722de03b977f82e2]::sys::pal::unix::thread::Thread>::new::thread_start
  56:     0x7fa6f706bac3 - <unknown>
  57:     0x7fa6f70fd850 - <unknown>
  58:                0x0 - <unknown>

error: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new?template=ice.yml

note: please make sure that you have updated to the latest nightly

note: rustc 1.88.0-nightly (7ab5976f9 2025-05-07) running on x86_64-unknown-linux-gnu

---
full stderr:
error: unnecessary use of `copied`
##[error]  --> tests/ui/unnecessary_iter_cloned.rs:31:22
   |
LL |     for (t, path) in files.iter().copied() {
   |                      ^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `-D clippy::unnecessary-to-owned` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::unnecessary_to_owned)]`
help: remove any references to the binding
   |
LL ~     for (t, path) in files {
LL |
LL ~         let other = match get_file_path(t) {
   |

error: unnecessary use of `copied`
##[error]  --> tests/ui/unnecessary_iter_cloned.rs:47:22
   |
LL |     for (t, path) in files.iter().copied() {
   |                      ^^^^^^^^^^^^^^^^^^^^^
   |
help: remove any references to the binding
   |
LL ~     for (t, path) in files.iter() {
LL |
LL ~         let other = match get_file_path(t) {
   |


thread 'rustc' panicked at /checkout/compiler/rustc_errors/src/diagnostic.rs:926:9:
assertion `left == right` failed: Span must not be empty and have no suggestion
  left: Some(SubstitutionPart { span: tests/ui/unnecessary_iter_cloned.rs:182:24: 182:24 (#0), snippet: "" })
 right: None
stack backtrace:
   0:     0x7fa6fdedbe60 - <<std[722de03b977f82e2]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[b85b81897dd7c607]::fmt::Display>::fmt
   1:     0x7fa6fdf383bf - core[b85b81897dd7c607]::fmt::write
   2:     0x7fa6fdeced49 - <std[722de03b977f82e2]::sys::stdio::unix::Stderr as std[722de03b977f82e2]::io::Write>::write_fmt
   3:     0x7fa6fdedbd02 - <std[722de03b977f82e2]::sys::backtrace::BacktraceLock>::print
   4:     0x7fa6fdee0508 - std[722de03b977f82e2]::panicking::default_hook::{closure#0}
   5:     0x7fa6fdee02a2 - std[722de03b977f82e2]::panicking::default_hook
   6:     0x7fa6f949af22 - <alloc[8f667485acfd4fc8]::boxed::Box<rustc_driver_impl[5c0983139a933bca]::install_ice_hook::{closure#1}> as core[b85b81897dd7c607]::ops::function::Fn<(&dyn for<'a, 'b> core[b85b81897dd7c607]::ops::function::Fn<(&'a std[722de03b977f82e2]::panic::PanicHookInfo<'b>,), Output = ()> + core[b85b81897dd7c607]::marker::Sync + core[b85b81897dd7c607]::marker::Send, &std[722de03b977f82e2]::panic::PanicHookInfo)>>::call
   7:     0x7fa6fdee117b - std[722de03b977f82e2]::panicking::rust_panic_with_hook
   8:     0x7fa6fdee0d7e - std[722de03b977f82e2]::panicking::begin_panic_handler::{closure#0}
   9:     0x7fa6fdedc479 - std[722de03b977f82e2]::sys::backtrace::__rust_end_short_backtrace::<std[722de03b977f82e2]::panicking::begin_panic_handler::{closure#0}, !>
  10:     0x7fa6fdee098d - __rustc[210dc653f36a8667]::rust_begin_unwind
  11:     0x7fa6fdf34000 - core[b85b81897dd7c607]::panicking::panic_fmt
  12:     0x7fa6fdf3456a - core[b85b81897dd7c607]::panicking::assert_failed_inner
  13:     0x7fa6fd6e3a8f - core[b85b81897dd7c607]::panicking::assert_failed::<core[b85b81897dd7c607]::option::Option<&rustc_errors[8c94111977c95880]::SubstitutionPart>, core[b85b81897dd7c607]::option::Option<&rustc_errors[8c94111977c95880]::SubstitutionPart>>
  14:     0x55edf21c8999 - <rustc_errors[8c94111977c95880]::diagnostic::Diag<()>>::multipart_suggestion_with_style::<&str>
  15:     0x55edf23af504 - <clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, alloc[8f667485acfd4fc8]::string::String, clippy_lints[2d5f372497376e35]::methods::unnecessary_iter_cloned::check_for_loop_iter::{closure#1}>::{closure#0} as core[b85b81897dd7c607]::ops::function::FnOnce<(&mut rustc_errors[8c94111977c95880]::diagnostic::Diag<()>,)>>::call_once::{shim:vtable#0}
  16:     0x7fa6fd7158b3 - rustc_middle[4a64cfee706b595]::lint::lint_level::lint_level_impl
  17:     0x55edf237a38a - rustc_middle[4a64cfee706b595]::lint::lint_level::<clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, alloc[8f667485acfd4fc8]::string::String, clippy_lints[2d5f372497376e35]::methods::unnecessary_iter_cloned::check_for_loop_iter::{closure#1}>::{closure#0}>
  18:     0x55edf2392cc1 - <rustc_lint[96dc6baabd10bd4e]::context::LateContext as rustc_lint[96dc6baabd10bd4e]::context::LintContext>::opt_span_lint::<rustc_span[5de9bfc504d26a6f]::span_encoding::Span, clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, alloc[8f667485acfd4fc8]::string::String, clippy_lints[2d5f372497376e35]::methods::unnecessary_iter_cloned::check_for_loop_iter::{closure#1}>::{closure#0}>
  19:     0x55edf2202f93 - clippy_lints[2d5f372497376e35]::methods::unnecessary_iter_cloned::check_for_loop_iter
  20:     0x55edf2462d87 - <clippy_lints[2d5f372497376e35]::methods::Methods as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr
  21:     0x7fa6fbdfe513 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  22:     0x7fa6fbed38fb - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  23:     0x7fa6fbdfe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  24:     0x7fa6fbed2e1e - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  25:     0x7fa6fbdfe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  26:     0x7fa6fbed337f - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  27:     0x7fa6fbdfe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  28:     0x7fa6fbe02582 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_block
  29:     0x7fa6fbdfe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  30:     0x7fa6fbdfc724 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_body
  31:     0x7fa6fbdffae9 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_fn
  32:     0x7fa6fbed6323 - rustc_hir[a97542dc954c1f22]::intravisit::walk_item::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  33:     0x7fa6fbdf3de4 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_item
  34:     0x7fa6fbe0163c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_mod
  35:     0x7fa6fbdf3de4 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_item
  36:     0x7fa6fbe0163c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_mod
  37:     0x7fa6fbe05531 - rustc_lint[96dc6baabd10bd4e]::late::late_lint_crate
  38:     0x7fa6fbd8dbce - rustc_data_structures[6b0c338be68cbdf0]::sync::parallel::serial_join::<rustc_lint[96dc6baabd10bd4e]::late::check_crate::{closure#0}, rustc_lint[96dc6baabd10bd4e]::late::check_crate::{closure#1}, (), ()>
  39:     0x7fa6fbe05b7b - rustc_lint[96dc6baabd10bd4e]::late::check_crate
  40:     0x7fa6f96d3fe3 - <rustc_data_structures[6b0c338be68cbdf0]::sync::parallel::ParallelGuard>::run::<(), rustc_interface[7e2780b9127a51f3]::passes::analysis::{closure#0}::{closure#1}::{closure#0}>
  41:     0x7fa6f9891c51 - <rustc_session[1697b6e1c1bf6b08]::session::Session>::time::<(), rustc_interface[7e2780b9127a51f3]::passes::analysis::{closure#0}>
  42:     0x7fa6f9820bf2 - rustc_interface[7e2780b9127a51f3]::passes::analysis
  43:     0x7fa6fc1821f3 - rustc_query_impl[296c58625f4e3441]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[296c58625f4e3441]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4a64cfee706b595]::query::erase::Erased<[u8; 0usize]>>
  44:     0x7fa6fc0aa0d1 - <rustc_query_impl[296c58625f4e3441]::query_impl::analysis::dynamic_query::{closure#2} as core[b85b81897dd7c607]::ops::function::FnOnce<(rustc_middle[4a64cfee706b595]::ty::context::TyCtxt, ())>>::call_once
  45:     0x7fa6fbf70269 - rustc_query_system[e31d6d9fbccfd6f2]::query::plumbing::try_execute_query::<rustc_query_impl[296c58625f4e3441]::DynamicConfig<rustc_query_system[e31d6d9fbccfd6f2]::query::caches::SingleCache<rustc_middle[4a64cfee706b595]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[296c58625f4e3441]::plumbing::QueryCtxt, false>
  46:     0x7fa6fc2785d2 - rustc_query_impl[296c58625f4e3441]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  47:     0x7fa6f942e833 - <std[722de03b977f82e2]::thread::local::LocalKey<core[b85b81897dd7c607]::cell::Cell<*const ()>>>::with::<rustc_middle[4a64cfee706b595]::ty::context::tls::enter_context<<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>::enter<rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>::{closure#1}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>::{closure#0}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>
  48:     0x7fa6f944b072 - <rustc_middle[4a64cfee706b595]::ty::context::TyCtxt>::create_global_ctxt::<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  49:     0x7fa6f942ae46 - <rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[b85b81897dd7c607]::ops::function::FnOnce<(&rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  50:     0x7fa6f949a2b6 - <alloc[8f667485acfd4fc8]::boxed::Box<dyn for<'a> core[b85b81897dd7c607]::ops::function::FnOnce<(&'a rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &'a std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena<'a>>, &'a rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena<'a>>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}), Output = core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>> as core[b85b81897dd7c607]::ops::function::FnOnce<(&rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2})>>::call_once
  51:     0x7fa6f94087e7 - rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt::<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>
  52:     0x7fa6f93a2a69 - rustc_span[5de9bfc504d26a6f]::create_session_globals_then::<(), rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
  53:     0x7fa6f93c3dd9 - std[722de03b977f82e2]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  54:     0x7fa6f93c6e44 - <<std[722de03b977f82e2]::thread::Builder>::spawn_unchecked_<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[b85b81897dd7c607]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  55:     0x7fa6fdee4aa5 - <std[722de03b977f82e2]::sys::pal::unix::thread::Thread>::new::thread_start
  56:     0x7fa6f706bac3 - <unknown>
  57:     0x7fa6f70fd850 - <unknown>
  58:                0x0 - <unknown>

error: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new?template=ice.yml

note: please make sure that you have updated to the latest nightly

note: rustc 1.88.0-nightly (7ab5976f9 2025-05-07) running on x86_64-unknown-linux-gnu

---



FAILED TEST: tests/ui/unnecessary_path_debug_formatting.rs
command: CLIPPY_CONF_DIR="tests" RUSTC_ICE="0" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/clippy-driver" "--error-format=json" "--emit=metadata" "-Aunused" "-Ainternal_features" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Dwarnings" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps" "--extern=clippy_config=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_config-2c93a398ed1b3bf2.rlib" "--extern=clippy_lints=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_lints-dd1f7a63ab09d2c0.rlib" "--extern=clippy_utils=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_utils-04d95fc1b4230011.rlib" "--extern=futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libfutures-6d7a81bc2763ac5f.rlib" "--extern=if_chain=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libif_chain-d494e6b7c1a6e89b.rlib" "--extern=itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libitertools-d4e4179d28fd4b4c.rlib" "--extern=parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libparking_lot-c60316d1e8e896b7.rlib" "--extern=quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libquote-07dd62da2c3e7a6e.rlib" "--extern=regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libregex-75c78277780d7d9c.rlib" "--extern=serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libserde-cc2bae94717512c6.rlib" "--extern=serde_derive=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde_derive-9431a02aee605a39.so" "--extern=syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libsyn-1cf89851da371bc7.rlib" "--extern=tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libtokio-ab47290081742c1b.rlib" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/release/deps" "--test" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/ui_test/0/tests/ui" "tests/ui/unnecessary_path_debug_formatting.rs" "--edition" "2024"

error: actual output differed from expected
Execute `./x test src/tools/clippy --bless` to update `tests/ui/unnecessary_path_debug_formatting.stderr` to the actual output
--- tests/ui/unnecessary_path_debug_formatting.stderr
+++ <stderr output>
 error: unnecessary `Debug` formatting in `println!` args
-  --> tests/ui/unnecessary_path_debug_formatting.rs:30:22
-   |
-LL |     println!("{:?}", os_str);
-   |                      ^^^^^^
-   |
-   = help: use `Display` formatting and change this to `os_str.display()`
-   = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed
-   = note: `-D clippy::unnecessary-debug-formatting` implied by `-D warnings`
-   = help: to override `-D warnings` add `#[allow(clippy::unnecessary_debug_formatting)]`
-
-error: unnecessary `Debug` formatting in `println!` args
-  --> tests/ui/unnecessary_path_debug_formatting.rs:31:22
-   |
-LL |     println!("{:?}", os_string);
-   |                      ^^^^^^^^^
-   |
-   = help: use `Display` formatting and change this to `os_string.display()`
-   = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed
-
-error: unnecessary `Debug` formatting in `println!` args
-  --> tests/ui/unnecessary_path_debug_formatting.rs:33:22
-   |
-LL |     println!("{:?}", path);
-   |                      ^^^^
-   |
-   = help: use `Display` formatting and change this to `path.display()`
-   = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed
-
-error: unnecessary `Debug` formatting in `println!` args
-  --> tests/ui/unnecessary_path_debug_formatting.rs:34:22
-   |
-LL |     println!("{:?}", path_buf);
-   |                      ^^^^^^^^
-   |
-   = help: use `Display` formatting and change this to `path_buf.display()`
-   = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed
-
-error: unnecessary `Debug` formatting in `println!` args
-  --> tests/ui/unnecessary_path_debug_formatting.rs:36:16
-   |
-LL |     println!("{path:?}");
-   |                ^^^^
-   |
-   = help: use `Display` formatting and change this to `path.display()`
-   = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed
-
-error: unnecessary `Debug` formatting in `println!` args
-  --> tests/ui/unnecessary_path_debug_formatting.rs:37:16
-   |
-LL |     println!("{path_buf:?}");
-   |                ^^^^^^^^
-   |
-   = help: use `Display` formatting and change this to `path_buf.display()`
-   = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed
-
-error: unnecessary `Debug` formatting in `format!` args
-  --> tests/ui/unnecessary_path_debug_formatting.rs:39:37
-   |
-LL |     let _: String = format!("{:?}", path);
-   |                                     ^^^^
-   |
-   = help: use `Display` formatting and change this to `path.display()`
-   = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed
-
-error: unnecessary `Debug` formatting in `format!` args
-  --> tests/ui/unnecessary_path_debug_formatting.rs:40:37
-   |
-LL |     let _: String = format!("{:?}", path_buf);
-   |                                     ^^^^^^^^
-   |
-   = help: use `Display` formatting and change this to `path_buf.display()`
-   = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed
-
-error: unnecessary `Debug` formatting in `println!` args
   --> tests/ui/unnecessary_path_debug_formatting.rs:43:22
    |
... 3 lines skipped ...
    = help: use `Display` formatting and change this to `&*deref_path.display()`
    = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed
+   = note: `-D clippy::unnecessary-debug-formatting` implied by `-D warnings`
+   = help: to override `-D warnings` add `#[allow(clippy::unnecessary_debug_formatting)]`
 
-error: aborting due to 9 previous errors
+error: aborting due to 1 previous error
 

Full unnormalized output:
error: unnecessary `Debug` formatting in `println!` args
##[error]  --> tests/ui/unnecessary_path_debug_formatting.rs:43:22
   |
LL |     println!("{:?}", &*deref_path);
   |                      ^^^^^^^^^^^^
   |
   = help: use `Display` formatting and change this to `&*deref_path.display()`
   = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed
   = note: `-D clippy::unnecessary-debug-formatting` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::unnecessary_debug_formatting)]`

error: aborting due to 1 previous error



---

error: diagnostic code `clippy::unnecessary_debug_formatting` not found on line 33
##[error]  --> tests/ui/unnecessary_path_debug_formatting.rs:33:33
   |
33 |     println!("{:?}", path); //~ unnecessary_debug_formatting
   |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected because of this pattern
   |

error: diagnostic code `clippy::unnecessary_debug_formatting` not found on line 34
##[error]  --> tests/ui/unnecessary_path_debug_formatting.rs:34:37
   |
34 |     println!("{:?}", path_buf); //~ unnecessary_debug_formatting
   |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected because of this pattern
   |

error: diagnostic code `clippy::unnecessary_debug_formatting` not found on line 36
##[error]  --> tests/ui/unnecessary_path_debug_formatting.rs:36:31
   |
36 |     println!("{path:?}"); //~ unnecessary_debug_formatting
   |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected because of this pattern
   |

error: diagnostic code `clippy::unnecessary_debug_formatting` not found on line 37
##[error]  --> tests/ui/unnecessary_path_debug_formatting.rs:37:35
   |
37 |     println!("{path_buf:?}"); //~ unnecessary_debug_formatting
   |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected because of this pattern
   |

error: diagnostic code `clippy::unnecessary_debug_formatting` not found on line 39
##[error]  --> tests/ui/unnecessary_path_debug_formatting.rs:39:48
   |
39 |     let _: String = format!("{:?}", path); //~ unnecessary_debug_formatting
   |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected because of this pattern
   |

error: diagnostic code `clippy::unnecessary_debug_formatting` not found on line 40
##[error]  --> tests/ui/unnecessary_path_debug_formatting.rs:40:52
   |
40 |     let _: String = format!("{:?}", path_buf); //~ unnecessary_debug_formatting
   |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected because of this pattern
   |

full stderr:
error: unnecessary `Debug` formatting in `println!` args
##[error]  --> tests/ui/unnecessary_path_debug_formatting.rs:43:22
   |
LL |     println!("{:?}", &*deref_path);
   |                      ^^^^^^^^^^^^
   |
   = help: use `Display` formatting and change this to `&*deref_path.display()`
   = note: switching to `Display` formatting will change how the value is shown; escaped characters will no longer be escaped and surrounding quotes will be removed
   = note: `-D clippy::unnecessary-debug-formatting` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::unnecessary_debug_formatting)]`

error: aborting due to 1 previous error


full stdout:



FAILED TEST: tests/ui/author/macro_in_closure.rs
command: CLIPPY_CONF_DIR="tests" RUSTC_ICE="0" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/clippy-driver" "--error-format=json" "--emit=metadata" "-Aunused" "-Ainternal_features" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Dwarnings" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps" "--extern=clippy_config=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_config-2c93a398ed1b3bf2.rlib" "--extern=clippy_lints=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_lints-dd1f7a63ab09d2c0.rlib" "--extern=clippy_utils=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_utils-04d95fc1b4230011.rlib" "--extern=futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libfutures-6d7a81bc2763ac5f.rlib" "--extern=if_chain=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libif_chain-d494e6b7c1a6e89b.rlib" "--extern=itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libitertools-d4e4179d28fd4b4c.rlib" "--extern=parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libparking_lot-c60316d1e8e896b7.rlib" "--extern=quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libquote-07dd62da2c3e7a6e.rlib" "--extern=regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libregex-75c78277780d7d9c.rlib" "--extern=serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libserde-cc2bae94717512c6.rlib" "--extern=serde_derive=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde_derive-9431a02aee605a39.so" "--extern=syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libsyn-1cf89851da371bc7.rlib" "--extern=tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libtokio-ab47290081742c1b.rlib" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/release/deps" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/ui_test/0/tests/ui/author" "tests/ui/author/macro_in_closure.rs" "--edition" "2024"

error: actual output differed from expected
Execute `./x test src/tools/clippy --bless` to update `tests/ui/author/macro_in_closure.stdout` to the actual output
--- tests/ui/author/macro_in_closure.stdout
+++ <stdout output>
 if let StmtKind::Let(local) = stmt.kind
     && let Some(init) = local.init
... 8 lines skipped ...
     && match_qpath(qpath, &["$crate", "io", "_print"])
     && args.len() == 1
-    && let ExprKind::Call(func1, args1) = args[0].kind
+    && let ExprKind::Block(block1, None) = args[0].kind
+    && block1.stmts.len() == 1
+    && let StmtKind::Let(local1) = block1.stmts[0].kind
+    && let Some(init1) = local1.init
+    && let ExprKind::Array(elements) = init1.kind
+    && elements.len() == 1
+    && let ExprKind::Call(func1, args1) = elements[0].kind
     && let ExprKind::Path(ref qpath1) = func1.kind
-    && match_qpath(qpath1, &["format_arguments", "new_v1"])
+    && match_qpath(qpath1, &["format_argument", "new_display"])
-    && args1.len() == 2
+    && args1.len() == 1
     && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner) = args1[0].kind
-    && let ExprKind::Array(elements) = inner.kind
-    && elements.len() == 2
-    && let ExprKind::Lit(ref lit) = elements[0].kind
+    && let ExprKind::Path(ref qpath2) = inner.kind
+    && match_qpath(qpath2, &["x"])
+    && let PatKind::Binding(BindingMode::NONE, _, name, None) = local1.pat.kind
+    && name.as_str() == "args"
+    && let Some(trailing_expr) = block1.expr
+    && let ExprKind::Call(func2, args2) = trailing_expr.kind
+    && let ExprKind::Path(ref qpath3) = func2.kind
+    && match_qpath(qpath3, &["format_arguments", "new_v1"])
+    && args2.len() == 2
+    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner1) = args2[0].kind
+    && let ExprKind::Array(elements1) = inner1.kind
+    && elements1.len() == 2
+    && let ExprKind::Lit(ref lit) = elements1[0].kind
     && let LitKind::Str(s, _) = lit.node
     && s.as_str() == ""
-    && let ExprKind::Lit(ref lit1) = elements[1].kind
+    && let ExprKind::Lit(ref lit1) = elements1[1].kind
     && let LitKind::Str(s1, _) = lit1.node
     && s1.as_str() == "\n"
-    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner1) = args1[1].kind
-    && let ExprKind::Array(elements1) = inner1.kind
-    && elements1.len() == 1
-    && let ExprKind::Call(func2, args2) = elements1[0].kind
-    && let ExprKind::Path(ref qpath2) = func2.kind
-    && match_qpath(qpath2, &["format_argument", "new_display"])
-    && args2.len() == 1
-    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner2) = args2[0].kind
-    && let ExprKind::Path(ref qpath3) = inner2.kind
-    && match_qpath(qpath3, &["x"])
+    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner2) = args2[1].kind
+    && let ExprKind::Path(ref qpath4) = inner2.kind
+    && match_qpath(qpath4, &["args"])
     && block.expr.is_none()
-    && let PatKind::Binding(BindingMode::NONE, _, name, None) = local.pat.kind
+    && let PatKind::Binding(BindingMode::NONE, _, name1, None) = local.pat.kind
-    && name.as_str() == "print_text"
+    && name1.as_str() == "print_text"
 {
     // report your lint here
 }

Full unnormalized output:
if let StmtKind::Let(local) = stmt.kind
    && let Some(init) = local.init
    && let ExprKind::Closure { capture_clause: CaptureBy::Ref, fn_decl: fn_decl, body: body_id, closure_kind: ClosureKind::Closure, .. } = init.kind
    && let FnRetTy::DefaultReturn(_) = fn_decl.output
    && expr = &cx.tcx.hir_body(body_id).value
    && let ExprKind::Block(block, None) = expr.kind
    && block.stmts.len() == 1
    && let StmtKind::Semi(e) = block.stmts[0].kind
    && let ExprKind::Call(func, args) = e.kind
    && let ExprKind::Path(ref qpath) = func.kind
    && match_qpath(qpath, &["$crate", "io", "_print"])
    && args.len() == 1
    && let ExprKind::Block(block1, None) = args[0].kind
    && block1.stmts.len() == 1
    && let StmtKind::Let(local1) = block1.stmts[0].kind
    && let Some(init1) = local1.init
    && let ExprKind::Array(elements) = init1.kind
    && elements.len() == 1
    && let ExprKind::Call(func1, args1) = elements[0].kind
    && let ExprKind::Path(ref qpath1) = func1.kind
    && match_qpath(qpath1, &["format_argument", "new_display"])
    && args1.len() == 1
    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner) = args1[0].kind
    && let ExprKind::Path(ref qpath2) = inner.kind
    && match_qpath(qpath2, &["x"])
    && let PatKind::Binding(BindingMode::NONE, _, name, None) = local1.pat.kind
    && name.as_str() == "args"
    && let Some(trailing_expr) = block1.expr
    && let ExprKind::Call(func2, args2) = trailing_expr.kind
    && let ExprKind::Path(ref qpath3) = func2.kind
    && match_qpath(qpath3, &["format_arguments", "new_v1"])
    && args2.len() == 2
    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner1) = args2[0].kind
    && let ExprKind::Array(elements1) = inner1.kind
    && elements1.len() == 2
    && let ExprKind::Lit(ref lit) = elements1[0].kind
    && let LitKind::Str(s, _) = lit.node
    && s.as_str() == ""
    && let ExprKind::Lit(ref lit1) = elements1[1].kind
    && let LitKind::Str(s1, _) = lit1.node
    && s1.as_str() == "\n"
    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner2) = args2[1].kind
    && let ExprKind::Path(ref qpath4) = inner2.kind
    && match_qpath(qpath4, &["args"])
    && block.expr.is_none()
    && let PatKind::Binding(BindingMode::NONE, _, name1, None) = local.pat.kind
    && name1.as_str() == "print_text"
{
    // report your lint here
}


full stderr:

full stdout:
if let StmtKind::Let(local) = stmt.kind
    && let Some(init) = local.init
    && let ExprKind::Closure { capture_clause: CaptureBy::Ref, fn_decl: fn_decl, body: body_id, closure_kind: ClosureKind::Closure, .. } = init.kind
    && let FnRetTy::DefaultReturn(_) = fn_decl.output
    && expr = &cx.tcx.hir_body(body_id).value
    && let ExprKind::Block(block, None) = expr.kind
    && block.stmts.len() == 1
    && let StmtKind::Semi(e) = block.stmts[0].kind
    && let ExprKind::Call(func, args) = e.kind
    && let ExprKind::Path(ref qpath) = func.kind
    && match_qpath(qpath, &["$crate", "io", "_print"])
    && args.len() == 1
    && let ExprKind::Block(block1, None) = args[0].kind
    && block1.stmts.len() == 1
    && let StmtKind::Let(local1) = block1.stmts[0].kind
    && let Some(init1) = local1.init
    && let ExprKind::Array(elements) = init1.kind
    && elements.len() == 1
    && let ExprKind::Call(func1, args1) = elements[0].kind
    && let ExprKind::Path(ref qpath1) = func1.kind
    && match_qpath(qpath1, &["format_argument", "new_display"])
    && args1.len() == 1
    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner) = args1[0].kind
    && let ExprKind::Path(ref qpath2) = inner.kind
    && match_qpath(qpath2, &["x"])
    && let PatKind::Binding(BindingMode::NONE, _, name, None) = local1.pat.kind
    && name.as_str() == "args"
    && let Some(trailing_expr) = block1.expr
    && let ExprKind::Call(func2, args2) = trailing_expr.kind
    && let ExprKind::Path(ref qpath3) = func2.kind
    && match_qpath(qpath3, &["format_arguments", "new_v1"])
    && args2.len() == 2
    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner1) = args2[0].kind
    && let ExprKind::Array(elements1) = inner1.kind
    && elements1.len() == 2
    && let ExprKind::Lit(ref lit) = elements1[0].kind
    && let LitKind::Str(s, _) = lit.node
    && s.as_str() == ""
    && let ExprKind::Lit(ref lit1) = elements1[1].kind
    && let LitKind::Str(s1, _) = lit1.node
    && s1.as_str() == "\n"
    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner2) = args2[1].kind
    && let ExprKind::Path(ref qpath4) = inner2.kind
    && match_qpath(qpath4, &["args"])
    && block.expr.is_none()
    && let PatKind::Binding(BindingMode::NONE, _, name1, None) = local.pat.kind
    && name1.as_str() == "print_text"
{
    // report your lint here
}



FAILED TEST: tests/ui/author/macro_in_loop.rs
command: CLIPPY_CONF_DIR="tests" RUSTC_ICE="0" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/clippy-driver" "--error-format=json" "--emit=metadata" "-Aunused" "-Ainternal_features" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Dwarnings" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps" "--extern=clippy_config=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_config-2c93a398ed1b3bf2.rlib" "--extern=clippy_lints=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_lints-dd1f7a63ab09d2c0.rlib" "--extern=clippy_utils=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_utils-04d95fc1b4230011.rlib" "--extern=futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libfutures-6d7a81bc2763ac5f.rlib" "--extern=if_chain=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libif_chain-d494e6b7c1a6e89b.rlib" "--extern=itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libitertools-d4e4179d28fd4b4c.rlib" "--extern=parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libparking_lot-c60316d1e8e896b7.rlib" "--extern=quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libquote-07dd62da2c3e7a6e.rlib" "--extern=regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libregex-75c78277780d7d9c.rlib" "--extern=serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libserde-cc2bae94717512c6.rlib" "--extern=serde_derive=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde_derive-9431a02aee605a39.so" "--extern=syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libsyn-1cf89851da371bc7.rlib" "--extern=tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libtokio-ab47290081742c1b.rlib" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/release/deps" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/ui_test/0/tests/ui/author" "tests/ui/author/macro_in_loop.rs" "--edition" "2024"

error: actual output differed from expected
Execute `./x test src/tools/clippy --bless` to update `tests/ui/author/macro_in_loop.stdout` to the actual output
--- tests/ui/author/macro_in_loop.stdout
+++ <stdout output>
 if let Some(higher::ForLoop { pat: pat, arg: arg, body: body, .. }) = higher::ForLoop::hir(expr)
     && let PatKind::Binding(BindingMode::NONE, _, name, None) = pat.kind
... 18 lines skipped ...
     && match_qpath(qpath1, &["$crate", "io", "_print"])
     && args.len() == 1
-    && let ExprKind::Call(func1, args1) = args[0].kind
+    && let ExprKind::Block(block2, None) = args[0].kind
+    && block2.stmts.len() == 1
+    && let StmtKind::Let(local) = block2.stmts[0].kind
+    && let Some(init) = local.init
+    && let ExprKind::Array(elements) = init.kind
+    && elements.len() == 1
+    && let ExprKind::Call(func1, args1) = elements[0].kind
     && let ExprKind::Path(ref qpath2) = func1.kind
-    && match_qpath(qpath2, &["format_arguments", "new_v1"])
+    && match_qpath(qpath2, &["format_argument", "new_display"])
-    && args1.len() == 2
+    && args1.len() == 1
     && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner) = args1[0].kind
-    && let ExprKind::Array(elements) = inner.kind
-    && elements.len() == 2
-    && let ExprKind::Lit(ref lit2) = elements[0].kind
+    && let ExprKind::Path(ref qpath3) = inner.kind
+    && match_qpath(qpath3, &["i"])
+    && let PatKind::Binding(BindingMode::NONE, _, name1, None) = local.pat.kind
+    && name1.as_str() == "args"
+    && let Some(trailing_expr) = block2.expr
+    && let ExprKind::Call(func2, args2) = trailing_expr.kind
+    && let ExprKind::Path(ref qpath4) = func2.kind
+    && match_qpath(qpath4, &["format_arguments", "new_v1"])
+    && args2.len() == 2
+    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner1) = args2[0].kind
+    && let ExprKind::Array(elements1) = inner1.kind
+    && elements1.len() == 2
+    && let ExprKind::Lit(ref lit2) = elements1[0].kind
     && let LitKind::Str(s, _) = lit2.node
     && s.as_str() == ""
-    && let ExprKind::Lit(ref lit3) = elements[1].kind
+    && let ExprKind::Lit(ref lit3) = elements1[1].kind
     && let LitKind::Str(s1, _) = lit3.node
     && s1.as_str() == "\n"
-    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner1) = args1[1].kind
-    && let ExprKind::Array(elements1) = inner1.kind
-    && elements1.len() == 1
-    && let ExprKind::Call(func2, args2) = elements1[0].kind
-    && let ExprKind::Path(ref qpath3) = func2.kind
-    && match_qpath(qpath3, &["format_argument", "new_display"])
-    && args2.len() == 1
-    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner2) = args2[0].kind
-    && let ExprKind::Path(ref qpath4) = inner2.kind
-    && match_qpath(qpath4, &["i"])
+    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner2) = args2[1].kind
+    && let ExprKind::Path(ref qpath5) = inner2.kind
+    && match_qpath(qpath5, &["args"])
     && block1.expr.is_none()
     && block.expr.is_none()
 {
     // report your lint here
 }

Full unnormalized output:
if let Some(higher::ForLoop { pat: pat, arg: arg, body: body, .. }) = higher::ForLoop::hir(expr)
    && let PatKind::Binding(BindingMode::NONE, _, name, None) = pat.kind
    && name.as_str() == "i"
    && let ExprKind::Struct(qpath, fields, None) = arg.kind
    && matches!(qpath, QPath::LangItem(LangItem::Range, _))
    && fields.len() == 2
    && fields[0].ident.as_str() == "start"
    && let ExprKind::Lit(ref lit) = fields[0].expr.kind
    && let LitKind::Int(0, LitIntType::Unsuffixed) = lit.node
    && fields[1].ident.as_str() == "end"
    && let ExprKind::Lit(ref lit1) = fields[1].expr.kind
    && let LitKind::Int(1, LitIntType::Unsuffixed) = lit1.node
    && let ExprKind::Block(block, None) = body.kind
    && block.stmts.len() == 1
    && let StmtKind::Semi(e) = block.stmts[0].kind
    && let ExprKind::Block(block1, None) = e.kind
    && block1.stmts.len() == 1
    && let StmtKind::Semi(e1) = block1.stmts[0].kind
    && let ExprKind::Call(func, args) = e1.kind
    && let ExprKind::Path(ref qpath1) = func.kind
    && match_qpath(qpath1, &["$crate", "io", "_print"])
    && args.len() == 1
    && let ExprKind::Block(block2, None) = args[0].kind
    && block2.stmts.len() == 1
    && let StmtKind::Let(local) = block2.stmts[0].kind
    && let Some(init) = local.init
    && let ExprKind::Array(elements) = init.kind
    && elements.len() == 1
    && let ExprKind::Call(func1, args1) = elements[0].kind
    && let ExprKind::Path(ref qpath2) = func1.kind
    && match_qpath(qpath2, &["format_argument", "new_display"])
    && args1.len() == 1
    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner) = args1[0].kind
    && let ExprKind::Path(ref qpath3) = inner.kind
    && match_qpath(qpath3, &["i"])
    && let PatKind::Binding(BindingMode::NONE, _, name1, None) = local.pat.kind
    && name1.as_str() == "args"
    && let Some(trailing_expr) = block2.expr
    && let ExprKind::Call(func2, args2) = trailing_expr.kind
    && let ExprKind::Path(ref qpath4) = func2.kind
    && match_qpath(qpath4, &["format_arguments", "new_v1"])
    && args2.len() == 2
    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner1) = args2[0].kind
    && let ExprKind::Array(elements1) = inner1.kind
    && elements1.len() == 2
    && let ExprKind::Lit(ref lit2) = elements1[0].kind
    && let LitKind::Str(s, _) = lit2.node
    && s.as_str() == ""
    && let ExprKind::Lit(ref lit3) = elements1[1].kind
    && let LitKind::Str(s1, _) = lit3.node
    && s1.as_str() == "\n"
    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner2) = args2[1].kind
    && let ExprKind::Path(ref qpath5) = inner2.kind
    && match_qpath(qpath5, &["args"])
    && block1.expr.is_none()
    && block.expr.is_none()
{
    // report your lint here
}


full stderr:

full stdout:
if let Some(higher::ForLoop { pat: pat, arg: arg, body: body, .. }) = higher::ForLoop::hir(expr)
    && let PatKind::Binding(BindingMode::NONE, _, name, None) = pat.kind
    && name.as_str() == "i"
    && let ExprKind::Struct(qpath, fields, None) = arg.kind
    && matches!(qpath, QPath::LangItem(LangItem::Range, _))
    && fields.len() == 2
    && fields[0].ident.as_str() == "start"
    && let ExprKind::Lit(ref lit) = fields[0].expr.kind
    && let LitKind::Int(0, LitIntType::Unsuffixed) = lit.node
    && fields[1].ident.as_str() == "end"
    && let ExprKind::Lit(ref lit1) = fields[1].expr.kind
    && let LitKind::Int(1, LitIntType::Unsuffixed) = lit1.node
    && let ExprKind::Block(block, None) = body.kind
    && block.stmts.len() == 1
    && let StmtKind::Semi(e) = block.stmts[0].kind
    && let ExprKind::Block(block1, None) = e.kind
    && block1.stmts.len() == 1
    && let StmtKind::Semi(e1) = block1.stmts[0].kind
    && let ExprKind::Call(func, args) = e1.kind
    && let ExprKind::Path(ref qpath1) = func.kind
    && match_qpath(qpath1, &["$crate", "io", "_print"])
    && args.len() == 1
    && let ExprKind::Block(block2, None) = args[0].kind
    && block2.stmts.len() == 1
    && let StmtKind::Let(local) = block2.stmts[0].kind
    && let Some(init) = local.init
    && let ExprKind::Array(elements) = init.kind
    && elements.len() == 1
    && let ExprKind::Call(func1, args1) = elements[0].kind
    && let ExprKind::Path(ref qpath2) = func1.kind
    && match_qpath(qpath2, &["format_argument", "new_display"])
    && args1.len() == 1
    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner) = args1[0].kind
    && let ExprKind::Path(ref qpath3) = inner.kind
    && match_qpath(qpath3, &["i"])
    && let PatKind::Binding(BindingMode::NONE, _, name1, None) = local.pat.kind
    && name1.as_str() == "args"
    && let Some(trailing_expr) = block2.expr
    && let ExprKind::Call(func2, args2) = trailing_expr.kind
    && let ExprKind::Path(ref qpath4) = func2.kind
    && match_qpath(qpath4, &["format_arguments", "new_v1"])
    && args2.len() == 2
    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner1) = args2[0].kind
    && let ExprKind::Array(elements1) = inner1.kind
    && elements1.len() == 2
    && let ExprKind::Lit(ref lit2) = elements1[0].kind
    && let LitKind::Str(s, _) = lit2.node
    && s.as_str() == ""
    && let ExprKind::Lit(ref lit3) = elements1[1].kind
    && let LitKind::Str(s1, _) = lit3.node
    && s1.as_str() == "\n"
    && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner2) = args2[1].kind
    && let ExprKind::Path(ref qpath5) = inner2.kind
    && match_qpath(qpath5, &["args"])
    && block1.expr.is_none()
    && block.expr.is_none()
{
    // report your lint here
}



FAILED TEST: tests/ui/dbg_macro/dbg_macro.rs
command: CLIPPY_CONF_DIR="tests" RUSTC_ICE="0" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/clippy-driver" "--error-format=json" "--emit=metadata" "-Aunused" "-Ainternal_features" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Dwarnings" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps" "--extern=clippy_config=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_config-2c93a398ed1b3bf2.rlib" "--extern=clippy_lints=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_lints-dd1f7a63ab09d2c0.rlib" "--extern=clippy_utils=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libclippy_utils-04d95fc1b4230011.rlib" "--extern=futures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libfutures-6d7a81bc2763ac5f.rlib" "--extern=if_chain=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libif_chain-d494e6b7c1a6e89b.rlib" "--extern=itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libitertools-d4e4179d28fd4b4c.rlib" "--extern=parking_lot=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libparking_lot-c60316d1e8e896b7.rlib" "--extern=quote=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libquote-07dd62da2c3e7a6e.rlib" "--extern=regex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libregex-75c78277780d7d9c.rlib" "--extern=serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libserde-cc2bae94717512c6.rlib" "--extern=serde_derive=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde_derive-9431a02aee605a39.so" "--extern=syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libsyn-1cf89851da371bc7.rlib" "--extern=tokio=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/x86_64-unknown-linux-gnu/release/deps/libtokio-ab47290081742c1b.rlib" "-Ldependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/release/deps" "--test" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/ui_test/0/tests/ui/dbg_macro" "tests/ui/dbg_macro/dbg_macro.rs" "--edition" "2024"

error: actual output differed from expected
Execute `./x test src/tools/clippy --bless` to update `tests/ui/dbg_macro/dbg_macro.stderr` to the actual output
--- tests/ui/dbg_macro/dbg_macro.stderr
+++ <stderr output>
---
 
-error: the `dbg!` macro is intended as a debugging tool
-  --> tests/ui/dbg_macro/dbg_macro.rs:119:31
-   |
-LL |         println!("dbg: {:?}", dbg!(s));
-   |                               ^^^^^^^
-   |
-help: remove the invocation before committing it to a version control system
-   |
-LL -         println!("dbg: {:?}", dbg!(s));
-LL +         println!("dbg: {:?}", s);
-   |
 
-error: the `dbg!` macro is intended as a debugging tool
-  --> tests/ui/dbg_macro/dbg_macro.rs:122:22
-   |
-LL |         print!("{}", dbg!(s));
-   |                      ^^^^^^^
-   |
-help: remove the invocation before committing it to a version control system
-   |
-LL -         print!("{}", dbg!(s));
-LL +         print!("{}", s);
-   |
+thread 'rustc' panicked at src/tools/clippy/clippy_lints/src/dbg_macro.rs:118:30:
+internal error: entered unreachable code
+stack backtrace:
+   0:     0x7ff58d6dbe60 - <<std[722de03b977f82e2]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[b85b81897dd7c607]::fmt::Display>::fmt
+   1:     0x7ff58d7383bf - core[b85b81897dd7c607]::fmt::write
+   2:     0x7ff58d6ced49 - <std[722de03b977f82e2]::sys::stdio::unix::Stderr as std[722de03b977f82e2]::io::Write>::write_fmt
+   3:     0x7ff58d6dbd02 - <std[722de03b977f82e2]::sys::backtrace::BacktraceLock>::print
+   4:     0x7ff58d6e0508 - std[722de03b977f82e2]::panicking::default_hook::{closure#0}
+   5:     0x7ff58d6e02a2 - std[722de03b977f82e2]::panicking::default_hook
+   6:     0x7ff588c9af22 - <alloc[8f667485acfd4fc8]::boxed::Box<rustc_driver_impl[5c0983139a933bca]::install_ice_hook::{closure#1}> as core[b85b81897dd7c607]::ops::function::Fn<(&dyn for<'a, 'b> core[b85b81897dd7c607]::ops::function::Fn<(&'a std[722de03b977f82e2]::panic::PanicHookInfo<'b>,), Output = ()> + core[b85b81897dd7c607]::marker::Sync + core[b85b81897dd7c607]::marker::Send, &std[722de03b977f82e2]::panic::PanicHookInfo)>>::call
+   7:     0x7ff58d6e117b - std[722de03b977f82e2]::panicking::rust_panic_with_hook
+   8:     0x7ff58d6e0d4a - std[722de03b977f82e2]::panicking::begin_panic_handler::{closure#0}
+   9:     0x7ff58d6dc479 - std[722de03b977f82e2]::sys::backtrace::__rust_end_short_backtrace::<std[722de03b977f82e2]::panicking::begin_panic_handler::{closure#0}, !>
+  10:     0x7ff58d6e098d - __rustc[210dc653f36a8667]::rust_begin_unwind
+  11:     0x7ff58d734000 - core[b85b81897dd7c607]::panicking::panic_fmt
+  12:     0x7ff58d73408c - core[b85b81897dd7c607]::panicking::panic
+  13:     0x55b4249a17c7 - <clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, &str, <clippy_lints[2d5f372497376e35]::dbg_macro::DbgMacro as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr::{closure#0}>::{closure#0} as core[b85b81897dd7c607]::ops::function::FnOnce<(&mut rustc_errors[8c94111977c95880]::diagnostic::Diag<()>,)>>::call_once::{shim:vtable#0}
+  14:     0x7ff58cf158b3 - rustc_middle[4a64cfee706b595]::lint::lint_level::lint_level_impl
+  15:     0x55b424956d86 - rustc_middle[4a64cfee706b595]::lint::lint_level::<clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, &str, <clippy_lints[2d5f372497376e35]::dbg_macro::DbgMacro as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr::{closure#0}>::{closure#0}>
+  16:     0x55b42496afbc - <rustc_lint[96dc6baabd10bd4e]::context::LateContext as rustc_lint[96dc6baabd10bd4e]::context::LintContext>::opt_span_lint::<rustc_span[5de9bfc504d26a6f]::span_encoding::Span, clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, &str, <clippy_lints[2d5f372497376e35]::dbg_macro::DbgMacro as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr::{closure#0}>::{closure#0}>
+  17:     0x55b42470cb56 - <clippy_lints[2d5f372497376e35]::dbg_macro::DbgMacro as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr
+  18:     0x7ff58b5fe513 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
+  19:     0x7ff58b6d38fb - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
+  20:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
+  21:     0x7ff58b6d310b - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
+  22:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
+  23:     0x7ff58b601ab9 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_local
+  24:     0x7ff58b5ff277 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_stmt
+  25:     0x7ff58b60254c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_block
+  26:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
+  27:     0x7ff58b6d38fb - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
+  28:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
+  29:     0x7ff58b5ff265 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_stmt
+  30:     0x7ff58b60254c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_block
+  31:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
+  32:     0x7ff58b5ff265 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_stmt
+  33:     0x7ff58b60254c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_block
+  34:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
+  35:     0x7ff58b5fc724 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_body
+  36:     0x7ff58b5ffae9 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_fn
+  37:     0x7ff58b6d6323 - rustc_hir[a97542dc954c1f22]::intravisit::walk_item::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
+  38:     0x7ff58b5f3de4 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_item
+  39:     0x7ff58b60163c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_mod
+  40:     0x7ff58b5f3de4 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_item
+  41:     0x7ff58b60163c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_mod
+  42:     0x7ff58b605531 - rustc_lint[96dc6baabd10bd4e]::late::late_lint_crate
+  43:     0x7ff58b58dbce - rustc_data_structures[6b0c338be68cbdf0]::sync::parallel::serial_join::<rustc_lint[96dc6baabd10bd4e]::late::check_crate::{closure#0}, rustc_lint[96dc6baabd10bd4e]::late::check_crate::{closure#1}, (), ()>
+  44:     0x7ff58b605b7b - rustc_lint[96dc6baabd10bd4e]::late::check_crate
+  45:     0x7ff588ed3fe3 - <rustc_data_structures[6b0c338be68cbdf0]::sync::parallel::ParallelGuard>::run::<(), rustc_interface[7e2780b9127a51f3]::passes::analysis::{closure#0}::{closure#1}::{closure#0}>
+  46:     0x7ff589091c51 - <rustc_session[1697b6e1c1bf6b08]::session::Session>::time::<(), rustc_interface[7e2780b9127a51f3]::passes::analysis::{closure#0}>
+  47:     0x7ff589020bf2 - rustc_interface[7e2780b9127a51f3]::passes::analysis
+  48:     0x7ff58b9821f3 - rustc_query_impl[296c58625f4e3441]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[296c58625f4e3441]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4a64cfee706b595]::query::erase::Erased<[u8; 0usize]>>
+  49:     0x7ff58b8aa0d1 - <rustc_query_impl[296c58625f4e3441]::query_impl::analysis::dynamic_query::{closure#2} as core[b85b81897dd7c607]::ops::function::FnOnce<(rustc_middle[4a64cfee706b595]::ty::context::TyCtxt, ())>>::call_once
+  50:     0x7ff58b770269 - rustc_query_system[e31d6d9fbccfd6f2]::query::plumbing::try_execute_query::<rustc_query_impl[296c58625f4e3441]::DynamicConfig<rustc_query_system[e31d6d9fbccfd6f2]::query::caches::SingleCache<rustc_middle[4a64cfee706b595]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[296c58625f4e3441]::plumbing::QueryCtxt, false>
+  51:     0x7ff58ba785d2 - rustc_query_impl[296c58625f4e3441]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
+  52:     0x7ff588c2e833 - <std[722de03b977f82e2]::thread::local::LocalKey<core[b85b81897dd7c607]::cell::Cell<*const ()>>>::with::<rustc_middle[4a64cfee706b595]::ty::context::tls::enter_context<<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>::enter<rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>::{closure#1}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>::{closure#0}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>
+  53:     0x7ff588c4b072 - <rustc_middle[4a64cfee706b595]::ty::context::TyCtxt>::create_global_ctxt::<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
+  54:     0x7ff588c2ae46 - <rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[b85b81897dd7c607]::ops::function::FnOnce<(&rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
+  55:     0x7ff588c9a2b6 - <alloc[8f667485acfd4fc8]::boxed::Box<dyn for<'a> core[b85b81897dd7c607]::ops::function::FnOnce<(&'a rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &'a std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena<'a>>, &'a rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena<'a>>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}), Output = core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>> as core[b85b81897dd7c607]::ops::function::FnOnce<(&rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2})>>::call_once
+  56:     0x7ff588c087e7 - rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt::<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>
+  57:     0x7ff588ba2a69 - rustc_span[5de9bfc504d26a6f]::create_session_globals_then::<(), rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
+  58:     0x7ff588bc3dd9 - std[722de03b977f82e2]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
+  59:     0x7ff588bc6e44 - <<std[722de03b977f82e2]::thread::Builder>::spawn_unchecked_<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[b85b81897dd7c607]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
+  60:     0x7ff58d6e4aa5 - <std[722de03b977f82e2]::sys::pal::unix::thread::Thread>::new::thread_start
+  61:     0x7ff58686bac3 - <unknown>
+  62:     0x7ff5868fd850 - <unknown>
+  63:                0x0 - <unknown>
 
-error: aborting due to 19 previous errors
+error: the compiler unexpectedly panicked. this is a bug.
 
+note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new?template=ice.yml
+
+note: please make sure that you have updated to the latest nightly
+
+note: rustc 1.88.0-nightly (7ab5976f9 2025-05-07) running on x86_64-unknown-linux-gnu
+
---
Full unnormalized output:
error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:10:22
   |
LL |     if let Some(n) = dbg!(n.checked_sub(4)) { n } else { n }
   |                      ^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `-D clippy::dbg-macro` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::dbg_macro)]`
help: remove the invocation before committing it to a version control system
   |
LL -     if let Some(n) = dbg!(n.checked_sub(4)) { n } else { n }
LL +     if let Some(n) = n.checked_sub(4) { n } else { n }
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:16:8
   |
LL |     if dbg!(n <= 1) {
   |        ^^^^^^^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -     if dbg!(n <= 1) {
LL +     if n <= 1 {
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:19:9
   |
---

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:22:9
   |
LL |         dbg!(n * factorial(n - 1))
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -         dbg!(n * factorial(n - 1))
LL +         n * factorial(n - 1)
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:28:5
   |
---

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:31:14
   |
LL |     foo(3) + dbg!(factorial(4));
   |              ^^^^^^^^^^^^^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -     foo(3) + dbg!(factorial(4));
LL +     foo(3) + factorial(4);
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:34:5
   |
LL |     dbg!(1, 2, 3, 4, 5);
   |     ^^^^^^^^^^^^^^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -     dbg!(1, 2, 3, 4, 5);
LL +     (1, 2, 3, 4, 5);
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:56:5
   |
---

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:60:13
   |
LL |     let _ = dbg!();
   |             ^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -     let _ = dbg!();
LL +     let _ = ();
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:63:9
   |
LL |     bar(dbg!());
   |         ^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -     bar(dbg!());
LL +     bar(());
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:66:10
   |
LL |     foo!(dbg!());
   |          ^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -     foo!(dbg!());
LL +     foo!(());
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:69:16
   |
LL |     foo2!(foo!(dbg!()));
   |                ^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -     foo2!(foo!(dbg!()));
LL +     foo2!(foo!(()));
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:51:13
   |
LL |             dbg!();
   |             ^^^^^^
...
LL |     expand_to_dbg!();
   |     ---------------- in this macro invocation
   |
   = note: this error originates in the macro `expand_to_dbg` (in Nightly builds, run with -Z macro-backtrace for more info)
help: remove the invocation before committing it to a version control system
   |
LL -             dbg!();
   |

---

thread 'rustc' panicked at src/tools/clippy/clippy_lints/src/dbg_macro.rs:118:30:
internal error: entered unreachable code
stack backtrace:
   0:     0x7ff58d6dbe60 - <<std[722de03b977f82e2]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[b85b81897dd7c607]::fmt::Display>::fmt
   1:     0x7ff58d7383bf - core[b85b81897dd7c607]::fmt::write
   2:     0x7ff58d6ced49 - <std[722de03b977f82e2]::sys::stdio::unix::Stderr as std[722de03b977f82e2]::io::Write>::write_fmt
   3:     0x7ff58d6dbd02 - <std[722de03b977f82e2]::sys::backtrace::BacktraceLock>::print
   4:     0x7ff58d6e0508 - std[722de03b977f82e2]::panicking::default_hook::{closure#0}
   5:     0x7ff58d6e02a2 - std[722de03b977f82e2]::panicking::default_hook
   6:     0x7ff588c9af22 - <alloc[8f667485acfd4fc8]::boxed::Box<rustc_driver_impl[5c0983139a933bca]::install_ice_hook::{closure#1}> as core[b85b81897dd7c607]::ops::function::Fn<(&dyn for<'a, 'b> core[b85b81897dd7c607]::ops::function::Fn<(&'a std[722de03b977f82e2]::panic::PanicHookInfo<'b>,), Output = ()> + core[b85b81897dd7c607]::marker::Sync + core[b85b81897dd7c607]::marker::Send, &std[722de03b977f82e2]::panic::PanicHookInfo)>>::call
   7:     0x7ff58d6e117b - std[722de03b977f82e2]::panicking::rust_panic_with_hook
   8:     0x7ff58d6e0d4a - std[722de03b977f82e2]::panicking::begin_panic_handler::{closure#0}
   9:     0x7ff58d6dc479 - std[722de03b977f82e2]::sys::backtrace::__rust_end_short_backtrace::<std[722de03b977f82e2]::panicking::begin_panic_handler::{closure#0}, !>
  10:     0x7ff58d6e098d - __rustc[210dc653f36a8667]::rust_begin_unwind
  11:     0x7ff58d734000 - core[b85b81897dd7c607]::panicking::panic_fmt
  12:     0x7ff58d73408c - core[b85b81897dd7c607]::panicking::panic
  13:     0x55b4249a17c7 - <clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, &str, <clippy_lints[2d5f372497376e35]::dbg_macro::DbgMacro as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr::{closure#0}>::{closure#0} as core[b85b81897dd7c607]::ops::function::FnOnce<(&mut rustc_errors[8c94111977c95880]::diagnostic::Diag<()>,)>>::call_once::{shim:vtable#0}
  14:     0x7ff58cf158b3 - rustc_middle[4a64cfee706b595]::lint::lint_level::lint_level_impl
  15:     0x55b424956d86 - rustc_middle[4a64cfee706b595]::lint::lint_level::<clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, &str, <clippy_lints[2d5f372497376e35]::dbg_macro::DbgMacro as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr::{closure#0}>::{closure#0}>
  16:     0x55b42496afbc - <rustc_lint[96dc6baabd10bd4e]::context::LateContext as rustc_lint[96dc6baabd10bd4e]::context::LintContext>::opt_span_lint::<rustc_span[5de9bfc504d26a6f]::span_encoding::Span, clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, &str, <clippy_lints[2d5f372497376e35]::dbg_macro::DbgMacro as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr::{closure#0}>::{closure#0}>
  17:     0x55b42470cb56 - <clippy_lints[2d5f372497376e35]::dbg_macro::DbgMacro as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr
  18:     0x7ff58b5fe513 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  19:     0x7ff58b6d38fb - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  20:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  21:     0x7ff58b6d310b - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  22:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  23:     0x7ff58b601ab9 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_local
  24:     0x7ff58b5ff277 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_stmt
  25:     0x7ff58b60254c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_block
  26:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  27:     0x7ff58b6d38fb - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  28:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  29:     0x7ff58b5ff265 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_stmt
  30:     0x7ff58b60254c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_block
  31:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  32:     0x7ff58b5ff265 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_stmt
  33:     0x7ff58b60254c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_block
  34:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  35:     0x7ff58b5fc724 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_body
  36:     0x7ff58b5ffae9 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_fn
  37:     0x7ff58b6d6323 - rustc_hir[a97542dc954c1f22]::intravisit::walk_item::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  38:     0x7ff58b5f3de4 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_item
  39:     0x7ff58b60163c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_mod
  40:     0x7ff58b5f3de4 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_item
  41:     0x7ff58b60163c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_mod
  42:     0x7ff58b605531 - rustc_lint[96dc6baabd10bd4e]::late::late_lint_crate
  43:     0x7ff58b58dbce - rustc_data_structures[6b0c338be68cbdf0]::sync::parallel::serial_join::<rustc_lint[96dc6baabd10bd4e]::late::check_crate::{closure#0}, rustc_lint[96dc6baabd10bd4e]::late::check_crate::{closure#1}, (), ()>
  44:     0x7ff58b605b7b - rustc_lint[96dc6baabd10bd4e]::late::check_crate
  45:     0x7ff588ed3fe3 - <rustc_data_structures[6b0c338be68cbdf0]::sync::parallel::ParallelGuard>::run::<(), rustc_interface[7e2780b9127a51f3]::passes::analysis::{closure#0}::{closure#1}::{closure#0}>
  46:     0x7ff589091c51 - <rustc_session[1697b6e1c1bf6b08]::session::Session>::time::<(), rustc_interface[7e2780b9127a51f3]::passes::analysis::{closure#0}>
  47:     0x7ff589020bf2 - rustc_interface[7e2780b9127a51f3]::passes::analysis
  48:     0x7ff58b9821f3 - rustc_query_impl[296c58625f4e3441]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[296c58625f4e3441]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4a64cfee706b595]::query::erase::Erased<[u8; 0usize]>>
  49:     0x7ff58b8aa0d1 - <rustc_query_impl[296c58625f4e3441]::query_impl::analysis::dynamic_query::{closure#2} as core[b85b81897dd7c607]::ops::function::FnOnce<(rustc_middle[4a64cfee706b595]::ty::context::TyCtxt, ())>>::call_once
  50:     0x7ff58b770269 - rustc_query_system[e31d6d9fbccfd6f2]::query::plumbing::try_execute_query::<rustc_query_impl[296c58625f4e3441]::DynamicConfig<rustc_query_system[e31d6d9fbccfd6f2]::query::caches::SingleCache<rustc_middle[4a64cfee706b595]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[296c58625f4e3441]::plumbing::QueryCtxt, false>
  51:     0x7ff58ba785d2 - rustc_query_impl[296c58625f4e3441]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  52:     0x7ff588c2e833 - <std[722de03b977f82e2]::thread::local::LocalKey<core[b85b81897dd7c607]::cell::Cell<*const ()>>>::with::<rustc_middle[4a64cfee706b595]::ty::context::tls::enter_context<<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>::enter<rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>::{closure#1}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>::{closure#0}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>
  53:     0x7ff588c4b072 - <rustc_middle[4a64cfee706b595]::ty::context::TyCtxt>::create_global_ctxt::<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  54:     0x7ff588c2ae46 - <rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[b85b81897dd7c607]::ops::function::FnOnce<(&rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  55:     0x7ff588c9a2b6 - <alloc[8f667485acfd4fc8]::boxed::Box<dyn for<'a> core[b85b81897dd7c607]::ops::function::FnOnce<(&'a rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &'a std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena<'a>>, &'a rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena<'a>>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}), Output = core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>> as core[b85b81897dd7c607]::ops::function::FnOnce<(&rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2})>>::call_once
  56:     0x7ff588c087e7 - rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt::<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>
  57:     0x7ff588ba2a69 - rustc_span[5de9bfc504d26a6f]::create_session_globals_then::<(), rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
  58:     0x7ff588bc3dd9 - std[722de03b977f82e2]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  59:     0x7ff588bc6e44 - <<std[722de03b977f82e2]::thread::Builder>::spawn_unchecked_<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[b85b81897dd7c607]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  60:     0x7ff58d6e4aa5 - <std[722de03b977f82e2]::sys::pal::unix::thread::Thread>::new::thread_start
  61:     0x7ff58686bac3 - <unknown>
  62:     0x7ff5868fd850 - <unknown>
  63:                0x0 - <unknown>

error: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new?template=ice.yml

note: please make sure that you have updated to the latest nightly

note: rustc 1.88.0-nightly (7ab5976f9 2025-05-07) running on x86_64-unknown-linux-gnu

---
full stderr:
error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:10:22
   |
LL |     if let Some(n) = dbg!(n.checked_sub(4)) { n } else { n }
   |                      ^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `-D clippy::dbg-macro` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::dbg_macro)]`
help: remove the invocation before committing it to a version control system
   |
LL -     if let Some(n) = dbg!(n.checked_sub(4)) { n } else { n }
LL +     if let Some(n) = n.checked_sub(4) { n } else { n }
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:16:8
   |
LL |     if dbg!(n <= 1) {
   |        ^^^^^^^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -     if dbg!(n <= 1) {
LL +     if n <= 1 {
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:19:9
   |
---

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:22:9
   |
LL |         dbg!(n * factorial(n - 1))
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -         dbg!(n * factorial(n - 1))
LL +         n * factorial(n - 1)
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:28:5
   |
---

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:31:14
   |
LL |     foo(3) + dbg!(factorial(4));
   |              ^^^^^^^^^^^^^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -     foo(3) + dbg!(factorial(4));
LL +     foo(3) + factorial(4);
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:34:5
   |
LL |     dbg!(1, 2, 3, 4, 5);
   |     ^^^^^^^^^^^^^^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -     dbg!(1, 2, 3, 4, 5);
LL +     (1, 2, 3, 4, 5);
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:56:5
   |
---

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:60:13
   |
LL |     let _ = dbg!();
   |             ^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -     let _ = dbg!();
LL +     let _ = ();
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:63:9
   |
LL |     bar(dbg!());
   |         ^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -     bar(dbg!());
LL +     bar(());
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:66:10
   |
LL |     foo!(dbg!());
   |          ^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -     foo!(dbg!());
LL +     foo!(());
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:69:16
   |
LL |     foo2!(foo!(dbg!()));
   |                ^^^^^^
   |
help: remove the invocation before committing it to a version control system
   |
LL -     foo2!(foo!(dbg!()));
LL +     foo2!(foo!(()));
   |

error: the `dbg!` macro is intended as a debugging tool
##[error]  --> tests/ui/dbg_macro/dbg_macro.rs:51:13
   |
LL |             dbg!();
   |             ^^^^^^
...
LL |     expand_to_dbg!();
   |     ---------------- in this macro invocation
   |
   = note: this error originates in the macro `expand_to_dbg` (in Nightly builds, run with -Z macro-backtrace for more info)
help: remove the invocation before committing it to a version control system
   |
LL -             dbg!();
   |

---

thread 'rustc' panicked at src/tools/clippy/clippy_lints/src/dbg_macro.rs:118:30:
internal error: entered unreachable code
stack backtrace:
   0:     0x7ff58d6dbe60 - <<std[722de03b977f82e2]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[b85b81897dd7c607]::fmt::Display>::fmt
   1:     0x7ff58d7383bf - core[b85b81897dd7c607]::fmt::write
   2:     0x7ff58d6ced49 - <std[722de03b977f82e2]::sys::stdio::unix::Stderr as std[722de03b977f82e2]::io::Write>::write_fmt
   3:     0x7ff58d6dbd02 - <std[722de03b977f82e2]::sys::backtrace::BacktraceLock>::print
   4:     0x7ff58d6e0508 - std[722de03b977f82e2]::panicking::default_hook::{closure#0}
   5:     0x7ff58d6e02a2 - std[722de03b977f82e2]::panicking::default_hook
   6:     0x7ff588c9af22 - <alloc[8f667485acfd4fc8]::boxed::Box<rustc_driver_impl[5c0983139a933bca]::install_ice_hook::{closure#1}> as core[b85b81897dd7c607]::ops::function::Fn<(&dyn for<'a, 'b> core[b85b81897dd7c607]::ops::function::Fn<(&'a std[722de03b977f82e2]::panic::PanicHookInfo<'b>,), Output = ()> + core[b85b81897dd7c607]::marker::Sync + core[b85b81897dd7c607]::marker::Send, &std[722de03b977f82e2]::panic::PanicHookInfo)>>::call
   7:     0x7ff58d6e117b - std[722de03b977f82e2]::panicking::rust_panic_with_hook
   8:     0x7ff58d6e0d4a - std[722de03b977f82e2]::panicking::begin_panic_handler::{closure#0}
   9:     0x7ff58d6dc479 - std[722de03b977f82e2]::sys::backtrace::__rust_end_short_backtrace::<std[722de03b977f82e2]::panicking::begin_panic_handler::{closure#0}, !>
  10:     0x7ff58d6e098d - __rustc[210dc653f36a8667]::rust_begin_unwind
  11:     0x7ff58d734000 - core[b85b81897dd7c607]::panicking::panic_fmt
  12:     0x7ff58d73408c - core[b85b81897dd7c607]::panicking::panic
  13:     0x55b4249a17c7 - <clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, &str, <clippy_lints[2d5f372497376e35]::dbg_macro::DbgMacro as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr::{closure#0}>::{closure#0} as core[b85b81897dd7c607]::ops::function::FnOnce<(&mut rustc_errors[8c94111977c95880]::diagnostic::Diag<()>,)>>::call_once::{shim:vtable#0}
  14:     0x7ff58cf158b3 - rustc_middle[4a64cfee706b595]::lint::lint_level::lint_level_impl
  15:     0x55b424956d86 - rustc_middle[4a64cfee706b595]::lint::lint_level::<clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, &str, <clippy_lints[2d5f372497376e35]::dbg_macro::DbgMacro as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr::{closure#0}>::{closure#0}>
  16:     0x55b42496afbc - <rustc_lint[96dc6baabd10bd4e]::context::LateContext as rustc_lint[96dc6baabd10bd4e]::context::LintContext>::opt_span_lint::<rustc_span[5de9bfc504d26a6f]::span_encoding::Span, clippy_utils[c196d6a64b72d1c]::diagnostics::span_lint_and_then<rustc_lint[96dc6baabd10bd4e]::context::LateContext, rustc_span[5de9bfc504d26a6f]::span_encoding::Span, &str, <clippy_lints[2d5f372497376e35]::dbg_macro::DbgMacro as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr::{closure#0}>::{closure#0}>
  17:     0x55b42470cb56 - <clippy_lints[2d5f372497376e35]::dbg_macro::DbgMacro as rustc_lint[96dc6baabd10bd4e]::passes::LateLintPass>::check_expr
  18:     0x7ff58b5fe513 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  19:     0x7ff58b6d38fb - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  20:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  21:     0x7ff58b6d310b - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  22:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  23:     0x7ff58b601ab9 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_local
  24:     0x7ff58b5ff277 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_stmt
  25:     0x7ff58b60254c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_block
  26:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  27:     0x7ff58b6d38fb - rustc_hir[a97542dc954c1f22]::intravisit::walk_expr::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  28:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  29:     0x7ff58b5ff265 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_stmt
  30:     0x7ff58b60254c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_block
  31:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  32:     0x7ff58b5ff265 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_stmt
  33:     0x7ff58b60254c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_block
  34:     0x7ff58b5fe527 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_expr::{closure#0}
  35:     0x7ff58b5fc724 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_body
  36:     0x7ff58b5ffae9 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_fn
  37:     0x7ff58b6d6323 - rustc_hir[a97542dc954c1f22]::intravisit::walk_item::<rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass>>
  38:     0x7ff58b5f3de4 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_item
  39:     0x7ff58b60163c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_mod
  40:     0x7ff58b5f3de4 - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_nested_item
  41:     0x7ff58b60163c - <rustc_lint[96dc6baabd10bd4e]::late::LateContextAndPass<rustc_lint[96dc6baabd10bd4e]::late::RuntimeCombinedLateLintPass> as rustc_hir[a97542dc954c1f22]::intravisit::Visitor>::visit_mod
  42:     0x7ff58b605531 - rustc_lint[96dc6baabd10bd4e]::late::late_lint_crate
  43:     0x7ff58b58dbce - rustc_data_structures[6b0c338be68cbdf0]::sync::parallel::serial_join::<rustc_lint[96dc6baabd10bd4e]::late::check_crate::{closure#0}, rustc_lint[96dc6baabd10bd4e]::late::check_crate::{closure#1}, (), ()>
  44:     0x7ff58b605b7b - rustc_lint[96dc6baabd10bd4e]::late::check_crate
  45:     0x7ff588ed3fe3 - <rustc_data_structures[6b0c338be68cbdf0]::sync::parallel::ParallelGuard>::run::<(), rustc_interface[7e2780b9127a51f3]::passes::analysis::{closure#0}::{closure#1}::{closure#0}>
  46:     0x7ff589091c51 - <rustc_session[1697b6e1c1bf6b08]::session::Session>::time::<(), rustc_interface[7e2780b9127a51f3]::passes::analysis::{closure#0}>
  47:     0x7ff589020bf2 - rustc_interface[7e2780b9127a51f3]::passes::analysis
  48:     0x7ff58b9821f3 - rustc_query_impl[296c58625f4e3441]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[296c58625f4e3441]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[4a64cfee706b595]::query::erase::Erased<[u8; 0usize]>>
  49:     0x7ff58b8aa0d1 - <rustc_query_impl[296c58625f4e3441]::query_impl::analysis::dynamic_query::{closure#2} as core[b85b81897dd7c607]::ops::function::FnOnce<(rustc_middle[4a64cfee706b595]::ty::context::TyCtxt, ())>>::call_once
  50:     0x7ff58b770269 - rustc_query_system[e31d6d9fbccfd6f2]::query::plumbing::try_execute_query::<rustc_query_impl[296c58625f4e3441]::DynamicConfig<rustc_query_system[e31d6d9fbccfd6f2]::query::caches::SingleCache<rustc_middle[4a64cfee706b595]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[296c58625f4e3441]::plumbing::QueryCtxt, false>
  51:     0x7ff58ba785d2 - rustc_query_impl[296c58625f4e3441]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  52:     0x7ff588c2e833 - <std[722de03b977f82e2]::thread::local::LocalKey<core[b85b81897dd7c607]::cell::Cell<*const ()>>>::with::<rustc_middle[4a64cfee706b595]::ty::context::tls::enter_context<<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>::enter<rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>::{closure#1}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>::{closure#0}, core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>
  53:     0x7ff588c4b072 - <rustc_middle[4a64cfee706b595]::ty::context::TyCtxt>::create_global_ctxt::<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  54:     0x7ff588c2ae46 - <rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[b85b81897dd7c607]::ops::function::FnOnce<(&rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  55:     0x7ff588c9a2b6 - <alloc[8f667485acfd4fc8]::boxed::Box<dyn for<'a> core[b85b81897dd7c607]::ops::function::FnOnce<(&'a rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &'a std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena<'a>>, &'a rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena<'a>>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}), Output = core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>>> as core[b85b81897dd7c607]::ops::function::FnOnce<(&rustc_session[1697b6e1c1bf6b08]::session::Session, rustc_middle[4a64cfee706b595]::ty::context::CurrentGcx, alloc[8f667485acfd4fc8]::sync::Arc<rustc_data_structures[6b0c338be68cbdf0]::jobserver::Proxy>, &std[722de03b977f82e2]::sync::once_lock::OnceLock<rustc_middle[4a64cfee706b595]::ty::context::GlobalCtxt>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_middle[4a64cfee706b595]::arena::Arena>, &rustc_data_structures[6b0c338be68cbdf0]::sync::worker_local::WorkerLocal<rustc_hir[a97542dc954c1f22]::Arena>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2})>>::call_once
  56:     0x7ff588c087e7 - rustc_interface[7e2780b9127a51f3]::passes::create_and_enter_global_ctxt::<core[b85b81897dd7c607]::option::Option<rustc_interface[7e2780b9127a51f3]::queries::Linker>, rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}::{closure#2}>
  57:     0x7ff588ba2a69 - rustc_span[5de9bfc504d26a6f]::create_session_globals_then::<(), rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
  58:     0x7ff588bc3dd9 - std[722de03b977f82e2]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  59:     0x7ff588bc6e44 - <<std[722de03b977f82e2]::thread::Builder>::spawn_unchecked_<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_with_globals<rustc_interface[7e2780b9127a51f3]::util::run_in_thread_pool_with_globals<rustc_interface[7e2780b9127a51f3]::interface::run_compiler<(), rustc_driver_impl[5c0983139a933bca]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[b85b81897dd7c607]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  60:     0x7ff58d6e4aa5 - <std[722de03b977f82e2]::sys::pal::unix::thread::Thread>::new::thread_start
  61:     0x7ff58686bac3 - <unknown>
  62:     0x7ff5868fd850 - <unknown>
  63:                0x0 - <unknown>

error: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new?template=ice.yml

note: please make sure that you have updated to the latest nightly

note: rustc 1.88.0-nightly (7ab5976f9 2025-05-07) running on x86_64-unknown-linux-gnu

@bors
Copy link
Collaborator

bors commented May 7, 2025

☀️ Try build successful - checks-actions
Build commit: beb8d4e (beb8d4ea463c3ae10548aabc62ac2cff505be075)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (beb8d4e): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @rustbot label: +perf-regression-triaged along with sufficient written justification. If you cannot justify the regressions please fix the regressions and do another perf run. If the next run shows neutral or positive results, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

mean range count
Regressions ❌
(primary)
0.4% [0.2%, 1.1%] 24
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.4% [-4.5%, -0.2%] 2
Improvements ✅
(secondary)
-1.8% [-1.9%, -1.7%] 6
All ❌✅ (primary) 0.2% [-4.5%, 1.1%] 26

Max RSS (memory usage)

Results (primary 0.4%, secondary -0.2%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
1.7% [0.4%, 12.3%] 27
Regressions ❌
(secondary)
3.8% [3.8%, 3.8%] 1
Improvements ✅
(primary)
-2.2% [-6.1%, -0.5%] 13
Improvements ✅
(secondary)
-2.3% [-3.2%, -1.3%] 2
All ❌✅ (primary) 0.4% [-6.1%, 12.3%] 40

Cycles

Results (primary 0.1%, secondary 2.4%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
0.7% [0.4%, 2.0%] 14
Regressions ❌
(secondary)
2.4% [2.4%, 2.4%] 1
Improvements ✅
(primary)
-2.6% [-5.4%, -0.5%] 3
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.1% [-5.4%, 2.0%] 17

Binary size

Results (primary 0.1%, secondary 0.1%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
0.1% [0.0%, 0.8%] 87
Regressions ❌
(secondary)
0.1% [0.0%, 0.2%] 15
Improvements ✅
(primary)
-0.1% [-0.4%, -0.0%] 6
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.1% [-0.4%, 0.8%] 93

Bootstrap: 770.356s -> 770.437s (0.01%)
Artifact size: 365.20 MiB -> 365.11 MiB (-0.02%)

@rustbot rustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels May 7, 2025
@m-ou-se
Copy link
Member Author

m-ou-se commented May 8, 2025

The job x86_64-gnu-tools failed!

Good morning, Clippy!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-fmt Area: `core::fmt` needs-fcp This change is insta-stable, so needs a completed FCP to proceed. perf-regression Performance regression. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-lang Relevant to the language team, which will review and decide on the PR/issue. T-libs-api Relevant to the library API team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Allow storing format_args! in a let binding
5 participants