digitalmars.D.bugs - [Issue 5038] New: Change class 'invariant' syntax to emulate 'unittest'
- d-bugmail puremagic.com (40/40) Oct 10 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5038
- d-bugmail puremagic.com (8/8) Oct 10 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5038
- d-bugmail puremagic.com (10/10) Oct 10 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5038
- d-bugmail puremagic.com (14/14) Jan 16 2013 http://d.puremagic.com/issues/show_bug.cgi?id=5038
- d-bugmail puremagic.com (8/10) Jan 16 2013 http://d.puremagic.com/issues/show_bug.cgi?id=5038
- d-bugmail puremagic.com (16/16) Jan 16 2013 http://d.puremagic.com/issues/show_bug.cgi?id=5038
- d-bugmail puremagic.com (14/15) Jan 16 2013 http://d.puremagic.com/issues/show_bug.cgi?id=5038
- d-bugmail puremagic.com (9/13) Jan 16 2013 http://d.puremagic.com/issues/show_bug.cgi?id=5038
- d-bugmail puremagic.com (15/24) Jan 17 2013 http://d.puremagic.com/issues/show_bug.cgi?id=5038
http://d.puremagic.com/issues/show_bug.cgi?id=5038 Summary: Change class 'invariant' syntax to emulate 'unittest' Product: D Version: D2 Platform: Other OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: ah08010-d yahoo.com PDT --- Presently a class invariant is required to be a single function: class C { int height; int width; invariant() { assert( height < 10 ); assert( width < 11 ); } } For large and/or complex classes, it would improve locality if the invariant could be specified piecemeal, in much the same was that unittest blocks are stitched together into a whole: class C { int height; invariant { assert( height < 10 ); } int width; invariant { assert( width < 11 ); } } The parentheses after invariant seem useless, too - also very much like unittest. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 10 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5038 Austin Hastings <ah08010-d yahoo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |enhancement -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 10 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5038 bearophile_hugs eml.cc changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bearophile_hugs eml.cc About invariant syntax see also bug 3856 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 10 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5038 yebblies <yebblies gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |yebblies gmail.com Resolution| |DUPLICATE The parentheses are necessary, because without them invariant is a deprecated alias for immutable. *** This issue has been marked as a duplicate of issue 6453 *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 16 2013
http://d.puremagic.com/issues/show_bug.cgi?id=5038The parentheses are necessary, because without them invariant is a deprecated alias for immutable.Eventually that alternative meaning will go away, so invariant for structs/class instances will be free to drop the useless (). -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 16 2013
http://d.puremagic.com/issues/show_bug.cgi?id=5038 yebblies <yebblies gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Platform|Other |All Resolution|DUPLICATE | Summary|Change class 'invariant' |Allow declaring class |syntax to emulate |invariant without |'unittest' |parentheses OS/Version|Windows |All Fair enough. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 16 2013
http://d.puremagic.com/issues/show_bug.cgi?id=5038 Andrej Mitrovic <andrej.mitrovich gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |andrej.mitrovich gmail.com 16:46:22 PST ---Fair enough.The deprecation page lists it as deprecated since 2.057, but the Error and Gone dates are empty. I'm not sure what the plan is, but I doubt there's any *compilable* D2 code out there that actually uses invariant instead of immutable. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 16 2013
http://d.puremagic.com/issues/show_bug.cgi?id=5038The deprecation page lists it as deprecated since 2.057, but the Error and Gone dates are empty. I'm not sure what the plan is, but I doubt there's any *compilable* D2 code out there that actually uses invariant instead of immutable.The general idea is to leave at least six months between deprecation stages. The version numbers are missing because there is no fixed release schedule, and no guarantee the change would be pulled in time to match any projected date. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 16 2013
http://d.puremagic.com/issues/show_bug.cgi?id=5038I am 100% sure that is true. 'invariant' only meant 'immutable' for a very short period of time, when hardly anyone was using D2, and when D2 was completely experimental and not seriously usable.The deprecation page lists it as deprecated since 2.057, but the Error and Gone dates are empty. I'm not sure what the plan is, but I doubt there's any *compilable* D2 code out there that actually uses invariant instead of immutable.The general idea is to leave at least six months between deprecation stages. The version numbers are missing because there is no fixed release schedule, and no guarantee the change would be pulled in time to match any projected date.Well, this is a very strange situation. invariant without parentheses is LEGAL IN D1! When converting D1 code to D2, you get this nonsense deprecation message asking you to use immutable instead. We have existing production code which uses invariant without parentheses! We should make it legal again. This would be an undeprecation, which AFAIK has never happened before in D. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 17 2013