2.068.0 regression?
Dicebot via Digitalmars-d
digitalmars-d at puremagic.com
Wed Aug 19 15:03:47 PDT 2015
On Wednesday, 19 August 2015 at 21:56:22 UTC, sigod wrote:
> ```
> T to(string units, T, D)(D td)
> ```
>
> But what compiler does with this function? How `void` appears
> in the error message?
There are no arguments used thus `to` is resolved as plain
template symbol, not a function. Template that does not resolve
to any valid entity is treated as if it had type 'void' in error
messages, even if it is not technically true.
> Why does it even picks this function? `to` has required
> argument, apparently it can't be called without one.
When you shadow some symbol with a new declaration in more
"local" scope, it gets shadow completely, not just added to
overload set. No matter what arguments are used only the new
symbol will get used.
More information about the Digitalmars-d
mailing list