From 6bda5d41e9a0c8a31a6675e8374cf45f25331edd Mon Sep 17 00:00:00 2001 From: aclement Date: Mon, 21 Nov 2005 10:39:34 +0000 Subject: [PATCH] two test programs for 115250 --- tests/bugs150/pr115250.aj | 36 +++++++++++++++++++++++++++++++++++ tests/bugs150/pr115250_2.aj | 38 +++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 tests/bugs150/pr115250.aj create mode 100644 tests/bugs150/pr115250_2.aj 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 { + 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 { + protected pointcut creation() : execution(C.new()); + } +} diff --git a/tests/bugs150/pr115250_2.aj b/tests/bugs150/pr115250_2.aj new file mode 100644 index 000000000..37cfd0eef --- /dev/null +++ b/tests/bugs150/pr115250_2.aj @@ -0,0 +1,38 @@ +public class pr115250_2 { + public static void main(String[] args) { + test(); + } + public static void test() { + new C().foo(); + } + + static class C { + C() { + System.err.println("C.new() running"); + } + + C foo() { return null; } + } + + // properly get compiler error wrt return type of join point + static aspect Normal { + C around() : execution(* C.foo()) { + return proceed(); + } + } + + + // no compiler error wrt return type of join point + + static abstract aspect SS { + abstract protected pointcut creation(); + Target around() : creation() { // expect CE for execution(C.new()); + System.err.println("funky advice running"); + return proceed(); + } + } + + static aspect A extends SS { + protected pointcut creation() : execution(* C.foo()); + } +} -- 2.39.5