]>
Commit | Line | Data |
---|---|---|
74b04a01 XL |
1 | An `if` expression is missing an `else` block. |
2 | ||
3 | Erroneous code example: | |
60c5eb7d XL |
4 | |
5 | ```compile_fail,E0317 | |
74b04a01 XL |
6 | let x = 5; |
7 | let a = if x == 5 { | |
8 | 1 | |
9 | }; | |
60c5eb7d XL |
10 | ``` |
11 | ||
74b04a01 XL |
12 | This error occurs when an `if` expression without an `else` block is used in a |
13 | context where a type other than `()` is expected. In the previous code example, | |
14 | the `let` expression was expecting a value but since there was no `else`, no | |
15 | value was returned. | |
16 | ||
60c5eb7d XL |
17 | An `if` expression without an `else` block has the type `()`, so this is a type |
18 | error. To resolve it, add an `else` block having the same type as the `if` | |
19 | block. | |
74b04a01 XL |
20 | |
21 | So to fix the previous code example: | |
22 | ||
23 | ``` | |
24 | let x = 5; | |
25 | let a = if x == 5 { | |
26 | 1 | |
27 | } else { | |
28 | 2 | |
29 | }; | |
30 | ``` |