digitalmars.D.bugs - [Issue 2200] New: std.string.format behaves wrong when passing an interface reference
- d-bugmail puremagic.com (31/31) Jul 07 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2200
- d-bugmail puremagic.com (8/8) Jul 07 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2200
- d-bugmail puremagic.com (9/9) Mar 27 2009 http://d.puremagic.com/issues/show_bug.cgi?id=2200
http://d.puremagic.com/issues/show_bug.cgi?id=2200 Summary: std.string.format behaves wrong when passing an interface reference Product: D Version: unspecified Platform: PC OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: bugzilla digitalmars.com ReportedBy: 2korden gmail.com Current std.string.format implementation throws an exception if an interface reference is passed to it.Although interfaces don't derive from an Object, an attempt to cast to an Object should be made, and no exception should be thrown unless the cast was unsuccessful. *Or* it should be a compile-time error to pass a reference to interface to the function. module test; interface I {} class C : I {} C c = new C(); I i = c; Object o = cast(Object)i; try { writefln( format(c) ); } catch (Exception e) { writefln(e); } try { writefln( format(i) ); } catch (Exception e) { writefln("Error: ", e); } try { writefln( format(o) ); } catch (Exception e) { writefln(e); } Expected behaviour: "test.C" printed 3 times Actual behaviour: and exception is thrown while in a format(i); --
Jul 07 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2200 Currently writef/writefln fails with compile-time error deep inside std.format implementation with a "No property toString for test.I" error. It should be also updated to use cast to Object. Or, if it is made by design, std.string.format should fail with the same reason at compile-time. --
Jul 07 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2200 dsimcha yahoo.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE *** This bug has been marked as a duplicate of 535 *** --
Mar 27 2009