On Saturday, 26 October 2013 at 20:38:14 UTC, TheFlyingFiddle
wrote:
On Saturday, 26 October 2013 at 19:04:09 UTC, Gary Willoughby
wrote:
On Saturday, 26 October 2013 at 16:36:35 UTC, TheFlyingFiddle
wrote:
Is there a way to extract the source code of a method at
compiletime?
Nope. What do you need to do?
I'm currently making an AOP framework. I use UDA's to handle
logging, exception handling ect.
It looks something like this currently.
class Foo : IFoo
{
@Log("bar.txt") @DLLException()
void bar(...params...)
{
//dosomething
}
}
unittest
{
alias TypeTuple!(LogWrapper, DLLExeWrapper, ...) wrappers;
//Normal foo
auto fooProto = new Foo();
//Wrapped foo having some nice extra functionallity for
Foo.bar
IFoo foo = new wrap!(Foo, IFoo, wrappers)(fooProto);
}
Currently the wrappped foo delegates to fooProto aswell as
adding the functinallity specified by the UDA's. I basically
wanted to remove the
delegation. And just put the source code in the newly created
foo specialisation.
I kind of did the same thing here in the Mockable mixin:
https://github.com/nomad-software/dunit Instead of wrapping i
simply extended the target class so i have access to
'super.bar()'. Then i can add the specialisation code and/or call
the original method too.