digitalmars.D.bugs - [Issue 2287] New: to!(string)(struct) should work if struct has toString() function
- d-bugmail puremagic.com (41/41) Aug 16 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2287
- d-bugmail puremagic.com (6/6) Aug 16 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2287
- d-bugmail puremagic.com (5/5) Aug 16 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2287
- d-bugmail puremagic.com (10/10) Aug 16 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2287
- d-bugmail puremagic.com (4/4) Sep 02 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2287
http://d.puremagic.com/issues/show_bug.cgi?id=2287 Summary: to!(string)(struct) should work if struct has toString() function Product: D Version: 2.018 Platform: PC OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: bugzilla digitalmars.com ReportedBy: dsimcha yahoo.com import std.stdio, std.conv; struct Foo { string toString() { return "test"; } } void main() { Foo test; //Doesn't work. std.conv unaware of foo.toString(). writefln(to!(string)(test)); } Obviously, this is a very simplified test case, but when writing generic code, it can become a legitimate issue. Also note that the following test case, which just changes Foo to a class, actually works. import std.stdio, std.conv; class Foo { this(){} string toString() { return "test"; } } void main() { Foo test = new Foo; writefln(to!(string)(test)); } I've found the bug and the fix is a dead simple two-liner. I'll attach the diffs against conv.d. --
Aug 16 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2287 Created an attachment (id=270) --> (http://d.puremagic.com/issues/attachment.cgi?id=270&action=view) Call toString() if available. --
Aug 16 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2287 Please ignore the patch I posted. Upon further testing, it seems to break other stuff. --
Aug 16 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2287 andrei metalanguage.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Added the appropriate code. Hopefully that doesn't break anything else :o). Committed, will be distributed with next release. --
Aug 16 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2287 Fixed dmd 2.019 --
Sep 02 2008