diff options
| author | Yuki Okushi <huyuumi.dev@gmail.com> | 2020-10-27 08:44:54 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-27 08:44:54 +0900 |
| commit | 0b72ca6ea6a57c9b3395e42b8340dcbad2cbbf24 (patch) | |
| tree | d2eca180bd80155ae2130ce2ef3a96f527a9f83b /compiler/rustc_error_codes/src | |
| parent | 9d7db4891bf6a8445b05a50cddb2d45883e2cb41 (diff) | |
| parent | 666afba684c153d8942ce5f62581dbcb79452150 (diff) | |
| download | rust-0b72ca6ea6a57c9b3395e42b8340dcbad2cbbf24.tar.gz rust-0b72ca6ea6a57c9b3395e42b8340dcbad2cbbf24.zip | |
Rollup merge of #78332 - PoignardAzur:doc_E0308, r=camelid
Update description for error E0308 Fixes #76462 r? @camelid
Diffstat (limited to 'compiler/rustc_error_codes/src')
| -rw-r--r-- | compiler/rustc_error_codes/src/error_codes/E0308.md | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/compiler/rustc_error_codes/src/error_codes/E0308.md b/compiler/rustc_error_codes/src/error_codes/E0308.md index e2c40f03019..decee630995 100644 --- a/compiler/rustc_error_codes/src/error_codes/E0308.md +++ b/compiler/rustc_error_codes/src/error_codes/E0308.md @@ -1,18 +1,26 @@ Expected type did not match the received type. -Erroneous code example: +Erroneous code examples: ```compile_fail,E0308 -let x: i32 = "I am not a number!"; -// ~~~ ~~~~~~~~~~~~~~~~~~~~ -// | | -// | initializing expression; -// | compiler infers type `&str` -// | -// type `i32` assigned to variable `x` +fn plus_one(x: i32) -> i32 { + x + 1 +} + +plus_one("Not a number"); +// ^^^^^^^^^^^^^^ expected `i32`, found `&str` + +if "Not a bool" { +// ^^^^^^^^^^^^ expected `bool`, found `&str` +} + +let x: f32 = "Not a float"; +// --- ^^^^^^^^^^^^^ expected `f32`, found `&str` +// | +// expected due to this ``` -This error occurs when the compiler is unable to infer the concrete type of a -variable. It can occur in several cases, the most common being a mismatch -between two types: the type the author explicitly assigned, and the type the -compiler inferred. +This error occurs when an expression was used in a place where the compiler +expected an expression of a different type. It can occur in several cases, the +most common being when calling a function and passing an argument which has a +different type than the matching type in the function declaration. |
