DIP82: static unittest blocks

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Sun Sep 27 07:37:07 PDT 2015


On Sunday, 27 September 2015 at 09:24:29 UTC, Jacob Carlborg 
wrote:
> On 2015-09-27 07:01, Jonathan M Davis wrote:
>> This DIP provides a way to handle unittest blocks inside of 
>> templates
>> which works with ddoc without compiling the unittest blocks 
>> into each
>> instantiation.
>>
>> http://wiki.dlang.org/DIP82
>
> How would this work in the compiler? Currently it only lexes 
> and parses uninstantiated templates. I think that Andrei also 
> wants to make the lexing and parsing lazy.

I don't know the details of how this would be implemented in the 
compiler, but clearly what that the compiler currently does is 
enough to generate documentation from the ddoc comments inside of 
templates, and I wouldn't think that detecting a static unittest 
would be much more complicated than that. It can then do full 
analysis of the static unittest if it's the module with the 
template that's being compiled, and it's being compiled with 
-unittest, and otherwise, it can pretty much ignore it (or at 
least, ignore it as much as any other unittest block gets ignored 
when -unittest isn't used).

But we have a real need here if we want to be able to actually 
have unit tests inside of templated types next to what they're 
unit testing. So, I would certainly hope that it's reasonable to 
implement something like this without complicating the compiler 
much. Certainly, the fact that ddoc works inside of templates 
makes it seem like this should be feasible.

- Jonathan M Davis


More information about the Digitalmars-d mailing list