Automatic typing
JS
js.mdnq at gmail.com
Fri Jun 28 18:48:58 PDT 2013
On Saturday, 29 June 2013 at 01:31:13 UTC, Walter Bright wrote:
> On 6/28/2013 5:00 PM, JS wrote:
>> Is variant useful? If not then you have a point. I'm not
>> proposing anything that
>> variant can't already do except add compile time performance.
>> I do not think the
>> complexity is much more than what is already done.
>>
>> D already checks for time mismatch. With such a variant or
>> auto the check simply
>> is more intelligent.
>>
>> e.g.,
>>
>> auto x; // x's type is undefined or possibly variant.
>> x = 3; // x's type is set temporarily to an int
>> ...
>> x = 3.0; // ****
>>
>>
>> at **** we have several possibilities.
>>
>> 1. Throw an error, this makes auto more useful and avoids
>> many pitfalls.
>> 2. Set x's type to a variant. [possibly goto 3 if castable
>> to new type]
>> 3. Set x's type to a double.
>>
>> Both 2 and 3 require an extra pass to convert the code because
>> it uses forward
>> inference.
>>
>> auto looks only at the immediate assignment expression to
>> determine the type. I
>> am talking about generalizing it to look in the scope with
>> possible fallback to
>> a variant type with optional warning, an error, or type
>> enlargement.
>
>
> Again, I need a compelling use case. It's not enough to say
> it's the same as variant, and it's not enough to say it can be
> implemented.
>
> A compelling use case would be a pattern that is commonplace,
> and for which the workarounds are ugly, unsafe, error prone,
> unportable, etc.
What was the use case for auto that got in into the language?
More information about the Digitalmars-d
mailing list