From ab3e64f0803cc633551f8482a7bed70982622c23 Mon Sep 17 00:00:00 2001 From: SzilvasiPeter Date: Tue, 28 Jul 2026 09:50:31 +0200 Subject: [PATCH] test: add test suite for the 85681 issue fix: give reason before the issue number --- ...ssage-impl-trait-double-ref-issue-85681.rs | 13 +++++++++++ ...e-impl-trait-double-ref-issue-85681.stderr | 23 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 tests/ui/traits/bad-error-message-impl-trait-double-ref-issue-85681.rs create mode 100644 tests/ui/traits/bad-error-message-impl-trait-double-ref-issue-85681.stderr diff --git a/tests/ui/traits/bad-error-message-impl-trait-double-ref-issue-85681.rs b/tests/ui/traits/bad-error-message-impl-trait-double-ref-issue-85681.rs new file mode 100644 index 0000000000000..cce714757cc62 --- /dev/null +++ b/tests/ui/traits/bad-error-message-impl-trait-double-ref-issue-85681.rs @@ -0,0 +1,13 @@ +fn foo(_x: u32, a: impl Into, _y: u32, b: impl Into) { + println!("fox: a={}, b={}", a.into(), b.into()); +} + +fn main() { + let bar: String = "bar".to_string(); + let baz: &str = "baz"; + + for (a, b) in &[(&bar, baz)] { + let a: &String = a; + foo(42, a, 43, b); //~ ERROR: the trait bound `String: From<&&str>` is not satisfied [E0277] + } +} diff --git a/tests/ui/traits/bad-error-message-impl-trait-double-ref-issue-85681.stderr b/tests/ui/traits/bad-error-message-impl-trait-double-ref-issue-85681.stderr new file mode 100644 index 0000000000000..422660d580efc --- /dev/null +++ b/tests/ui/traits/bad-error-message-impl-trait-double-ref-issue-85681.stderr @@ -0,0 +1,23 @@ +error[E0277]: the trait bound `String: From<&&str>` is not satisfied + --> $DIR/bad-error-message-impl-trait-double-ref-issue-85681.rs:11:24 + | +LL | foo(42, a, 43, b); + | --- ^ the trait `From<&&str>` is not implemented for `String` + | | + | required by a bound introduced by this call + | + = help: consider casting the `&&str` value to `&str` + = note: required for `&&str` to implement `Into` +note: required by a bound in `foo` + --> $DIR/bad-error-message-impl-trait-double-ref-issue-85681.rs:1:56 + | +LL | fn foo(_x: u32, a: impl Into, _y: u32, b: impl Into) { + | ^^^^^^^^^^^^ required by this bound in `foo` +help: consider dereferencing here + | +LL | foo(42, a, 43, *b); + | + + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0277`.