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