Rust errors / Types and traits
Rust compiler error · checked with rustc 1.99.0
Rust error E0438: const `BAR` is not a member of trait `Foo`
What it meansAn associated constant whose name does not match any of the associated constants in the trait was used when implementing the trait.
What rustc prints
error[E0438]: const `BAR` is not a member of trait `Foo`
--> main.rs:4:5
|
4 | const BAR: bool = true;
| ^^^^^^^^^^^^^^^^^^^^^^^ not a member of trait `Foo`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 associated constant whose name does not match any of the associated constants in the trait was used when implementing the trait.
Erroneous code example:
trait Foo {}
impl Foo for i32 {
const BAR: bool = true;
}
Trait implementations can only implement associated constants that are members of the trait in question.
The solution to this problem is to remove the extraneous associated constant:
trait Foo {}
impl Foo for i32 {}From rustc --explain E0438 (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
- E0434can't capture dynamic environment in a fn item
- E0437type `Bar` is not a member of trait `Foo`
- E0446private type `Bar` in public interface
- E0449visibility qualifiers are not permitted here
Up next
Often hit nextE0308: mismatched typesA related error from the same family.Read it next →Did this answer your question?