digitalmars.D.bugs - [Issue 4325] New: invariant syntax isn't strict
- d-bugmail puremagic.com (35/35) Jun 15 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4325
- d-bugmail puremagic.com (48/48) Aug 29 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4325
- d-bugmail puremagic.com (14/14) Jun 15 2011 http://d.puremagic.com/issues/show_bug.cgi?id=4325
- d-bugmail puremagic.com (9/12) Jun 15 2011 http://d.puremagic.com/issues/show_bug.cgi?id=4325
- d-bugmail puremagic.com (7/10) Jun 15 2011 A new report. Changing the focus of old reports makes it more difficult...
http://d.puremagic.com/issues/show_bug.cgi?id=4325 Summary: invariant syntax isn't strict Product: D Version: D2 Platform: x86 OS/Version: Windows Status: NEW Keywords: accepts-invalid Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: bearophile_hugs eml.cc Class/struct invariants are: http://www.digitalmars.com/d/2.0/class.html#Invariant invariant() BlockStatement But dmd v2.047 compiles this with no errors: struct Foo { invariant {} } struct Bar { invariant } class CFoo { invariant {} } class CBar { invariant } void main() {} See also the second part of the bug 3856 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jun 15 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4325 Andrej Mitrovic <andrej.mitrovich gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |andrej.mitrovich gmail.com 20:01:39 PDT --- The compiler will still print an error if you add any statements below a class invariant, e.g.: struct Foo { invariant {} } struct Bar { int x = 5; invariant assert(x == 1); } class CFoo { invariant {} } class CBar { invariant } void main() { Bar bar; } bug4325.d(7): Declaration expected, not 'assert' So it might not be that bad. The same thing happens if you put "const" "pure" "immutable" without any opening braces or colons, e.g.: struct Foo { pure } struct Bar { const } class CFoo { immutable } class CBar { invariant } void main() { } Compiles fine. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 29 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4325 yebblies <yebblies gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |yebblies gmail.com Resolution| |INVALID This has nothing to do with class invariants. This is caused by invariant currently being an alias for immutable. Change invariant to immutable in the examples and it will make sense. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jun 15 2011
http://d.puremagic.com/issues/show_bug.cgi?id=4325This has nothing to do with class invariants. This is caused by invariant currently being an alias for immutable. Change invariant to immutable in the examples and it will make sense.I see, thank you. Do you want me to open a new enhancement request where I ask for the removal of this alias, or do you prefer me to reopen and rename this bug report? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jun 15 2011
http://d.puremagic.com/issues/show_bug.cgi?id=4325I see, thank you. Do you want me to open a new enhancement request where I ask for the removal of this alias, or do you prefer me to reopen and rename this bug report?A new report. Changing the focus of old reports makes it more difficult to process them. (for me at least) -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jun 15 2011