Rust errors / Ownership and borrowing
Rust compiler error · checked with rustc 1.99.0
Rust error E0568: auto traits cannot have super traits or lifetime bounds
What it meansA super trait has been added to an auto trait.
What rustc prints
error[E0568]: auto traits cannot have super traits or lifetime bounds
--> main.rs:3:20
|
3 | auto trait Bound : Copy {} // error!
| ----- ^^^^
| |
| auto traits cannot have super traits or lifetime boundsReal 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
A super trait has been added to an auto trait.
Erroneous code example:
#![feature(auto_traits)]
auto trait Bound : Copy {} // error!
fn main() {}
Since an auto trait is implemented on all existing types, adding a super trait would filter out a lot of those types. In the current example, almost none of all the existing types could implement Bound because very few of them have the Copy trait.
To fix this issue, just remove the super trait:
#![feature(auto_traits)]
auto trait Bound {} // ok!
fn main() {}From rustc --explain E0568 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0382borrow of moved value
- E0499cannot borrow as mutable more than once at a time
- E0502cannot borrow as mutable because it is also borrowed as immutable
- E0106missing lifetime specifier
- E0521borrowed data escapes outside of closure
- E0557feature has been removed
- E0581return type references lifetime `'a`, which is not constrained by the fn input types
- E0582binding for associated type `Output` references lifetime `'a`, which does not appear in the trait input types
Up next
Often hit nextE0382: borrow of moved valueA related error from the same family.Read it next →Did this answer your question?