| #![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 |
| //~| ERROR lifetime parameters or bounds on associated const `STATIC` do not match the trait declaration |
| } |
| |
| struct B; |
| impl Bar<'static> for B { |
| const STATIC: &str = ""; |
| } |
| |
| 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 |
| } |
| "" |
| }; |
| } |
| |
| fn main() {} |