ModuleInfo.unitTest cannot be called twice

Jacob Carlborg doob at me.com
Wed Dec 12 23:53:06 PST 2012


On 2012-12-12 22:00, Jacob Carlborg wrote:
> It seems it's not possible to call ModuleInfo.unitTest more than once.
>
> The following code will not run the unit tests:
>
> foreach (m ; ModuleInfo)
>      if (m && m.unitTest)
>          m.unitTest();
>
> But this code will:
>
> foreach (m ; ModuleInfo)
>      if (m)
>          if (auto fp = m.unitTest)
>              fp();
>
> Not that I'm storing the result of "m.unitTest" in a variable in the
> second example.
>
> Am I doing something wrong here or is this a bug?

I see what I did wrong. ModuleInfo.unitTest is a method these days, 
instead of a field like before. Due two how properties work in D it will 
only call the "unitTest" method and not the returned function pointer.

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list