https://issues.dlang.org/show_bug.cgi?id=21228

--- Comment #5 from Simen Kjaeraas <[email protected]> ---
A missing toString is not an error - struct S {} should print.

One issue is there's umpteen different possible signatures for toString, and we
don't know which was intended, so we could just be calling it wrong. Once we've
figured out none of the possible ways is correct, we can say for sure that
something's wrong, but not exactly what.

We could introduce something like __traits(getErrors, somecode) that would
return the resulting error messages from an invocation, but 1) we don't have
that, and 2) even if we did, inspecting error messages to figure out what's
wrong is error-prone, and the exact text of the error messages may change in
the future (at least until issue 10335 is implemented).

Perhaps a better option would be something like __traits(errorLocation,
someInstantiation), that would return "body", "arguments", "template
arguments", or "template constraints", depending on where the instantiation
fails. I'm still not sold on that, though.

--

Reply via email to