diff options
-rw-r--r-- | tests/ajcTestsFailing.xml | 6 | ||||
-rw-r--r-- | tests/new/EmptyInterface.java | 33 |
2 files changed, 39 insertions, 0 deletions
diff --git a/tests/ajcTestsFailing.xml b/tests/ajcTestsFailing.xml index cb741c1e0..ec15b0ad8 100644 --- a/tests/ajcTestsFailing.xml +++ b/tests/ajcTestsFailing.xml @@ -4,5 +4,11 @@ <!-- contains valid tests that the compiler has never passed --> <suite> + <ajc-test dir="new" pr="36778" + title="advise join points in subclass of empty interface"> + <compile files="EmptyInterface.java"/> + <run class="EmptyInterface"/> + </ajc-test> + </suite> diff --git a/tests/new/EmptyInterface.java b/tests/new/EmptyInterface.java new file mode 100644 index 000000000..db53d592a --- /dev/null +++ b/tests/new/EmptyInterface.java @@ -0,0 +1,33 @@ + + +import org.aspectj.testing.Tester; + +/** @testcase PR#36778 advise join points in subclass of empty interface */ +public class EmptyInterface { + + public static void main(String[] args) { + new C().go(); + // at least constructor and method execution + if (2 > Log.hits) { + Tester.check(false, Log.log.toString()); + } + } +} + +aspect Log { + static int hits; + static StringBuffer log = new StringBuffer(); + interface LoggedType {} + declare parents: C implements LoggedType; + void around() : within(LoggedType+) + && !initialization(new(..)) + && !preinitialization(new(..)) // 1.1 only + { + hits++; + log.append(thisJoinPoint + ";"); + } +} + +class C { + void go() {} +} |