On Thursday, 15 March 2018 at 12:14:12 UTC, Jacob Carlborg wrote:
On Thursday, 15 March 2018 at 05:22:45 UTC, Seb wrote:

Hmm how would this solve the StdUnittest use case? I.e. that templated phobos unittests and private unittest symbols are compiled into the users unittests?

See also:

https://github.com/dlang/phobos/pull/6202
https://github.com/dlang/phobos/pull/6159

I would hope this would be solvable without the having the user do something, like `-unittest=<pattern>`.

--
/Jacob Carlborg

... exactly my point, but I think I misunderstood the goal of -unittest=<pattern>. It's solely about being able to filter selectively for which unittests to run, which is a noble goal itself.

A bit of background regarding StdUnittest
-----------------------------------------

To explain the need for StdUnittest to people who haven't been following up on the discussion have a look at https://github.com/dlang/phobos/pull/5927 which introduced StdUnittest initially.

There are a few examples in this PR:

1) short-path version(unittest) in a symbol was done in production code too (see https://github.com/dlang/phobos/pull/5932)

2) The unittest in templated aggregates are compiled and executed whenever the users uses the templates (see also: https://wiki.dlang.org/DIP82)

3) version(unitest) symbols which are added for unittest are still visible and compiled into user code. Of course this should be fixed with `private`, but even then the compiler still looks at the symbol, which it wouldn't do with StdUnittest (see Vladimir's comment about import time https://github.com/dlang/phobos/pull/6159#issuecomment-365290004)

Now StdUnitest was reverted because -deps compiles ALL code and thus lead to breakage in downstream packages, see https://github.com/dlang/phobos/pull/6159 for the discussion

Reply via email to