On 7/9/20 5:13 PM, JN wrote:
On Thursday, 9 July 2020 at 20:24:11 UTC, Steven Schveighoffer wrote:
On 7/9/20 4:04 PM, JN wrote:
Hmm, foo(null) seems to work, but is it correct way to do it?


Yes, that is correct.


Interesting. Often in D discussion, an argument pops up that the language should be protecting against hidden breakages from API changes. This would be an example of that happening.

void foo(int[int] bar), someone calls it with a null, suddenly the signature changes to void foo(int* bar) and you will be sending a null pointer and possibly breaking the app.

This is a stretch.

This means you NEVER call it with an actual associative array (Which would fail to compile), and that foo never expects to get a null pointer. Even if it does break, it breaks by segfaulting and not corrupting your program.

All this, plus the author of foo cares nothing for his users, who now suddenly have non-compiling code.

-Steve

Reply via email to