From fbac9e5426de8b2a2cbd4408e812dd34648a6a10 Mon Sep 17 00:00:00 2001 From: aclement Date: Fri, 22 Aug 2008 21:07:25 +0000 Subject: 198341: test and fix --- tests/bugs162/pr198341/AnnotationAspect.java | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 tests/bugs162/pr198341/AnnotationAspect.java (limited to 'tests/bugs162') 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; +} + -- cgit v1.2.3