#![feature(let_else)] #[derive(Debug)] enum Foo { Done, Nested(Option<&'static Foo>), } fn walk(mut value: &Foo) { loop { println!("{:?}", value); &Foo::Nested(Some(value)) = value else { break }; //~ ERROR invalid left-hand side of assignment //~^ERROR ... else { ... } is not allowed } } fn main() { walk(&Foo::Done); }