On Sunday 21 November 2010 05:44:15 Jacob Carlborg wrote: > I don't know if the compiler can inline delegates or not but if it can I > think this case would be very easy for the compiler to inline the delegate.
It can't. That's one of the big issues with enforce. At the moment, it actually makes it so that if you use enforce in a function, that function can't be inlined. Assuming that that gets fixed, assertExcThrown!() might then be inlineable, depending on how picky the inliner is, at which point perhaps the delegate could be inlined, but I don't think that delegates will ever be inlineable unless the function they're called in is inlined, because the delegate to inline would change every time that the function is called. In any case, it's definitely true that the compiler may be able to better optimize assertExcThrown!(). But much as I'd like fast unit testing code, I'd much rather have useable and readily maintainable unit testing code than fast unit testing code. It would be nice to have both though. - Jonathan M Davis