http://d.puremagic.com/issues/show_bug.cgi?id=7857
Summary: File#write formats enum as a boolean. Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: regression Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: repeate...@gmail.com --- Comment #0 from Masahiro Nakagawa <repeate...@gmail.com> 2012-04-08 07:14:50 PDT --- Test code is below: ----- enum EI : int { A, B } enum ED : double { A, B } writeln(EI.A); // false, but A on 2.058 writeln(EI.B); // true, but B on 2.058 writeln(ED.A); // A writeln(ED.B); // B ----- The reason of this bug is isBoolean template returns true. (BooleanTypeOf template returns "immutable(bool)"). std.stdio.File#write's code: ----- void write(S...)(S args) { auto w = lockingTextWriter; foreach (arg; args) { alias typeof(arg) A; static if (isSomeString!A) { put(w, arg); } else static if (isIntegral!A) { toTextRange(arg, w); } else static if (isBoolean!A) // Oops! enum into this block. { put(w, arg ? "true" : "false"); } else static if (isSomeChar!A) { put(w, arg); } else { // Most general case std.format.formattedWrite(w, "%s", arg); } } } ----- This bug is major issue for me. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------