diff options
Diffstat (limited to 'tests/bugs162/pr198341/AnnotationAspect.java')
-rw-r--r-- | tests/bugs162/pr198341/AnnotationAspect.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/bugs162/pr198341/AnnotationAspect.java b/tests/bugs162/pr198341/AnnotationAspect.java new file mode 100644 index 000000000..a67c2641b --- /dev/null +++ b/tests/bugs162/pr198341/AnnotationAspect.java @@ -0,0 +1,30 @@ +import java.lang.annotation.*; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@interface TestAnnotation1 {} + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@interface TestAnnotation2{} + +@TestAnnotation1 +class Annotated {} + +interface Marker {} + +public aspect AnnotationAspect { + + declare @type: @TestAnnotation1 *: @TestAnnotation2; + + // of cource this matches + // declare parents: (@TestAnnotation1 *) implements Marker; + // this matches, too + // declare parents: (@TestAnnotation2 *) implements Marker; + + // this does not match on Annotated + declare parents: (@TestAnnotation2 *) && !java.lang.annotation.Annotation implements Marker; + // but this does match on annotated + // declare parents: (@TestAnnotation1 *) && !java.lang.annotation.Annotation implements Marker; +} + |