add regression test for 119686
diff --git a/tests/ui/borrowck/async-trait-proposes-let-binding.rs b/tests/ui/borrowck/async-trait-proposes-let-binding.rs new file mode 100644 index 0000000..1b85644 --- /dev/null +++ b/tests/ui/borrowck/async-trait-proposes-let-binding.rs
@@ -0,0 +1,16 @@ +// Regression test for <https://github.com/rust-lang/rust/issues/119686>. +//@ edition: 2024 +struct A; +pub trait Trait1 { + async fn func() -> (); +} + +impl Trait1 for A { + async fn func() -> () { + let p = std::convert::identity(&("".to_string())); + //~^ ERROR temporary value dropped while borrowed + let _q = p; + } +} + +fn main() {}
diff --git a/tests/ui/borrowck/async-trait-proposes-let-binding.stderr b/tests/ui/borrowck/async-trait-proposes-let-binding.stderr new file mode 100644 index 0000000..973799e --- /dev/null +++ b/tests/ui/borrowck/async-trait-proposes-let-binding.stderr
@@ -0,0 +1,16 @@ +error[E0716]: temporary value dropped while borrowed + --> $DIR/async-trait-proposes-let-binding.rs:10:41 + | +LL | let p = std::convert::identity(&("".to_string())); + | ^^^^^^^^^^^^^^^^ - temporary value is freed at the end of this statement + | | + | creates a temporary value which is freed while still in use +LL | +LL | let _q = p; + | - borrow later used here + | + = note: consider using a `let` binding to create a longer lived value + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0716`.