From 855ea48ccc01b040539d1d32d76cd4cd472aa7c0 Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Wed, 7 May 2025 14:29:23 +0200 Subject: [PATCH] Add test for temporary lifetime extension in `Self()` syntax. --- .../temporary-lifetime-extension-tuple-ctor.rs | 11 +++++++++++ .../temporary-lifetime-extension-tuple-ctor.stderr | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/ui/lifetimes/temporary-lifetime-extension-tuple-ctor.rs b/tests/ui/lifetimes/temporary-lifetime-extension-tuple-ctor.rs index cf60991e5191..bb537f855a4a 100644 --- a/tests/ui/lifetimes/temporary-lifetime-extension-tuple-ctor.rs +++ b/tests/ui/lifetimes/temporary-lifetime-extension-tuple-ctor.rs @@ -7,6 +7,17 @@ fn temp() -> String { #[derive(Debug)] struct X<'a>(&'a String); +trait T<'a> { + const A: X<'a>; + const B: X<'a>; +} + +impl<'a> T<'a> for X<'a> { + // Check both Self() and X() syntax: + const A: X<'a> = Self(&String::new()); + const B: X<'a> = X(&String::new()); +} + fn main() { let a = &temp(); let b = Some(&temp()); diff --git a/tests/ui/lifetimes/temporary-lifetime-extension-tuple-ctor.stderr b/tests/ui/lifetimes/temporary-lifetime-extension-tuple-ctor.stderr index 8a4b7e8ae43b..66f9140f63cf 100644 --- a/tests/ui/lifetimes/temporary-lifetime-extension-tuple-ctor.stderr +++ b/tests/ui/lifetimes/temporary-lifetime-extension-tuple-ctor.stderr @@ -1,5 +1,5 @@ error[E0716]: temporary value dropped while borrowed - --> $DIR/temporary-lifetime-extension-tuple-ctor.rs:23:19 + --> $DIR/temporary-lifetime-extension-tuple-ctor.rs:34:19 | LL | let g = some(&temp()); | ^^^^^^ - temporary value is freed at the end of this statement