2024-06-14 00:33:43 +00:00
|
|
|
#![deny(elided_lifetimes_in_associated_constant)]
|
|
|
|
|
|
|
|
trait Bar<'a> {
|
|
|
|
const STATIC: &'a str;
|
|
|
|
}
|
|
|
|
|
|
|
|
struct A;
|
|
|
|
impl Bar<'_> for A {
|
|
|
|
const STATIC: &str = "";
|
|
|
|
//~^ ERROR `&` without an explicit lifetime name cannot be used here
|
|
|
|
//~| WARN this was previously accepted by the compiler but is being phased out
|
2025-04-11 00:10:06 +00:00
|
|
|
//~| ERROR lifetime parameters or bounds on associated const `STATIC` do not match the trait declaration
|
2024-06-14 00:33:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
struct B;
|
|
|
|
impl Bar<'static> for B {
|
|
|
|
const STATIC: &str = "";
|
|
|
|
}
|
|
|
|
|
2025-03-28 17:01:23 +00:00
|
|
|
struct C;
|
|
|
|
impl Bar<'_> for C {
|
|
|
|
// make ^^ not cause
|
|
|
|
const STATIC: &'static str = {
|
|
|
|
struct B;
|
|
|
|
impl Bar<'static> for B {
|
|
|
|
const STATIC: &str = "";
|
|
|
|
// ^ to emit a future incompat warning
|
|
|
|
}
|
|
|
|
""
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2024-06-14 00:33:43 +00:00
|
|
|
fn main() {}
|