| An `impl` for a `#[marker]` trait tried to override an associated item. |
| |
| Erroneous code example: |
| |
| ```compile_fail,E0715 |
| #![feature(marker_trait_attr)] |
| |
| #[marker] |
| trait Marker { |
| const N: usize = 0; |
| fn do_something() {} |
| } |
| |
| struct OverrideConst; |
| impl Marker for OverrideConst { // error! |
| const N: usize = 1; |
| } |
| # fn main() {} |
| ``` |
| |
| Because marker traits are allowed to have multiple implementations for the same |
| type, it's not allowed to override anything in those implementations, as it |
| would be ambiguous which override should actually be used. |