On Saturday, 9 March 2013 at 09:41:42 UTC, simendsjo wrote:
On Saturday, 9 March 2013 at 09:12:30 UTC, Jouko Koski wrote:
"Walter Bright"  wrote:

Many of the criticisms in the paper are addressed by our positive experience with static if in D.

Sometimes I do find it confusing that { does or does not introduce a new scope in a very similar-looking contexts.

Is there more constructs than static if that doesn't create a scope?

"Labeled scopes" (ironically) don't create scopes. Eg:

//----
some_label:
{
    int a;
    //Code code code
}
a = 5;
goto some_label;
//----

That doesn't actually create a new scope, and that assignement is legal game.

This is from the official documentation, so it is not a bug. I can't, for the life of me, understand why it is that way, in particular, since it deviates from C. I see it as a "never better, sometimes worst" approach.

I've tried to ask about it before, but I best, the answer I got was "works as documented", but still have no idea on the why :/ ???

And since goto is "evil", I think very few people care, so getting any kind of activity about this is hard.

Reply via email to