mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-28 02:57:37 +00:00

The commit adds "associated" to the description of associated types and associated consts, to match the description of associated functions. This increases error message precision and consistency with `AssocKind::fmt`. The commit also notes an imperfection in `AssocKind::fmt`; fixing this imperfection is possible but beyond the scope of this PR.
34 lines
780 B
Rust
34 lines
780 B
Rust
#![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() {}
|