On 11/14/2012 06:30 PM, Rob T wrote:
On Wednesday, 14 November 2012 at 09:16:13 UTC, Walter Bright wrote:
I'm not requesting this to be a feature of D, I'm only asking why it
is not
being done.

Because types are resolved bottom-up, and if the return type were part
of the overloading, there would be no sensible rule to determine the
types.

But doesn't the compiler already have to perform overload-like decision
making on return types in the "alias this" case, esp once multiple
conversions are allowed?

class A{
   int i;
   bool b;
   alias i this;
   alias b this;
}

main()
{
   auto a = new A;
   int i = a;
   bool b = a;
}

--rt

alias this is not the best example, but the necessary logic is basically already in the compiler. Lambda parameter type deduction based on the expected type is a similar task.

It is not being done because it is not being done. Full type inference would be even more fun.

Reply via email to