Extend the call site default argument expansion mechanism?

Simen Kjærås simen.kjaras at gmail.com
Wed May 16 14:29:45 UTC 2018


On Wednesday, 16 May 2018 at 10:51:51 UTC, jmh530 wrote:
> On Wednesday, 16 May 2018 at 09:01:29 UTC, Simen Kjærås wrote:
>> snip]
>>
>>     struct Foo(int x)
>>     {
>>         int n = x;
>>         auto opDispatch(string s)()
>>             if (s == "bar")
>>         {
>>             n++;
>>             return n;
>>         }
>>     }
>>
>>
>>     unittest
>>     {
>>         int y = 0;
>>         with(Foo!1())
>>         {
>>             y = bar; // Works!
>>         }
>>         assert(y == 2);
>>     }
>>
>> --
>>   Simen
>
> Thanks for catching that. Any idea why the original was having 
> problems?

Seems to me there's an issue with overload priority - we expect 
opDispatch to count before globals, but it doesn't. Filed an 
issue: https://issues.dlang.org/show_bug.cgi?id=18866

--
   Simen


More information about the Digitalmars-d mailing list