declare soft: (IOException): module();However, even ajc only allows a type in that position, and there is no other place in Java where types may be parenthesised. abc therefore forbids these parentheses.
(args(x,..) || args(..,x)) && if(x==0)The semantics of such bindings is defined by rewriting to disjunctive normal form (by distributing atomic conjuncts leftwards). The first disjunct in the normal form that succeeds is the binding passed to the advice body. This is supported with all forms of advice, including around. ajc does not currently support alternative argument bindings (see ajc bug 61568).
The following is a list of differences with ajc that we consider bugs in abc. Contrary to the above differences (which are by design), we aim to resolve these when possible. If you would like us to increase the priority we give to fixing a particular problem, please let us know on the mailing lists, or by using Bugzilla to vote for the appropriate bug, if any.
One of the items relates to options supported by ajc but not abc. There are many other options that we also do not support, but do not currently plan to ever support. If one of these is important to you, let us know and we will consider adding it.
Please also see the Bugzilla database for a more comprehensive list of known bugs.