parent
9fdaeb393a
commit
666afba684
4 changed files with 200 additions and 120 deletions
|
@ -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.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue