Rust errors / Types and traits
Rust compiler error · checked with rustc 1.99.0
Rust error E0749: negative impls cannot have any items
What it meansAn item was added on a negative impl.
What rustc prints
error[E0749]: negative impls cannot have any items
--> main.rs:6:5
|
6 | type Foo = i32; // 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 item was added on a negative impl.
Erroneous code example:
trait MyTrait {
type Foo;
}
impl !MyTrait for u32 {
type Foo = i32; // error!
}
Negative impls are not allowed to have any items. Negative impls declare that a trait is **not** implemented (and never will be) and hence there is no need to specify the values for trait methods or other items.
One way to fix this is to remove the items in negative impls:
trait MyTrait {
type Foo;
}
impl !MyTrait for u32 {}From rustc --explain E0749 (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
- E0743C-variadic type `...` may not be nested inside another type
- E0746return type cannot have an unboxed trait object
- E0750negative impls cannot be default impls
- E0751found both positive and negative implementation of trait `MyTrait` for type `i32`:
Up next
Often hit nextE0308: mismatched typesA related error from the same family.Read it next →Did this answer your question?