Walter Bright <newshou...@digitalmars.com> wrote: > On 7/23/2015 12:50 PM, Tobias Müller wrote: >> TBH I'm very surprised about that argument, because boolean conditions with >> version() were dimissed for exactly that reason. > > I knew someone would bring that up :-) > > No, I do not believe it is the same thing. For one thing, you cannot test > the various versions on one system. On any one system, you have to take > on faith that you didn't break the version blocks on other systems. > > This is quite unlike D's template constraints, where all the combinations > can be tested reliably with a unittest{} block.
How is this related to testability? Using boolean conditions does not introduce any new code paths compared to helper versions/ helper traits. Testability is exactly the same. My point was that you argued with cleaner design in the case of versions. *I agree with that*, and I think the same is true for traits. Even if you're right and testability is better, that doesn't contradict the point that I'm trying to make. Tobi