Am 14.11.2012 20:07, schrieb Timon Gehr:
> 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.
In the lambda case it's return type deduction and not overload resolution.
Those are actually two
very different things.