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