Well, I think all these lints should be considered as possible language fix. You see lint, you check that everybody makes this mistake, and you have two options: “Hmm, we must follow the principle of least astonishment and fix it in the language” or “it’s a rare case and docs are clear about this behavior”. I just think that it’s the former case, so I have written this proposal. If I’m alone thinking it that it’s ok, we’re just discussing.
I see that it’s coherent with “map_or”, “unwrap_or” and others, but probably we could reexamine if they are really required. Maybe not. It’s discutable.
By this logic we could argue for the removal of match expressions, the clone method or references, because there are several lints against those too.
No, it’s not implications of this logic, it’s ad absurdum argument. ∃ redundancy != ∀x x == redundancy