Error code E0317

An if expression is missing an else block.

Erroneous code example:

#![allow(unused)]
fn main() {
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:

#![allow(unused)]
fn main() {
let x = 5;
let a = if x == 5 {
    1
} else {
    2
};
}