<!-- 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>
--- /dev/null
+
+
+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() {}
+}