summaryrefslogtreecommitdiffstats
path: root/tests/bugs162/pr198341/AnnotationAspect.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/bugs162/pr198341/AnnotationAspect.java')
-rw-r--r--tests/bugs162/pr198341/AnnotationAspect.java30
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;
+}
+