error[E0308]: `else` clause of `let...else` does not diverge --> $DIR/let-else-non-diverging.rs:2:32 | LL | let Some(x) = Some(1) else { | ________________________________^ LL | | Some(2) LL | | }; | |_____^ expected `!`, found `Option<{integer}>` | = note: expected type `!` found enum `Option<{integer}>` = help: try adding a diverging expression, such as `return` or `panic!(..)` = help: ...or use `match` instead of `let...else` error[E0308]: `else` clause of `let...else` does not diverge --> $DIR/let-else-non-diverging.rs:5:32 | LL | let Some(x) = Some(1) else { | ________________________________^ LL | | if 1 == 1 { LL | | panic!(); LL | | } LL | | }; | |_____^ expected `!`, found `()` | = note: expected type `!` found unit type `()` = help: try adding a diverging expression, such as `return` or `panic!(..)` = help: ...or use `match` instead of `let...else` error[E0308]: `else` clause of `let...else` does not diverge --> $DIR/let-else-non-diverging.rs:10:32 | LL | let Some(x) = Some(1) else { Some(2) }; | ^^^^^^^^^^^ expected `!`, found `Option<{integer}>` | = note: expected type `!` found enum `Option<{integer}>` = help: try adding a diverging expression, such as `return` or `panic!(..)` = help: ...or use `match` instead of `let...else` error[E0308]: `else` clause of `let...else` does not diverge --> $DIR/let-else-non-diverging.rs:15:32 | LL | let Some(x) = Some(1) else { foo::() }; | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `!`, found `Uninhabited` | = note: expected type `!` found enum `Uninhabited` = help: try adding a diverging expression, such as `return` or `panic!(..)` = help: ...or use `match` instead of `let...else` error: aborting due to 4 previous errors For more information about this error, try `rustc --explain E0308`.