| |
| Posted by Dennis in reply to Basile B. | PermalinkReply |
|
Dennis
Posted in reply to Basile B.
| On Tuesday, 3 December 2024 at 12:41:18 UTC, Basile B. wrote:
> What's you're position ?
I often see suggestions to raise warnings/errors for ostensibly 'useless constructs', such as unused parameters, if (0), strongly pure functions returning void etc.
In my experience, doing this rarely catches any actual bugs. Instead you'll end up bumping into such warnings/errors as annoying false positives, and then you realise that these constructs are, in fact, useful at times.
For example, unused parameters (and unnecessarily loose return types) can turn up when:
- The signature needs to match a callback (e.g. a thread function may not return, even though the signature allows returning a status code)
- A parameter / return value is no longer needed / reserved for future use, but signature is part of stable API
- int f(int x) => assert(0, "unimplemented");
So I'm not a fun of such a rule.
|