[Issue 2200] New: std.string.format behaves wrong when passing an interface reference
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Jul 7 12:42:58 PDT 2008
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 at digitalmars.com
ReportedBy: 2korden at 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);
--
More information about the Digitalmars-d-bugs
mailing list