test/tools/javac/annotations/typeAnnotations/failures/Scopes.java

changeset 2134
b0c086cd4520
parent 1521
71f35e4b93a5
child 2525
2eb010b6cb22
equal deleted inserted replaced
2133:19e8eebfbe52 2134:b0c086cd4520
1 /* 1 /*
2 * @test /nodynamiccopyright/ 2 * @test /nodynamiccopyright/
3 * @bug 6843077 8006775 3 * @bug 6843077 8006775
4 * @summary check that A is accessible in the class type parameters 4 * @summary Unqualified inner type annotation not in scope.
5 * @author Mahmood Ali 5 * @author Mahmood Ali
6 * @compile/fail/ref=Scopes.out -XDrawDiagnostics Scopes.java 6 * @compile/fail/ref=Scopes.out -XDrawDiagnostics Scopes.java
7 */ 7 */
8 class Scopes<T extends @UniqueInner Object> { 8 import java.lang.annotation.*;
9 // UniqueInner is not visible in the type parameters. 9
10 // One has to use Scopes.UniqueInner. 10 @InnerTA
11 // Annotations with the default @Target are not allowed there, 11 class Scopes<@InnerTA T extends @InnerTA Object> {
12 // so we also get the second error about the invalid location. 12 // The simple name TA is not in scope on header of class.
13 // Adding the target here doesn't matter, as we don't resolve 13 // One has to use @Scopes.TA.
14 // the annotation type. 14 @Target(ElementType.TYPE_USE)
15 // @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) 15 @interface InnerTA { };
16 @interface UniqueInner { };
17 } 16 }

mercurial