digitalmars.D.bugs - [Issue 23571] New: Discussion of manifest constants in enum
- d-bugmail puremagic.com (36/36) Dec 20 2022 https://issues.dlang.org/show_bug.cgi?id=23571
https://issues.dlang.org/show_bug.cgi?id=23571 Issue ID: 23571 Summary: Discussion of manifest constants in enum documentation is confusing at best Product: D Version: D2 Hardware: x86_64 OS: FreeBSD Status: NEW Severity: normal Priority: P1 Component: dlang.org Assignee: nobody puremagic.com Reporter: donaldcallen1942 icloud.com Section 17.3 of the Language documentation discusses manifest constants. Subsection 17.3.1 describes anonymous enums having only one value. Subsection 17.3.2 defines manifest constants. The effect is to imply that only anonymous enums having only one value are manifest constants. This is not true. import std.stdio; import std.format; enum Foo { bar = 1, bletch = 2 } int main(string[] args) { writefln("%x", &Foo.bar); return 0; } Compiling this with dmd 2.101.0 produces dca giovanni:/tmp$ dmd test.d test.d(11): Error: manifest constant `bar` cannot be modified All enums are manifest constants, per the definition in 17.3.2. The documentation should make this clear and doesn't. --
Dec 20 2022