On Wednesday, 26 February 2020 at 09:45:55 UTC, Walter Bright
wrote:
On 2/25/2020 1:36 AM, aliak wrote:
This may have already been answered in the other threads, but
I was just wondering if anyone managed to propose a way to
avoid this scenario with DIP1027?
void f(string s, int i = 0);
f(i"hello $a"); // silent unwanted bahviour.
?
It is lowered to:
f("hello %s", a);
as designed. I don't know what's unwanted about it.
It's unwanted because the lowering calls a function that was not
intended with values that were unintended. You can take this
article: https://dlang.org/articles/hijack.html and replace it
with that lowering behaviour, and have the exact same story.
Also unwanted because of what string interpolation means (ref
wikipedia and all other languages).