diff options
author | Andy Clement <aclement@pivotal.io> | 2022-01-17 17:47:37 -0800 |
---|---|---|
committer | Andy Clement <aclement@pivotal.io> | 2022-01-17 17:47:37 -0800 |
commit | b720626100766ec0c34985404d774eccb51efdc0 (patch) | |
tree | e3310ac13761767f646fa4690a4f9e2e591870d3 /tests/bugs198 | |
parent | 08414a740dc00b3b3d08fc01e2d1a5b947395a45 (diff) | |
download | aspectj-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.java | 32 | ||||
-rw-r--r-- | tests/bugs198/github_115/B.java | 33 |
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() { } + +} + |