http://d.puremagic.com/issues/show_bug.cgi?id=199
--- Comment #29 from Nick Treleaven <[email protected]> 2013-05-30 09:29:04 PDT --- (In reply to comment #28) > (In reply to comment #27) > > It's a trade off between either breaking working code or annoying users with > > deprecation messages that need small fixes to their code. > > Just seems that because something is broken, your solution is to simply > deprecate the entire feature. There is no reason to make labeling a block > illegal or deprecated. > > The correct solution would be to find a path that doesn't break code, but > still > marks invalid code as such, and give users a pre-emptive chance to fix the > code, before it is definitely banned. I didn't advocate banning it. I advocate permanent deprecation, because the semantics are bug prone, and we should (arguably) never risk *silently* breaking working code. There is no reason to remove it for a long time, possibly never. > The (imo correct) path is that the NoScopeStatment should still provide no > scope, but emit a deprecated message if anything declared in the scope is > used. > EG: > > void main() > { > label: > { > int i; > } > writeln(i); //(1) > } > > (1) should emit a deprecation message. Sounds good. Can it be implemented easily? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
