diff options
Diffstat (limited to 'compiler/rustc_error_codes/src/error_codes/E0715.md')
-rw-r--r-- | compiler/rustc_error_codes/src/error_codes/E0715.md | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/compiler/rustc_error_codes/src/error_codes/E0715.md b/compiler/rustc_error_codes/src/error_codes/E0715.md new file mode 100644 index 000000000..b27702b3c --- /dev/null +++ b/compiler/rustc_error_codes/src/error_codes/E0715.md @@ -0,0 +1,23 @@ +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. |