New EEP draft: Pinning operator ^ in patterns
Loïc Hoguin
essen@REDACTED
Fri Jan 22 10:10:44 CET 2021
On 22/01/2021 09:25, Richard Carlsson wrote:
> Den tors 21 jan. 2021 kl 23:55 skrev Loïc Hoguin <essen@REDACTED
> You say ^ indicates that the match is intentional, and in a perfect
> world perhaps that's true, but in the real world you'll also end up
> with
> misplaced ^ that should not be matches at all, as some of your examples
> show.
>
>
> Well, those examples had misplaced matches precisely because there was
> no warning and no requirement for the programmer to state exactly what
> they meant. If there had been a warning and a requirement to do
> something (annotation or guard) to silence that warning, the mistake
> wouldn't have made it there in the first place.
I agree, that's why I think an optional warning is a great idea. The
warning could easily be added to a process that would check if new code
introduces a warning, and if it does then the new warnings would be
required to be manually checked for correctness. If the warnings are
correct the process can be updated.
I would trust this far more than the presence of ^ in the code.
This would also be a good opportunity to add a comment for non-obvious
matches.
This kind of process would be a good idea regardless of ^ being
introduced or made mandatory. In that case the check would simply be on
new ^ uses.
--
Loïc Hoguin
https://ninenines.eu
More information about the erlang-questions
mailing list