Thread overview
Awesome: asserts turn into writeln for ddoc'd unit tests
Sep 17, 2017
Seb
Sep 18, 2017
Jonathan Marler
Sep 18, 2017
Vladimir Panteleev
September 17, 2017
This is something I didn't realize happened (I remember discussing it a while back). Awesome work whoever did it, and works great!

To recap, for anyone like me who is clueless, for documented unit tests:

///
unittest
{
   int x = 5;
   assert(x == 5);
}

turns into this in ddoc:

int x = 5;
writeln(x); // 5

Very cool :)

A question: is this for all libraries, or is it a special case for dlang.org?

-Steve
September 17, 2017
On Sunday, 17 September 2017 at 18:30:51 UTC, Steven Schveighoffer wrote:
> This is something I didn't realize happened (I remember discussing it a while back). Awesome work whoever did it, and works great!

Yeah we even had a short post about it: https://github.com/dlang/dlang.org/blob/master/assert_writeln_magic.d

> Very cool :)

Thanks!!

> A question: is this for all libraries, or is it a special case for dlang.org?

It's done with libdparse and only for dlang.org.
The code is actually really simple in case you are interested:

https://github.com/dlang/dlang.org/blob/master/assert_writeln_magic.d


September 18, 2017
On Sunday, 17 September 2017 at 21:36:51 UTC, Seb wrote:
> On Sunday, 17 September 2017 at 18:30:51 UTC, Steven Schveighoffer wrote:
>> This is something I didn't realize happened (I remember discussing it a while back). Awesome work whoever did it, and works great!
>
> Yeah we even had a short post about it: https://github.com/dlang/dlang.org/blob/master/assert_writeln_magic.d
>
>> Very cool :)
>
> Thanks!!
>
>> A question: is this for all libraries, or is it a special case for dlang.org?
>
> It's done with libdparse and only for dlang.org.
> The code is actually really simple in case you are interested:
>
> https://github.com/dlang/dlang.org/blob/master/assert_writeln_magic.d

I'm having a hard time seeing the benefits of this feature, could you share some examples or mention some reasons how this transformation is helpful? Not trying to attack the feature, just curious. Thanks.
September 18, 2017
On Monday, 18 September 2017 at 02:40:00 UTC, Jonathan Marler wrote:
> I'm having a hard time seeing the benefits of this feature, could you share some examples or mention some reasons how this transformation is helpful? Not trying to attack the feature, just curious. Thanks.

When running the unittests/examples on dlang.org, or when copying them and pasting in a text file and running them locally, the code will almost always execute with no output or other side effects. Generally, this isn't very useful or interesting when you're trying to learn about or experiment with the symbol being documented - it's more interesting to print the calculated results. The transformation converts the expected results (whatever the assert statement checks for equality) into a comment, so you can still see what the expected output was.