Thanks for a quick response! Too bad this isn't possible now.
But I think it could be easily implemented as a syntax sugar, without any changes to the type inference. Multiple definitions could be desugared into a single definition with a match as the first and only statement. Checking that all the possibilities are covered and all are disjoint could follow the same rules.
Should I suggest this on the internals forum, or am I missing something?
Rust in general doesn't do "nice to have" syntax sugar. The syntax sugar added so far either enables completely new uses (like impl Trait), or is very widely applicable (like if let), or fixes common painful usability problems (like match ergonomics).
If this is a limited to only enums, and all it does is generate a match, then you probably can do it yourself with a macro.