diff options
Diffstat (limited to 'tests/bugs150/pr115250.aj')
-rw-r--r-- | tests/bugs150/pr115250.aj | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/bugs150/pr115250.aj b/tests/bugs150/pr115250.aj new file mode 100644 index 000000000..ccda14adc --- /dev/null +++ b/tests/bugs150/pr115250.aj @@ -0,0 +1,36 @@ +public class pr115250 { + public static void main(String[] args) { + test(); + } + public static void test() { + new C(); + } + + static class C { + C() { + System.err.println("C.new() running"); + } + } + + // properly get compiler error wrt return type of join point + static aspect Normal { + C around() : execution(C.new()) { + return proceed(); + } + } + + + // no compiler error wrt return type of join point + + static abstract aspect SS<Target> { + abstract protected pointcut creation(); + Target around() : creation() { // expect CE for execution(C.new()); + System.err.println("Advice running"); + return proceed(); + } + } + + static aspect A extends SS<C> { + protected pointcut creation() : execution(C.new()); + } +} |