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