On Tuesday, 13 October 2015 at 22:21:43 UTC, Ali Çehreli wrote:
Reduced with a workaround:
struct UTCOffset
{
import std.conv : to; // Move to module scope to compile
This introduces UTCOffset.to as an alias to std.conv.to.
string toString() const
{
return "hello";
}
}
void main() {
import std.conv : to;
This ends up being ignored, because UTCOffset has a member called
`to`.
UTCOffset().to!string;
This does not do call std.conv.to through UFCS. Instead, it calls
UTCOffset's static alias of std.conv.to without an argument.
That is: `UTCOffset().to!string;` = `UTCOffset.to!string;` =
`std.conv.to!string;`
}