Rust errors / Types and traits
Rust compiler error · checked with rustc 1.99.0
Rust error E0715: impls for marker traits cannot contain items
What it meansAn impl for a #[marker] trait tried to override an associated item.
What rustc prints
error[E0715]: impls for marker traits cannot contain items
--> main.rs:10:1
|
10 | impl Marker for OverrideConst { // error!
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Real output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.
The compiler team's explanation
An impl for a #[marker] trait tried to override an associated item.
Erroneous code example:
#![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;
}
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.
From rustc --explain E0715 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0308mismatched types
- E0277the trait bound is not satisfied
- E0599no method named X found in the current scope
- E0433failed to resolve
- E0692transparent struct cannot have other repr hints
- E0714marker traits cannot have associated items
- E0719the value of the associated type `Item` in trait `Iterator` is already specified
- E0720cannot resolve opaque type
Up next
Often hit nextE0308: mismatched typesA related error from the same family.Read it next →Did this answer your question?