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).

Reply via email to