Bug 6529 – writeln(const array of enums) too

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2011-08-18T14:56:00Z
Last change time
2011-10-02T14:35:17Z
Keywords
patch, rejects-valid
Assigned to
nobody
Creator
bearophile_hugs

Comments

Comment #0 by bearophile_hugs — 2011-08-18T14:56:17Z
This enhancement request is almost a bug report. import std.stdio: writeln; enum Foo : char { A='a', B='b', C='c' } void main() { const Foo[] foos = [Foo.A]; writeln(foos); } DMD 2.055beta gives errors, but I'd like to print such arrays too: ...\src\phobos\std\format.d(1338): Error: static assert (isInputRange!(const(Foo)[])) is false ...\src\phobos\std\format.d(1652): instantiated from here: formatValue!(LockingTextWriter,const(Foo[]),immutable(char)) ...\src\phobos\std\format.d(309): instantiated from here: formatGeneric!(LockingTextWriter,const(Foo[]),immutable(char)) ...\src\phobos\std\stdio.d(678): instantiated from here: formattedWrite!(LockingTextWriter,immutable(char),const(Foo[])) ...\src\phobos\std\stdio.d(1511): instantiated from here: write!(const(Foo[]),char) test.d(5): instantiated from here: writeln!(const(Foo[]))
Comment #1 by k.hara.pg — 2011-08-31T09:25:23Z
This is not an issue of std.format, is the issue of dmd. enum Foo : char { A='a' } ref const(Foo) f(const(Foo)[] arr){ return arr[0]; } // test.d(2): Error: arr[0u] isn't mutable
Comment #2 by k.hara.pg — 2011-08-31T10:04:08Z
Comment #3 by bugzilla — 2011-10-02T14:35:17Z