[Issue 23571] New: Discussion of manifest constants in enum documentation is confusing at best
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Dec 20 16:41:25 UTC 2022
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 at puremagic.com
Reporter: donaldcallen1942 at 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 at 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.
--
More information about the Digitalmars-d-bugs
mailing list