Rollup merge of #69287 - GuillaumeGomez:clean-e0317, r=Dylan-DPC
Clean up E0317 explanation r? @Dylan-DPC
This commit is contained in:
commit
941ce1a557
@ -1,14 +1,30 @@
|
||||
This error occurs when an `if` expression without an `else` block is used in a
|
||||
context where a type other than `()` is expected, for example a `let`
|
||||
expression:
|
||||
An `if` expression is missing an `else` block.
|
||||
|
||||
Erroneous code example:
|
||||
|
||||
```compile_fail,E0317
|
||||
fn main() {
|
||||
let x = 5;
|
||||
let a = if x == 5 { 1 };
|
||||
}
|
||||
let x = 5;
|
||||
let a = if x == 5 {
|
||||
1
|
||||
};
|
||||
```
|
||||
|
||||
This error occurs when an `if` expression without an `else` block is used in a
|
||||
context where a type other than `()` is expected. In the previous code example,
|
||||
the `let` expression was expecting a value but since there was no `else`, no
|
||||
value was returned.
|
||||
|
||||
An `if` expression without an `else` block has the type `()`, so this is a type
|
||||
error. To resolve it, add an `else` block having the same type as the `if`
|
||||
block.
|
||||
|
||||
So to fix the previous code example:
|
||||
|
||||
```
|
||||
let x = 5;
|
||||
let a = if x == 5 {
|
||||
1
|
||||
} else {
|
||||
2
|
||||
};
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user