I really like that idea (more than #[warn(reachable*)]. Perhaps the non_exhaustive_omitted_patterns warning should even be enabled by default when this is used. At the moment I can't think of a situation where you want/need to use MyEnum::_, don't want it to warn you and can't use the existing _.
2 Likes
Yeah that's a good distinction! I see your usecase now, they do seem like sorta two different problems.
One thing I've pondered: one way to phrase this would be with naming conventions, so that _ => ... is fine to reach, but a _unreachable => ... that isn't actually covered by an earlier line could be a warning.
1 Like