Rust errors / Everything else
Rust compiler error · checked with rustc 1.99.0
Rust error E0281: #### Note: this error code is no longer emitted by the compiler
What it means#### Note: this error code is no longer emitted by the compiler.
Retired: rustc no longer emits this error code. You may still see it in old answers, books and CI logs from older toolchains; the explanation below is kept for reference.
The compiler team's explanation
Note: this error code is no longer emitted by the compiler.
You tried to supply a type which doesn't implement some trait in a location which expected that trait. This error typically occurs when working with Fn-based types. Erroneous code example:
fn foo<F: Fn(usize)>(x: F) { }
fn main() {
// type mismatch: ... implements the trait `core::ops::Fn<(String,)>`,
// but the trait `core::ops::Fn<(usize,)>` is required
// [E0281]
foo(|y: String| { });
}
The issue in this case is that foo is defined as accepting a Fn with one argument of type String, but the closure we attempted to pass to it requires one arguments of type usize.
From rustc --explain E0281 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0061this function takes N arguments but M were supplied
- E0412cannot find type in this scope
- E0515cannot return reference to local variable
- E0728await is only allowed inside async functions and blocks
- E0267`break` inside of a closure
- E0268`break` outside of a loop or labeled block
- E0317`if` may be missing an `else` clause
- E0320overflow while adding drop-check rules for `A<T>`
Up next
Often hit nextE0061: this function takes N arguments but M were suppliedA related error from the same family.Read it next →Did this answer your question?