On 2010-11-21 17:20, Lutger Blijdestijn wrote:
Jacob Carlborg wrote:

On 2010-11-21 01:23, Jonathan M Davis wrote:
On Saturday 20 November 2010 08:03:52 Jacob Carlborg wrote:
Why don't you use delegates instead of string mixins? For example,
assertExcThrown, could take a delegate which calls the function you want
to test instead of a string that represents the call. The mixin want be
needed as well. Am I missing something?

Well, delegates wouldn't be a bad idea, but they're unwieldy too. Would
you rather write

assertExcThrown!Exception((){func(param1, param2);});

or

mixin(assertExcThrown!(Exception, `func(param1, param2)`));

I would go with the delegate, but when you format the code like that it
doesn't look any good (btw, no need for the extra pair of empty
parentheses). I think this looks better:

assertExcThrown!Exception({
      func(param1, param2);
});

And BTW, D needs a better way to pass a delegates to a function,
something like the syntax that can be used in Scala:

assertExcThrown!Exception {
      func(param1, param2);
}

This is possible, but too surprising:

assertExcThrown!Exception = {
     func(param1, param2);
};

with lazy:

assertExcThrown!Exception = func(param1, param2);

There's also the operator overload abuse which overloads opIn:

assertExcThrown!Exception in {
    func(param1, param2);
};

--
/Jacob Carlborg

Reply via email to