]> git.lizzy.rs Git - rust.git/blob - compiler/rustc_error_codes/src/error_codes/E0281.md
Rollup merge of #92310 - ehuss:rustdoc-ice, r=estebank
[rust.git] / compiler / rustc_error_codes / src / error_codes / E0281.md
1 #### Note: this error code is no longer emitted by the compiler.
2
3 You tried to supply a type which doesn't implement some trait in a location
4 which expected that trait. This error typically occurs when working with
5 `Fn`-based types. Erroneous code example:
6
7 ```compile_fail
8 fn foo<F: Fn(usize)>(x: F) { }
9
10 fn main() {
11     // type mismatch: ... implements the trait `core::ops::Fn<(String,)>`,
12     // but the trait `core::ops::Fn<(usize,)>` is required
13     // [E0281]
14     foo(|y: String| { });
15 }
16 ```
17
18 The issue in this case is that `foo` is defined as accepting a `Fn` with one
19 argument of type `String`, but the closure we attempted to pass to it requires
20 one arguments of type `usize`.