http://d.puremagic.com/issues/show_bug.cgi?id=9289
--- Comment #26 from Leandro Lucarella <[email protected]> 2013-02-27 09:24:34 PST --- (In reply to comment #25) > > > -dXX should give a warning (not an error, not silence), whenever a > > > deprecated > > > feature is used when errors are gagged. > > > > You're talking about a new flag I guess... > > Not necessarily. It could be done with -dw for example. But then make -dw mean something different than <no flag at all>, right? Just trying to understand your suggestion. > > > In other cases, the existing behaviour (silence) should be preserved. > > > > Only when gagged I assume. > > Yes, otherwise it's an error. Mmm, an error? Using -de I guess, if that's the default this is like reverting the "make deprecations issue warnings by default". > > > Basically I think that with any form of -d option, deprecated features > > > should > > > never compile without generating a warning (even when errors are gagged). > > > > Except for plain -d I guess. That's the original meaning of -d, silence > > everything. > > Possibly. We should just kill that, it's ridiculous. Maybe. > > Only when errors are gagged I guess. Otherwise is going back to where we > > started. > > When errors aren't gagged, using a deprecated feature is just an error. (The > wording may mention that it's deprecated, but otherwise it's a normal error). > When errors are gagged, it's again just an error, but nothing is printed. Why should it be an error to use a deprecated feature? I still don't understand why is this desirable when it was the whole point of making "deprecation as warnings by default". With this, you upgrade to a new DMD version and your code gets broken if you happened to be using a recently deprecated feature instead of just getting a deprecation message. Deprecating something means "it will be removed in the future" not "it already have been removed". And if you used some deprecated feature where errors are gagged, you're application will change its behaviour without any warnings. > When compiled with -dw, whenever anything deprecated is encountered, display a > warning message. Display this even if errors are gagged. > > ie, anything deprecated is either a normal error, or noisy accepted, and this > is not affected by gagging. I think this really makes the feature useless. If you don't use -dw, your code won't compile. If you use it, you'll potentially get a lot of spurious warnings about gagged code that is using some feature that used to have a different meaning a while ago. I think that's far from ideal... If we leave things are they are now, the only problem I see is you don't know if some piece of error-gagged code uses a deprecated feature or not, and you'll only find out when the feature is completely removed, if you are lucky enough to notice the program changed its behaviour (if we keep deprecated features as errors, this will happen as soon as the feature gets deprecated instead of removed). Maybe we can add a flag (-dv for verbose maybe?) to print warnings for deprecated errors even when errors are gagged. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
