diff options
| author | Yuki Okushi <huyuumi.dev@gmail.com> | 2020-10-21 13:59:39 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-21 13:59:39 +0900 |
| commit | 89c98cd6b4d92e0237a91eb18754d03dbe64fb6a (patch) | |
| tree | 24944d4b6df438c6034b4721814e9a07472727e7 /src/test/ui/pattern | |
| parent | f8bae8b1022d0a0176543c85011fdff0ccc99ae2 (diff) | |
| parent | 7b33ae642e29635f8446fed7641b5665d0c149e6 (diff) | |
| download | rust-89c98cd6b4d92e0237a91eb18754d03dbe64fb6a.tar.gz rust-89c98cd6b4d92e0237a91eb18754d03dbe64fb6a.zip | |
Rollup merge of #78063 - camelid:improve-cannot-multiply-error, r=estebank
Improve wording of "cannot multiply" type error
For example, if you had this code:
fn foo(x: i32, y: f32) -> f32 {
x * y
}
You would get this error:
error[E0277]: cannot multiply `f32` to `i32`
--> src/lib.rs:2:7
|
2 | x * y
| ^ no implementation for `i32 * f32`
|
= help: the trait `Mul<f32>` is not implemented for `i32`
However, that's not usually how people describe multiplication. People
usually describe multiplication like how the division error words it:
error[E0277]: cannot divide `i32` by `f32`
--> src/lib.rs:2:7
|
2 | x / y
| ^ no implementation for `i32 / f32`
|
= help: the trait `Div<f32>` is not implemented for `i32`
So that's what this change does. It changes this:
error[E0277]: cannot multiply `f32` to `i32`
--> src/lib.rs:2:7
|
2 | x * y
| ^ no implementation for `i32 * f32`
|
= help: the trait `Mul<f32>` is not implemented for `i32`
To this:
error[E0277]: cannot multiply `i32` by `f32`
--> src/lib.rs:2:7
|
2 | x * y
| ^ no implementation for `i32 * f32`
|
= help: the trait `Mul<f32>` is not implemented for `i32`
Diffstat (limited to 'src/test/ui/pattern')
| -rw-r--r-- | src/test/ui/pattern/pattern-tyvar-2.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/pattern/pattern-tyvar-2.stderr | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/test/ui/pattern/pattern-tyvar-2.rs b/src/test/ui/pattern/pattern-tyvar-2.rs index 532df4fa0cb..7647c766ef9 100644 --- a/src/test/ui/pattern/pattern-tyvar-2.rs +++ b/src/test/ui/pattern/pattern-tyvar-2.rs @@ -1,6 +1,6 @@ enum Bar { T1((), Option<Vec<isize>>), T2, } fn foo(t: Bar) -> isize { match t { Bar::T1(_, Some(x)) => { return x * 3; } _ => { panic!(); } } } -//~^ ERROR cannot multiply `{integer}` to `Vec<isize>` +//~^ ERROR cannot multiply `Vec<isize>` by `{integer}` fn main() { } diff --git a/src/test/ui/pattern/pattern-tyvar-2.stderr b/src/test/ui/pattern/pattern-tyvar-2.stderr index e205cd9015e..121817e7056 100644 --- a/src/test/ui/pattern/pattern-tyvar-2.stderr +++ b/src/test/ui/pattern/pattern-tyvar-2.stderr @@ -1,4 +1,4 @@ -error[E0369]: cannot multiply `{integer}` to `Vec<isize>` +error[E0369]: cannot multiply `Vec<isize>` by `{integer}` --> $DIR/pattern-tyvar-2.rs:3:71 | LL | fn foo(t: Bar) -> isize { match t { Bar::T1(_, Some(x)) => { return x * 3; } _ => { panic!(); } } } |
