aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/ajcTestsFailing.xml6
-rw-r--r--tests/new/EmptyInterface.java33
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() {}
+}