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`.