diff options
| author | Alisdair Owens <awo101@zepler.net> | 2015-08-15 10:01:26 +0100 |
|---|---|---|
| committer | Alisdair Owens <awo101@zepler.net> | 2015-08-29 16:50:35 +0100 |
| commit | 9ed30c62143f2615f8424d9da63eef77978e3346 (patch) | |
| tree | 3998de4aadb54cf51ef75d0ea62a0beeae58ca08 /src | |
| parent | 3f002a4c6ed2bb694407842b5447dba34799b931 (diff) | |
| download | rust-9ed30c62143f2615f8424d9da63eef77978e3346.tar.gz rust-9ed30c62143f2615f8424d9da63eef77978e3346.zip | |
add diagnostics for E0281
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/diagnostics.rs | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/librustc/diagnostics.rs b/src/librustc/diagnostics.rs index 5f907c6cbee..696b38219f4 100644 --- a/src/librustc/diagnostics.rs +++ b/src/librustc/diagnostics.rs @@ -1487,6 +1487,26 @@ fn main() { ``` "##, +E0281: r##" +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()>(x: F) { } + +fn main() { + // type mismatch: the type ... implements the trait `core::ops::Fn<(_,)>`, + // but the trait `core::ops::Fn<()>` is required (expected (), found tuple + // [E0281] + foo(|y| { }); +} +``` + +The issue in this case is that `foo` is defined as accepting a `Fn` with no +arguments, but the closure we attempted to pass to it requires one argument. +"##, + E0282: r##" This error indicates that type inference did not result in one unique possible type, and extra information is required. In most cases this can be provided @@ -1867,7 +1887,6 @@ register_diagnostics! { E0278, // requirement is not satisfied E0279, // requirement is not satisfied E0280, // requirement is not satisfied - E0281, // type implements trait but other trait is required E0283, // cannot resolve type E0284, // cannot resolve type E0285, // overflow evaluation builtin bounds |
