kopie van
https://github.com/eclipse-aspectj/aspectj.git
synced 2024-09-03 17:56:34 +02:00
33 regels
851 B
Java
33 regels
851 B
Java
|
|
import org.aspectj.testing.Tester;
|
|
import java.util.*;
|
|
|
|
/** @testcase PR#836 void around advice without proceed */
|
|
public class VoidAround {
|
|
|
|
public static void main(String[] args) {
|
|
C c = new C();
|
|
c.run();
|
|
Object o = c.result();
|
|
Tester.check(o == C.EXPECTED, "o: " + o);
|
|
Tester.checkAllEvents();
|
|
}
|
|
}
|
|
|
|
class C {
|
|
static Object EXPECTED = new Object();
|
|
public void run() { }
|
|
public Object result() { return EXPECTED; }
|
|
}
|
|
|
|
aspect A {
|
|
static {
|
|
Tester.expectEvent("void C.run()");
|
|
Tester.expectEvent("Object C.result()");
|
|
}
|
|
// no compile error expected (also note: message jp signatures are wrong?)
|
|
void around() : target(C) && call(* r*(..)) { // CE can't apply to methods returning Object
|
|
Tester.event(thisJoinPoint.getSignature().toString());
|
|
}
|
|
}
|