From: aclement Date: Wed, 7 Dec 2005 17:16:29 +0000 (+0000) Subject: test for 119539 X-Git-Tag: V1_5_0RC1~46 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=283d2cdd5b5d8e38c63694597d90561c50400c18;p=aspectj.git test for 119539 --- diff --git a/tests/bugs150/pr119539/GenericPerTypeWithin.java b/tests/bugs150/pr119539/GenericPerTypeWithin.java new file mode 100644 index 000000000..c7ee849c2 --- /dev/null +++ b/tests/bugs150/pr119539/GenericPerTypeWithin.java @@ -0,0 +1,24 @@ +package bugs; + +public class GenericPerTypeWithin { + public static void main(String[] args) { + new C(); + } +} + +class C { + C() {} +} +class B { + B() {} +} + + +abstract aspect Singleton pertypewithin(Target) { + pointcut creation() : execution(Target+.new()) ; + pointcut creationOfAnything(): execution(*.new()); + before() : creation() { } + before() : creationOfAnything() {} // should not match B.new() because of the ptw +} + +aspect A extends Singleton {} diff --git a/tests/bugs150/pr119539/GenericPerTypeWithin2.java b/tests/bugs150/pr119539/GenericPerTypeWithin2.java new file mode 100644 index 000000000..807f3d0ef --- /dev/null +++ b/tests/bugs150/pr119539/GenericPerTypeWithin2.java @@ -0,0 +1,24 @@ +package bugs; + +public class GenericPerTypeWithin2 { + public static void main(String[] args) { + new C(); + } +} + +class C { + C() {} +} +class B { + B() {} +} + + +abstract aspect Singleton pertypewithin(Target) { + pointcut creation() : execution(Target+.new()) ; + pointcut creationOfAnything(): execution(*.new()); + before() : creation() { } + before() : creationOfAnything() {} // should not match B.new() because of the ptw +} + +aspect A extends Singleton {} diff --git a/tests/bugs150/pr119539/GenericPerTypeWithin3.java b/tests/bugs150/pr119539/GenericPerTypeWithin3.java new file mode 100644 index 000000000..ffc2ba3d7 --- /dev/null +++ b/tests/bugs150/pr119539/GenericPerTypeWithin3.java @@ -0,0 +1,19 @@ +package bugs; +// this one matches the bug report ... apart from switching to before() advice as ctor-exec JPs have void return +public class GenericPerTypeWithin3 { + + public static void main(String[] args) { + new C(); // fyi, compiler does nothing absent this call? + } + public static abstract aspect Singleton pertypewithin(Target) { + pointcut creation() : execution(Target+.new()) ; + before() : creation() { } + // picks out constructor-execution below + declare warning : creation() : "Singleton.creation()"; + } + static class C { + C(){} + } + static aspect A extends Singleton {} + +} \ No newline at end of file