aboutsummaryrefslogtreecommitdiffstats
path: root/tests/bugs198
diff options
context:
space:
mode:
authorAndy Clement <aclement@pivotal.io>2022-01-17 17:47:37 -0800
committerAndy Clement <aclement@pivotal.io>2022-01-17 17:47:37 -0800
commitb720626100766ec0c34985404d774eccb51efdc0 (patch)
treee3310ac13761767f646fa4690a4f9e2e591870d3 /tests/bugs198
parent08414a740dc00b3b3d08fc01e2d1a5b947395a45 (diff)
downloadaspectj-b720626100766ec0c34985404d774eccb51efdc0.tar.gz
aspectj-b720626100766ec0c34985404d774eccb51efdc0.zip
Fix annotation style support for if(true) and if(false)
The documentation specifies annotation style pointcuts can use if(false) or if(true) and not require a boolean return value and body for the @Pointcut annotated method but it doesn't work without this change to validation that recognizes the situation. Fixes #115
Diffstat (limited to 'tests/bugs198')
-rw-r--r--tests/bugs198/github_115/A.java32
-rw-r--r--tests/bugs198/github_115/B.java33
2 files changed, 65 insertions, 0 deletions
diff --git a/tests/bugs198/github_115/A.java b/tests/bugs198/github_115/A.java
new file mode 100644
index 000000000..07df21f10
--- /dev/null
+++ b/tests/bugs198/github_115/A.java
@@ -0,0 +1,32 @@
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+
+public class A {
+
+ public static void main(String []argv) {
+ System.out.println("A.main");
+ }
+
+}
+
+@Aspect
+class Azpect {
+
+ @Pointcut("if(false)")
+ public void isFalse() { }
+
+ @Pointcut("if(true)")
+ public void isTrue() { }
+
+ @Before("isTrue() && execution(* A.main(..))")
+ public void beforeTrue() {
+ System.out.println("Azpect.beforeTrue");
+ }
+
+ @Before("isFalse() && execution(* A.main(..))")
+ public void beforeFalse() {
+ System.out.println("Azpect.beforeFalse");
+ }
+}
+
diff --git a/tests/bugs198/github_115/B.java b/tests/bugs198/github_115/B.java
new file mode 100644
index 000000000..eba199b67
--- /dev/null
+++ b/tests/bugs198/github_115/B.java
@@ -0,0 +1,33 @@
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+
+public class B {
+
+ public static void main(String []argv) {
+ System.out.println("B.main");
+ }
+
+}
+
+@Aspect
+abstract class AbstractAzpect {
+
+ @Pointcut
+ public abstract void isTrue();
+
+ @Before("isTrue() && execution(* B.main(..))")
+ public void beforeFalse() {
+ System.out.println("Azpect.beforeFalse");
+ }
+}
+
+@Aspect
+class Azpect extends AbstractAzpect {
+
+ @Override
+ @Pointcut("if(true)")
+ public void isTrue() { }
+
+}
+