On Sunday, 19 June 2016 at 08:33:40 UTC, Johan Engelen wrote:
On Sunday, 19 June 2016 at 08:06:09 UTC, Dicebot wrote:
This important feature and can't be simply removed. For example, std.experimental.logger also relies on it.

Do you mean it relies on __FILE__ being a template parameter (instead of a runtime default parameter, like enforce)?

Yes. It is necessary because runtime parameter list is variadic - template bloat in such cases is usually eliminated by forwarding to another private method immediately turning file/line into first runtime argument instead.

It needs to be fixed instead.

Two immediate workarounds that come to mmy mind:

1. Make __FILE__ relative to import path
2. Always emit new symbol to object file if __FILE__ is involved

I also thought about 2. It would fix the second (non-Phobos) example.

-Johan


Reply via email to