http://d.puremagic.com/issues/show_bug.cgi?id=199
Ali Cehreli <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #24 from Ali Cehreli <[email protected]> 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: -------
