[Issue 535] New: writef doesn't work on interfaces
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Thu Nov 16 16:44:36 PST 2006
    
    
  
http://d.puremagic.com/issues/show_bug.cgi?id=535
           Summary: writef doesn't work on interfaces
           Product: D
           Version: 0.174
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Phobos
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: smjg at iname.com
If writef is fed an argument of an interface type, it just throws a
FormatError.
----------
import std.stdio;
interface Qwert {}
class Yuiop : Qwert {
    char[] toString() {
        return "asdfg";
    }
}
void main() {
    Qwert hjkl = new Yuiop;
    writefln(hjkl);
    writefln("%s", hjkl);
}
----------
Error: std.format formatArg
----------
It should use the object's toString property.  True, interfaces don't extend
Object and so don't have toString as such, but what could be more sensible than
casting it to an Object and then treating it in the same way?
Adding char[] toString() to the interface makes no difference.
-- 
    
    
More information about the Digitalmars-d-bugs
mailing list