On 6/28/2013 4:42 PM, Timon Gehr wrote:
On 06/29/2013 12:29 AM, Walter Bright wrote:
I don't see a compelling use case for this proposal, or even any use
case. There'd have to be some serious advantage to it to justify its
complexity.

Eg:

auto a;

    typeof(cache[x]) a;   // (1)

if(x in cache) a=cache[x];
else cache[x]=a=new AnnoyingToSpellOutBeforeTheIf!"!"();

Or:

auto a = (x in cache) ? cache[x] : (cache[x]=new AnnoyingToSpellOutBeforeTheIf!"!"()); // (2)


Using the type of the lexically first assignment would often be good enough,
where reading the variable is disallowed prior to this first assignment.

So far, the use case is not compelling.

A little better (and still decidable) would be using the common type of all
branches' first assignments not preceded by a read.

(1) handles that.

Not every workaround needs a language feature.

Reply via email to