新版本的变更 / Rust 1.65

// *** before: ***
// либо лестница вправо на каждой проверке,
// либо match ради одной привязки
fn parse_port(text: &str) -> u16 {
    let port = match text.parse::<u16>() {
        Ok(p) => p,
        Err(_) => return 8080,
    };
    port
}

// *** in version 1.65: ***
// привязка остаётся в текущей области, а ветка else обязана уйти
fn parse_port(text: &str) -> u16 {
    let Ok(port) = text.parse::<u16>() else {
        return 8080;
    };
    port
}