Am 27.07.2016 um 00:07 schrieb Justin Whear:
Spent the last hour trying to figure out why my @after annotations weren't working. I don't think it's necessarily a bug but it's something to watch out for and I thought posting here would help future Internet searchers.
Adapting the example REST code, this doesn't work:
interface Example5API { @before!authenticate("user") @after!addBrackets string getSecret(int num, User user); }
while this code does work:
interface Example5API { @before!authenticate("user") @after!addBrackets() string getSecret(int num, User user); }
The difference is the subtle omission of parentheses on the
@after
annotation. I am accustomed to omitting these with D's lenient property syntax and got bit by it here. Unfortunately both versions compile and run, but in the paran-less version, theaddBrackets
handler is silently never called.
I've added @property
to the after
attribute function now, so that
the first one should work now, too.