I am a little concerned about the discussion here (https://github.com/D-Programming-Language/phobos/pull/3394#discussion_r31953154) pertaining to the usage (or abuse) of .stringof.

[1] https://github.com/D-Programming-Language/phobos/pull/3394#discussion_r31953154


JC: I've been told that stringof shouldn't be used for anything other than debugging. Is there something else that can be used? There's no guarantee that the result is stable?

AA: there was no other way I could do it

ML: A lot of the time there really is no other way. A large amount of code in this vein that I've written invariably ends up needing stringof as well. Maybe we should provide stronger guarantees about what stringof produces.

AA: Well it'll break the unittests that's for sure :). The problem here is with the function parameter lists. There is no way to express storage classes such as ref, out, lazy as parts of types.

I also think .stringof for types should offer better guarantees. The simplest one is, for non-Voldemort types, pasting the string into source code should be parsable as a type. Today that's not always the case.


I smell an action item here. What can be done to make this less of "There's no other way to do it" and more "That's how it should be done"?

Mike

Reply via email to