[Issue 199] Label causes scope to collapse into parent
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed May 29 14:03:08 PDT 2013
http://d.puremagic.com/issues/show_bug.cgi?id=199
Ali Cehreli <acehreli at yahoo.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |acehreli at yahoo.com
--- Comment #24 from Ali Cehreli <acehreli at yahoo.com> 2013-05-29 14:03:07 PDT ---
Thanks for clarifying... :)
I can't see how this can be the intended behavior.
C labels do not expand the following scope. They are simply anchors for goto
and switch-case statements.
D adds this cool feature of labeled scope, which has the unfortunate side
effect of spilling the code of the block. I can't imagine how this has been the
intention.
I propose changing the spec like this:
ScopeBlockOrNoScopeStatement: <-- new
NoScopeStatement
ScopeBlockStatement
LabeledStatement:
Identifier : ScopeBlockOrNoScopeStatement <-- use the new one
NoScopeStatement:
;
NonEmptyStatement
<-- remove BlockStament to remove conflict with ScopeBlockStatement
That leaves the only other user of NoScopeStatement in question:
PragmaStatement:
Pragma NoScopeStatement
I am not sure how removing BlockStament from NoScopeStatement will affect
PragmaStatement.
Ali
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list