8042451: Write tests for all possible kinds of type annotation
Summary: Add new tests for type annotations to improve case coverage
Reviewed-by: jjg, emc, abuckley
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/ClassExtends.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/ClassExtends.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,72 +25,110 @@
/*
* @test
+ * @bug 8042451
* @summary Test population of reference info for class extends clauses
* @compile -g Driver.java ReferenceInfoUtil.java ClassExtends.java
* @run main Driver ClassExtends
*/
public class ClassExtends {
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_EXTENDS, typeIndex = -1),
- @TADescription(annotation = "TB", type = CLASS_EXTENDS, typeIndex = 1)
- })
+ @TADescription(annotation = "TA", type = CLASS_EXTENDS, typeIndex = -1)
+ @TADescription(annotation = "TB", type = CLASS_EXTENDS, typeIndex = 1)
public String regularClass() {
- return "class Test extends @TA Object implements Cloneable, @TB Runnable {"
+ return "class %TEST_CLASS_NAME% extends @TA Object implements Cloneable, @TB Runnable {"
+ " public void run() { } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_EXTENDS, typeIndex = -1,
- genericLocation = { 3, 0 }),
- @TADescription(annotation = "TB", type = CLASS_EXTENDS, typeIndex = 1,
- genericLocation = { 3, 1 })
- })
- public String regularClassExtendsParametrized() {
- return "class Test extends HashMap<@TA String, String> implements Cloneable, Map<String, @TB String>{ } ";
+ @TADescription(annotation = "RTAs", type = CLASS_EXTENDS, typeIndex = -1)
+ @TADescription(annotation = "RTBs", type = CLASS_EXTENDS, typeIndex = 1)
+ public String regularClassRepeatableAnnotation() {
+ return "class %TEST_CLASS_NAME% extends @RTA @RTA Object implements Cloneable, @RTB @RTB Runnable {"
+ + " public void run() { } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_EXTENDS, typeIndex = -1),
- @TADescription(annotation = "TB", type = CLASS_EXTENDS, typeIndex = 1)
- })
+ @TADescription(annotation = "TA", type = CLASS_EXTENDS, typeIndex = -1,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "TB", type = CLASS_EXTENDS, typeIndex = 1,
+ genericLocation = { 3, 1 })
+ public String regularClassExtendsParametrized() {
+ return "class %TEST_CLASS_NAME% extends HashMap<@TA String, String> implements Cloneable, Map<String, @TB String>{ } ";
+ }
+
+ @TADescription(annotation = "RTAs", type = CLASS_EXTENDS, typeIndex = -1,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "RTBs", type = CLASS_EXTENDS, typeIndex = 1,
+ genericLocation = { 3, 1 })
+ public String regularClassExtendsParametrizedRepeatableAnnotation() {
+ return "class %TEST_CLASS_NAME% extends HashMap<@RTA @RTA String, String> implements Cloneable, Map<String, @RTB @RTB String>{ } ";
+ }
+
+ @TADescription(annotation = "TA", type = CLASS_EXTENDS, typeIndex = -1)
+ @TADescription(annotation = "TB", type = CLASS_EXTENDS, typeIndex = 1)
public String abstractClass() {
- return "abstract class Test extends @TA Date implements Cloneable, @TB Runnable {"
+ return "abstract class %TEST_CLASS_NAME% extends @TA Date implements Cloneable, @TB Runnable {"
+ " public void run() { } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_EXTENDS, typeIndex = -1,
- genericLocation = { 3, 0 }),
- @TADescription(annotation = "TB", type = CLASS_EXTENDS, typeIndex = 1,
- genericLocation = { 3, 1 })
- })
+ @TADescription(annotation = "RTAs", type = CLASS_EXTENDS, typeIndex = -1)
+ @TADescription(annotation = "RTBs", type = CLASS_EXTENDS, typeIndex = 1)
+ public String abstractClassRepeatableAnnotation() {
+ return "abstract class %TEST_CLASS_NAME% extends @RTA @RTA Date implements Cloneable, @RTB @RTB Runnable {"
+ + " public void run() { } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CLASS_EXTENDS, typeIndex = -1,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "RTBs", type = CLASS_EXTENDS, typeIndex = 1,
+ genericLocation = { 3, 1 })
public String abstractClassExtendsParametrized() {
- return "abstract class Test extends HashMap<@TA String, String> implements Cloneable, Map<String, @TB String>{ } ";
+ return "abstract class %TEST_CLASS_NAME% extends HashMap<@RTA @RTA String, String> implements Cloneable, Map<String, @RTB @RTB String>{ } ";
}
@TADescription(annotation = "TB", type = CLASS_EXTENDS, typeIndex = 1)
public String regularInterface() {
- return "interface Test extends Cloneable, @TB Runnable { }";
+ return "interface %TEST_CLASS_NAME% extends Cloneable, @TB Runnable { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CLASS_EXTENDS, typeIndex = 1)
+ public String regularInterfaceRepetableAnnotation() {
+ return "interface %TEST_CLASS_NAME% extends Cloneable, @RTA @RTA Runnable { }";
}
@TADescription(annotation = "TB", type = CLASS_EXTENDS, typeIndex = 1,
genericLocation = { 3, 1 })
public String regularInterfaceExtendsParametrized() {
- return "interface Test extends Cloneable, Map<String, @TB String>{ } ";
+ return "interface %TEST_CLASS_NAME% extends Cloneable, Map<String, @TB String>{ } ";
+ }
+
+ @TADescription(annotation = "RTBs", type = CLASS_EXTENDS, typeIndex = 1,
+ genericLocation = { 3, 1 })
+ public String regularInterfaceExtendsParametrizedRepeatableAnnotation() {
+ return "interface %TEST_CLASS_NAME% extends Cloneable, Map<String, @RTB @RTB String>{ } ";
}
@TADescription(annotation = "TB", type = CLASS_EXTENDS, typeIndex = 1)
public String regularEnum() {
- return "enum Test implements Cloneable, @TB Runnable { TEST; public void run() { } }";
+ return "enum %TEST_CLASS_NAME% implements Cloneable, @TB Runnable { TEST; public void run() { } }";
+ }
+
+ @TADescription(annotation = "RTBs", type = CLASS_EXTENDS, typeIndex = 1)
+ public String regularEnumRepeatableAnnotation() {
+ return "enum %TEST_CLASS_NAME% implements Cloneable, @RTB @RTB Runnable { TEST; public void run() { } }";
}
@TADescription(annotation = "TB", type = CLASS_EXTENDS, typeIndex = 1,
genericLocation = { 3, 0 })
public String regularEnumExtendsParametrized() {
return
- "enum Test implements Cloneable, Comparator<@TB String> { TEST; "
+ "enum %TEST_CLASS_NAME% implements Cloneable, Comparator<@TB String> { TEST; "
+ "public int compare(String a, String b) { return 0; }}";
}
+ @TADescription(annotation = "RTBs", type = CLASS_EXTENDS, typeIndex = 1,
+ genericLocation = { 3, 0 })
+ public String regularEnumExtendsParametrizedRepeatableAnnotation() {
+ return
+ "enum %TEST_CLASS_NAME% implements Cloneable, Comparator<@RTB @RTB String> { TEST; "
+ + "public int compare(String a, String b) { return 0; }}";
+ }
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/ClassTypeParam.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/ClassTypeParam.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,134 +25,232 @@
/*
* @test
+ * @bug 8042451
* @summary Test population of reference info for class type parameters
* @compile -g Driver.java ReferenceInfoUtil.java ClassTypeParam.java
* @run main Driver ClassTypeParam
*/
public class ClassTypeParam {
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER, paramIndex = 1),
- @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0),
- @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
- })
- public String regularClass() {
- return "class Test<@TA K extends @TB Date, @TC V extends @TD Object & @TE Cloneable> { }";
+ @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ public String regularClass1() {
+ return "class %TEST_CLASS_NAME%<@TA K extends @TB Date, @TC V extends @TD Object & @TE Cloneable> { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER, paramIndex = 1),
- @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
- })
+ @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
public String regularClass2() {
- return "class Test<@TA K extends @TB Date, @TC V extends @TE Cloneable> { }";
+ return "class %TEST_CLASS_NAME%<@TA K extends @TB Date, @TC V extends @TE Cloneable> { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1}),
- @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1),
- @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0}),
- @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
- })
+ @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
public String regularClassParameterized() {
- return "class Test<K extends @TA Map<String, @TB String>, V extends @TC List<@TD List<@TE Object>>> { }";
+ return "class %TEST_CLASS_NAME%<K extends @TA Map<String, @TB String>, V extends @TC List<@TD List<@TE Object>>> { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1}),
- @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1),
- @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0}),
- @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0}),
- @TADescription(annotation = "TF", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0),
- @TADescription(annotation = "TG", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
- })
+ @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
+ @TADescription(annotation = "TF", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "TG", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
public String regularClassParameterized2() {
- return "class Test<K extends @TG Object & @TA Map<String, @TB String>, V extends @TF Object & @TC List<@TD List<@TE Object>>> { }";
+ return "class %TEST_CLASS_NAME%<K extends @TG Object & @TA Map<String, @TB String>, V extends @TF Object & @TC List<@TD List<@TE Object>>> { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER, paramIndex = 1),
- @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0),
- @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
- })
+ @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
public String abstractClass() {
- return "abstract class Test<@TA K extends @TB Date, @TC V extends @TD Object & @TE Cloneable> { }";
+ return "abstract class %TEST_CLASS_NAME%<@TA K extends @TB Date, @TC V extends @TD Object & @TE Cloneable> { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1}),
- @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1),
- @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0}),
- @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0}),
- @TADescription(annotation = "TF", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
- })
+ @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
+ @TADescription(annotation = "TF", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
public String abstractClassParameterized() {
- return "abstract class Test<K extends @TA Map<String, @TB String>, V extends @TF Object & @TC List<@TD List<@TE Object>>> { }";
+ return "abstract class %TEST_CLASS_NAME%<K extends @TA Map<String, @TB String>, V extends @TF Object & @TC List<@TD List<@TE Object>>> { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER, paramIndex = 1),
- @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0),
- @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
- })
+ @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
public String regularInterface() {
- return "interface Test<@TA K extends @TB Date, @TC V extends @TD Object & @TE Cloneable> { }";
+ return "interface %TEST_CLASS_NAME%<@TA K extends @TB Date, @TC V extends @TD Object & @TE Cloneable> { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1}),
- @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1),
- @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0}),
- @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
- })
+ @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
public String regularInterfaceParameterized() {
- return "interface Test<K extends @TA Map<String, @TB String>, V extends @TC List<@TD List<@TE Object>>> { }";
+ return "interface %TEST_CLASS_NAME%<K extends @TA Map<String, @TB String>, V extends @TC List<@TD List<@TE Object>>> { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1}),
- @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1),
- @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0}),
- @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0}),
- @TADescription(annotation = "TF", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0),
- @TADescription(annotation = "TG", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
- })
+ @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "TC", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "TD", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "TE", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
+ @TADescription(annotation = "TF", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "TG", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
public String regularInterfaceParameterized2() {
- return "interface Test<K extends @TG Object & @TA Map<String, @TB String>, V extends @TF Object & @TC List<@TD List<@TE Object>>> { }";
+ return "interface %TEST_CLASS_NAME%<K extends @TG Object & @TA Map<String, @TB String>, V extends @TF Object & @TC List<@TD List<@TE Object>>> { }";
}
@TADescription(annotation = "TA", type = METHOD_RETURN)
public String useInReturn1() {
- return "class Test<T> { @TA T m() { throw new RuntimeException(); } }";
+ return "class %TEST_CLASS_NAME%<T> { @TA T m() { throw new RuntimeException(); } }";
}
@TADescription(annotation = "TA", type = METHOD_RETURN, genericLocation = {3, 0})
public String useInReturn2() {
- return "class Test<T> { Class<@TA T> m() { throw new RuntimeException(); } }";
+ return "class %TEST_CLASS_NAME%<T> { Class<@TA T> m() { throw new RuntimeException(); } }";
}
@TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
paramIndex = 0, genericLocation = {3, 0})
public String useInParam1() {
- return "class Test<T> { void m(Class<@TA T> p) { throw new RuntimeException(); } }";
+ return "class %TEST_CLASS_NAME%<T> { void m(Class<@TA T> p) { throw new RuntimeException(); } }";
}
@TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
paramIndex = 0, genericLocation = {3, 0})
public String useInParam2() {
- return "class Test { void m(Class<@TA Object> p) { throw new RuntimeException(); } }";
+ return "class %TEST_CLASS_NAME% { void m(Class<@TA Object> p) { throw new RuntimeException(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CLASS_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTCs", type = CLASS_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "RTDs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "RTEs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ public String regularClassRepeatableAnnotation1() {
+ return "class %TEST_CLASS_NAME%<@RTA @RTA K extends @RTB @RTB Date, @RTC @RTC V extends @RTD @RTD Object & @RTE @RTE Cloneable> { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CLASS_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTCs", type = CLASS_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "RTEs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ public String regularClassRepeatableAnnotation2() {
+ return "class %TEST_CLASS_NAME%<@RTA @RTA K extends @RTB @RTB Date, @RTC @RTC V extends @RTE @RTE Cloneable> { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTBs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "RTCs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "RTDs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "RTEs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
+ public String regularClassParameterizedRepeatableAnnotation() {
+ return "class %TEST_CLASS_NAME%<K extends @RTA @RTA Map<String, @RTB @RTB String>," +
+ " V extends @RTC @RTC List<@RTD @RTD List<@RTE @RTE Object>>> { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTBs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "RTCs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "RTDs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "RTEs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
+ @TADescription(annotation = "RTFs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "RTGs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ public String regularClassParameterizedRepeatableAnnotation2() {
+ return "class %TEST_CLASS_NAME%<K extends @RTG @RTG Object & @RTA @RTA Map<String, @RTB @RTB String>," +
+ " V extends @RTF @RTF Object & @RTC @RTC List<@RTD @RTD List<@RTE @RTE Object>>> { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CLASS_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTCs", type = CLASS_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "RTDs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "RTEs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ public String abstractClassRepeatableAnnotation() {
+ return "abstract class %TEST_CLASS_NAME%<@RTA @RTA K extends @RTB @RTB Date," +
+ " @RTC @RTC V extends @RTD @RTD Object & @RTE @RTE Cloneable> { }";
}
+
+ @TADescription(annotation = "RTAs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTBs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "RTCs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "RTDs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "RTEs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
+ @TADescription(annotation = "RTFs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ public String abstractClassParameterizedRepeatableAnnotation() {
+ return "abstract class %TEST_CLASS_NAME%<K extends @RTA @RTA Map<String, @RTB @RTB String>," +
+ " V extends @RTF @RTF Object & @RTC @RTC List<@RTD @RTD List<@RTE @RTE Object>>> { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CLASS_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTCs", type = CLASS_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "RTDs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "RTEs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ public String regularInterfaceRepeatableAnnotation() {
+ return "interface %TEST_CLASS_NAME%<@RTA @RTA K extends @RTB @RTB Date," +
+ " @RTC @RTC V extends @RTD @RTD Object & @RTE @RTE Cloneable> { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTBs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "RTCs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "RTDs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "RTEs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
+ public String regularInterfaceParameterizedRepeatableAnnotation() {
+ return "interface %TEST_CLASS_NAME%<K extends @RTA @RTA Map<String, @RTB @RTB String>," +
+ " V extends @RTC @RTC List<@RTD @RTD List<@RTE @RTE Object>>> { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTBs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "RTCs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "RTDs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "RTEs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
+ @TADescription(annotation = "RTFs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "RTGs", type = CLASS_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ public String regularInterfaceParameterizedRepeatableAnnotation2() {
+ return "interface %TEST_CLASS_NAME%<K extends @RTG @RTG Object & @RTA @RTA Map<String, @RTB @RTB String>," +
+ " V extends @RTF @RTF Object & @RTC @RTC List<@RTD @RTD List<@RTE @RTE Object>>> { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN)
+ public String useInReturnRepeatableAnnotation1() {
+ return "class %TEST_CLASS_NAME%<T> { @RTA @RTA T m() { throw new RuntimeException(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN, genericLocation = {3, 0})
+ public String useInReturnRepeatableAnnotation2() {
+ return "class %TEST_CLASS_NAME%<T> { Class<@RTA @RTA T> m() { throw new RuntimeException(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 0, genericLocation = {3, 0})
+ public String useInParamRepeatableAnnotation1() {
+ return "class %TEST_CLASS_NAME%<T> { void m(Class<@RTA @RTA T> p) { throw new RuntimeException(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 0, genericLocation = {3, 0})
+ public String useInParamRepeatableAnnotation2() {
+ return "class %TEST_CLASS_NAME% { void m(Class<@RTA @RTA Object> p) { throw new RuntimeException(); } }";
+ }
+
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/ConstructorInvocationTypeArgument.java Fri Jun 06 16:08:46 2014 -0400
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8042451
+ * @summary Test population of reference info for constructor invocation type argument
+ * @compile -g Driver.java ReferenceInfoUtil.java ConstructorInvocationTypeArgument.java
+ * @run main Driver ConstructorInvocationTypeArgument
+ */
+
+import static com.sun.tools.classfile.TypeAnnotation.TargetType.CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT;
+
+public class ConstructorInvocationTypeArgument {
+
+ @TADescription(annotation = "TA", type = CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 0, offset = 4)
+ @TADescription(annotation = "TB", type = CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 0, offset = 0)
+ public String generic1() {
+ return "class %TEST_CLASS_NAME% { <T> %TEST_CLASS_NAME%(int i) { new <@TA T>%TEST_CLASS_NAME%(); }" +
+ " <T> %TEST_CLASS_NAME%() { <@TB String>this(0); } }";
+ }
+
+ @TADescription(annotation = "TA", type = CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 0, offset = 0)
+ public String generic2() {
+ return "class Super { <T> Super(int i) { } } " +
+ "class %TEST_CLASS_NAME% extends Super { <T> %TEST_CLASS_NAME%() { <@TA String>super(0); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 0, offset = 4)
+ @TADescription(annotation = "RTBs", type = CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 0, offset = 0)
+ public String genericRepeatableAnnotation1() {
+ return "class %TEST_CLASS_NAME% { <T> %TEST_CLASS_NAME%(int i) { new <@RTA @RTA T>%TEST_CLASS_NAME%(); }" +
+ " <T> %TEST_CLASS_NAME%() { <@RTB @RTB String>this(0); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 0, offset = 0)
+ public String genericRepeatableAnnotation2() {
+ return "class Super { <T> Super(int i) { } } " +
+ "class %TEST_CLASS_NAME% extends Super { <T> %TEST_CLASS_NAME%() { <@RTA @RTA String>super(0); } }";
+ }
+}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/Constructors.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/Constructors.java Fri Jun 06 16:08:46 2014 -0400
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 8026791
+ * @bug 8026791 8042451
* @summary Test population of reference info for constructor results
* @compile -g Driver.java ReferenceInfoUtil.java Constructors.java
* @run main Driver Constructors
@@ -33,52 +33,44 @@
public class Constructors {
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RETURN),
- @TADescription(annotation = "TB", type = METHOD_RETURN),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
- })
+ @TADescription(annotation = "TA", type = METHOD_RETURN)
+ @TADescription(annotation = "TB", type = METHOD_RETURN)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
public String regularClass() {
- return "class Test { @TA Test() {}" +
- " @TB Test(@TC int b) {} }";
+ return "class %TEST_CLASS_NAME% { @TA %TEST_CLASS_NAME%() {}" +
+ " @TB %TEST_CLASS_NAME%(@TC int b) {} }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RETURN, genericLocation = {1, 0}),
- @TADescription(annotation = "TB", type = METHOD_RETURN, genericLocation = {1, 0}),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
- })
- @TestClass("Test$Inner")
+ @TADescription(annotation = "TA", type = METHOD_RETURN, genericLocation = {1, 0})
+ @TADescription(annotation = "TB", type = METHOD_RETURN, genericLocation = {1, 0})
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TestClass("%TEST_CLASS_NAME%$Inner")
public String innerClass() {
- return "class Test { class Inner {" +
+ return "class %TEST_CLASS_NAME% { class Inner {" +
" @TA Inner() {}" +
" @TB Inner(@TC int b) {}" +
" } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RECEIVER),
- @TADescription(annotation = "TB", type = METHOD_RETURN, genericLocation = {1, 0}),
- @TADescription(annotation = "TC", type = METHOD_RECEIVER),
- @TADescription(annotation = "TD", type = METHOD_RETURN, genericLocation = {1, 0}),
- @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
- })
- @TestClass("Test$Inner")
+ @TADescription(annotation = "TA", type = METHOD_RECEIVER)
+ @TADescription(annotation = "TB", type = METHOD_RETURN, genericLocation = {1, 0})
+ @TADescription(annotation = "TC", type = METHOD_RECEIVER)
+ @TADescription(annotation = "TD", type = METHOD_RETURN, genericLocation = {1, 0})
+ @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TestClass("%TEST_CLASS_NAME%$Inner")
public String innerClass2() {
- return "class Test { class Inner {" +
- " @TB Inner(@TA Test Test.this) {}" +
- " @TD Inner(@TC Test Test.this, @TE int b) {}" +
+ return "class %TEST_CLASS_NAME% { class Inner {" +
+ " @TB Inner(@TA %TEST_CLASS_NAME% %TEST_CLASS_NAME%.this) {}" +
+ " @TD Inner(@TC %TEST_CLASS_NAME% %TEST_CLASS_NAME%.this, @TE int b) {}" +
" } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RECEIVER),
- @TADescription(annotation = "TB", type = METHOD_RECEIVER, genericLocation = {1, 0}),
- @TADescription(annotation = "TC", type = METHOD_RETURN, genericLocation = {1, 0, 1, 0}),
- @TADescription(annotation = "TD", type = METHOD_RECEIVER, genericLocation = {1, 0}),
- @TADescription(annotation = "TE", type = METHOD_RETURN, genericLocation = {1, 0, 1, 0}),
- @TADescription(annotation = "TF", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
- })
+ @TADescription(annotation = "TA", type = METHOD_RECEIVER)
+ @TADescription(annotation = "TB", type = METHOD_RECEIVER, genericLocation = {1, 0})
+ @TADescription(annotation = "TC", type = METHOD_RETURN, genericLocation = {1, 0, 1, 0})
+ @TADescription(annotation = "TD", type = METHOD_RECEIVER, genericLocation = {1, 0})
+ @TADescription(annotation = "TE", type = METHOD_RETURN, genericLocation = {1, 0, 1, 0})
+ @TADescription(annotation = "TF", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
@TestClass("Outer$Middle$Inner")
public String innerClass3() {
return "class Outer { class Middle { class Inner {" +
@@ -87,24 +79,49 @@
" } } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT,
- typeIndex = 0, offset = 4),
- @TADescription(annotation = "TB", type = CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT,
- typeIndex = 0, offset = 0)
- })
- public String generic1() {
- return "class Test { <T> Test(int i) { new <@TA T>Test(); }" +
- " <T> Test() { <@TB String>this(0); } }";
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN)
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN)
+ @TADescription(annotation = "RTCs", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ public String regularClassRepeatableAnnotation() {
+ return "class %TEST_CLASS_NAME% { @RTA @RTA %TEST_CLASS_NAME%() {}" +
+ " @RTB @RTB %TEST_CLASS_NAME%(@RTC @RTC int b) {} }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN, genericLocation = {1, 0})
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN, genericLocation = {1, 0})
+ @TADescription(annotation = "RTCs", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TestClass("%TEST_CLASS_NAME%$Inner")
+ public String innerClassRepeatableAnnotation() {
+ return "class %TEST_CLASS_NAME% { class Inner {" +
+ " @RTA @RTA Inner() {}" +
+ " @RTB @RTB Inner(@RTC @RTC int b) {}" +
+ " } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT,
- typeIndex = 0, offset = 0)
- })
- public String generic2() {
- return "class Super { <T> Super(int i) { } } " +
- "class Test extends Super { <T> Test() { <@TA String>super(0); } }";
+ @TADescription(annotation = "RTAs", type = METHOD_RECEIVER)
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN, genericLocation = {1, 0})
+ @TADescription(annotation = "RTCs", type = METHOD_RECEIVER)
+ @TADescription(annotation = "RTDs", type = METHOD_RETURN, genericLocation = {1, 0})
+ @TADescription(annotation = "RTEs", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TestClass("%TEST_CLASS_NAME%$Inner")
+ public String innerClassRepeatableAnnotation2() {
+ return "class %TEST_CLASS_NAME% { class Inner {" +
+ " @RTB @RTB Inner(@RTA @RTA %TEST_CLASS_NAME% %TEST_CLASS_NAME%.this) {}" +
+ " @RTD @RTD Inner(@RTC @RTC %TEST_CLASS_NAME% %TEST_CLASS_NAME%.this, @RTE @RTE int b) {}" +
+ " } }";
}
+ @TADescription(annotation = "RTAs", type = METHOD_RECEIVER)
+ @TADescription(annotation = "RTBs", type = METHOD_RECEIVER, genericLocation = {1, 0})
+ @TADescription(annotation = "RTCs", type = METHOD_RETURN, genericLocation = {1, 0, 1, 0})
+ @TADescription(annotation = "RTDs", type = METHOD_RECEIVER, genericLocation = {1, 0})
+ @TADescription(annotation = "RTEs", type = METHOD_RETURN, genericLocation = {1, 0, 1, 0})
+ @TADescription(annotation = "RTFs", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TestClass("Outer$Middle$Inner")
+ public String innerClassRepatableAnnotation3() {
+ return "class Outer { class Middle { class Inner {" +
+ " @RTC @RTC Inner(@RTA @RTA Outer. @RTB @RTB Middle Middle.this) {}" +
+ " @RTE @RTE Inner(@RTD @RTD Middle Outer.Middle.this, @RTF @RTF int b) {}" +
+ " } } }";
+ }
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/Driver.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/Driver.java Fri Jun 06 16:08:46 2014 -0400
@@ -40,51 +40,75 @@
import com.sun.tools.classfile.TypeAnnotation;
import com.sun.tools.classfile.TypeAnnotation.TargetType;
+import static java.lang.String.format;
+
public class Driver {
private static final PrintStream out = System.err;
+ private final Object testObject;
+
+ public Driver(Class<?> clazz) throws IllegalAccessException, InstantiationException {
+ testObject = clazz.newInstance();
+ }
+
public static void main(String[] args) throws Exception {
if (args.length == 0 || args.length > 1)
throw new IllegalArgumentException("Usage: java Driver <test-name>");
String name = args[0];
- Class<?> clazz = Class.forName(name);
- new Driver().runDriver(clazz.newInstance());
+ new Driver(Class.forName(name)).runDriver();
}
- String[][] extraParamsCombinations = new String[][] {
+ private final String[][] extraParamsCombinations = new String[][] {
new String[] { },
new String[] { "-g" },
};
- protected void runDriver(Object object) throws Exception {
+ private final String[] retentionPolicies = {RetentionPolicy.CLASS.toString(), RetentionPolicy.RUNTIME.toString()};
+
+ protected void runDriver() {
int passed = 0, failed = 0;
- Class<?> clazz = object.getClass();
+ Class<?> clazz = testObject.getClass();
out.println("Tests for " + clazz.getName());
// Find methods
for (Method method : clazz.getMethods()) {
- Map<String, TypeAnnotation.Position> expected = expectedOf(method);
- if (expected == null)
- continue;
- if (method.getReturnType() != String.class)
- throw new IllegalArgumentException("Test method needs to return a string: " + method);
- String testClass = testClassOf(method);
+ try {
+ Map<String, TypeAnnotation.Position> expected = expectedOf(method);
+ if (expected == null)
+ continue;
+ if (method.getReturnType() != String.class)
+ throw new IllegalArgumentException("Test method needs to return a string: " + method);
- for (String[] extraParams : extraParamsCombinations) {
- try {
- String compact = (String)method.invoke(object);
- String fullFile = wrap(compact);
- ClassFile cf = compileAndReturn(fullFile, testClass, extraParams);
- List<TypeAnnotation> actual = ReferenceInfoUtil.extendedAnnotationsOf(cf);
- ReferenceInfoUtil.compare(expected, actual, cf);
- out.println("PASSED: " + method.getName());
- ++passed;
- } catch (Throwable e) {
- out.println("FAILED: " + method.getName());
- out.println(" " + e.toString());
- ++failed;
+ String compact = (String) method.invoke(testObject);
+ for (String retentionPolicy : retentionPolicies) {
+ String testClassName = getTestClassName(method, retentionPolicy);
+ String testClass = testClassOf(method, testClassName);
+ String fullFile = wrap(compact, new HashMap<String, String>() {{
+ put("%RETENTION_POLICY%", retentionPolicy);
+ put("%TEST_CLASS_NAME%", testClassName);
+ }});
+ for (String[] extraParams : extraParamsCombinations) {
+ try {
+ ClassFile cf = compileAndReturn(fullFile, testClass, extraParams);
+ List<TypeAnnotation> actual = ReferenceInfoUtil.extendedAnnotationsOf(cf);
+ ReferenceInfoUtil.compare(expected, actual, cf);
+ out.format("PASSED: %s %s%n", testClassName, Arrays.toString(extraParams));
+ ++passed;
+ } catch (Throwable e) {
+ out.format("FAILED: %s %s%n", testClassName, Arrays.toString(extraParams));
+ out.println(fullFile);
+ out.println(" " + e.toString());
+ e.printStackTrace(out);
+ ++failed;
+ }
+ }
}
+ } catch (IllegalAccessException | InvocationTargetException e) {
+ out.println("FAILED: " + method.getName());
+ out.println(" " + e.toString());
+ e.printStackTrace(out);
+ ++failed;
}
}
@@ -106,7 +130,7 @@
return null;
Map<String, TypeAnnotation.Position> result =
- new HashMap<String, TypeAnnotation.Position>();
+ new HashMap<>();
if (ta != null)
result.putAll(expectedOf(ta));
@@ -149,33 +173,42 @@
}
private List<Integer> wrapIntArray(int[] ints) {
- List<Integer> list = new ArrayList<Integer>(ints.length);
+ List<Integer> list = new ArrayList<>(ints.length);
for (int i : ints)
list.add(i);
return list;
}
- private String testClassOf(Method m) {
+ private String getTestClassName(Method m, String retentionPolicy) {
+ return format("%s_%s_%s", testObject.getClass().getSimpleName(),
+ m.getName(), retentionPolicy);
+ }
+
+ private String testClassOf(Method m, String testClassName) {
TestClass tc = m.getAnnotation(TestClass.class);
if (tc != null) {
- return tc.value();
+ return tc.value().replace("%TEST_CLASS_NAME%", testClassName);
} else {
- return "Test";
+ return testClassName;
}
}
private ClassFile compileAndReturn(String fullFile, String testClass, String... extraParams) throws Exception {
- File source = writeTestFile(fullFile);
- File clazzFile = compileTestFile(source, testClass);
+ File source = writeTestFile(fullFile, testClass);
+ File clazzFile = compileTestFile(source, testClass, extraParams);
return ClassFile.read(clazzFile);
}
- protected File writeTestFile(String fullFile) throws IOException {
- File f = new File("Test.java");
- PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(f)));
- out.println(fullFile);
- out.close();
- return f;
+ protected File writeTestFile(String fullFile, String testClass) throws IOException {
+ File f = new File(getClassDir(), format("%s.java", testClass));
+ try (PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(f)))) {
+ out.println(fullFile);
+ return f;
+ }
+ }
+
+ private String getClassDir() {
+ return System.getProperty("test.classes", Driver.class.getResource(".").getPath());
}
protected File compileTestFile(File f, String testClass, String... extraParams) {
@@ -185,20 +218,15 @@
int rc = com.sun.tools.javac.Main.compile(options.toArray(new String[options.size()]));
if (rc != 0)
throw new Error("compilation failed. rc=" + rc);
- String path;
- if (f.getParent() != null) {
- path = f.getParent();
- } else {
- path = "";
- }
-
- return new File(path + testClass + ".class");
+ String path = f.getParent() != null ? f.getParent() : "";
+ return new File(path, format("%s.class", testClass));
}
- private String wrap(String compact) {
+ private String wrap(String compact, Map<String, String> replacements) {
StringBuilder sb = new StringBuilder();
// Automatically import java.util
+ sb.append("\nimport java.io.*;");
sb.append("\nimport java.util.*;");
sb.append("\nimport java.lang.annotation.*;");
@@ -208,7 +236,7 @@
&& !compact.contains("interface")
&& !compact.contains("enum");
if (isSnippet)
- sb.append("class Test {\n");
+ sb.append("class %TEST_CLASS_NAME% {\n");
sb.append(compact);
sb.append("\n");
@@ -224,41 +252,102 @@
}
// create A ... F annotation declarations
- sb.append("\n@interface A {}");
- sb.append("\n@interface B {}");
- sb.append("\n@interface C {}");
- sb.append("\n@interface D {}");
- sb.append("\n@interface E {}");
- sb.append("\n@interface F {}");
+ sb.append("\n@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface A {}");
+ sb.append("\n@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface B {}");
+ sb.append("\n@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface C {}");
+ sb.append("\n@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface D {}");
+ sb.append("\n@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface E {}");
+ sb.append("\n@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface F {}");
// create TA ... TF proper type annotations
sb.append("\n");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface TA {}");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface TB {}");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface TC {}");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface TD {}");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface TE {}");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface TF {}");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface TG {}");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface TH {}");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface TI {}");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface TJ {}");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface TK {}");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface TL {}");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface TM {}");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ " @Retention(RetentionPolicy.%RETENTION_POLICY%) @interface TA {}");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface TB {}");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface TC {}");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface TD {}");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface TE {}");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface TF {}");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface TG {}");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface TH {}");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface TI {}");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface TJ {}");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface TK {}");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface TL {}");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface TM {}");
- // create RTA, RTAs, RTB, RTBs for repeating type annotations
+ // create RT?, RT?s for repeating type annotations
sb.append("\n");
- sb.append("\n@Repeatable(RTAs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface RTA {}");
- sb.append("\n@Repeatable(RTBs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface RTB {}");
+ sb.append("\n@Repeatable(RTAs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTA {}");
+ sb.append("\n@Repeatable(RTBs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTB {}");
+ sb.append("\n@Repeatable(RTCs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTC {}");
+ sb.append("\n@Repeatable(RTDs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTD {}");
+ sb.append("\n@Repeatable(RTEs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTE {}");
+ sb.append("\n@Repeatable(RTFs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTF {}");
+ sb.append("\n@Repeatable(RTGs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTG {}");
+ sb.append("\n@Repeatable(RTHs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTH {}");
+ sb.append("\n@Repeatable(RTIs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTI {}");
+ sb.append("\n@Repeatable(RTJs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTJ {}");
+ sb.append("\n@Repeatable(RTKs.class) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTK {}");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface RTAs { RTA[] value(); }");
- sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @interface RTBs { RTB[] value(); }");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTAs { RTA[] value(); }");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTBs { RTB[] value(); }");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTCs { RTC[] value(); }");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTDs { RTD[] value(); }");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTEs { RTE[] value(); }");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTFs { RTF[] value(); }");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTGs { RTG[] value(); }");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTHs { RTH[] value(); }");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTIs { RTI[] value(); }");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTJs { RTJ[] value(); }");
+ sb.append("\n@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})" +
+ "@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface RTKs { RTK[] value(); }");
- sb.append("\n@Target(value={ElementType.TYPE,ElementType.FIELD,ElementType.METHOD,ElementType.PARAMETER,ElementType.CONSTRUCTOR,ElementType.LOCAL_VARIABLE})");
- sb.append("\n@interface Decl {}");
+ sb.append("\n@Target(value={ElementType.TYPE,ElementType.FIELD,ElementType.METHOD," +
+ "ElementType.PARAMETER,ElementType.CONSTRUCTOR,ElementType.LOCAL_VARIABLE})");
+ sb.append("\n@Retention(RetentionPolicy.%RETENTION_POLICY%) @interface Decl {}");
- return sb.toString();
+ return replaceAll(sb.toString(), replacements);
+ }
+
+ private String replaceAll(String src, Map<String, String> replacements) {
+ for (Map.Entry<String, String> entry : replacements.entrySet()) {
+ src = src.replace(entry.getKey(), entry.getValue());
+ }
+ return src;
}
public static final int NOT_SET = -888;
@@ -267,6 +356,7 @@
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
+@Repeatable(TADescriptions.class)
@interface TADescription {
String annotation();
@@ -296,5 +386,5 @@
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface TestClass {
- String value() default "Test";
+ String value();
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/ExceptionParameters.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/ExceptionParameters.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,7 +25,7 @@
/*
* @test
- * @bug 8028576
+ * @bug 8028576 8042451
* @summary Test population of reference info for exception parameters
* @author Werner Dietl
* @compile -g Driver.java ReferenceInfoUtil.java ExceptionParameters.java
@@ -43,11 +43,9 @@
return "void finalException() { try { new Object(); } catch(final @TA Exception e) { } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = EXCEPTION_PARAMETER, exceptionIndex = 0),
- @TADescription(annotation = "TB", type = EXCEPTION_PARAMETER, exceptionIndex = 1),
- @TADescription(annotation = "TC", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
- })
+ @TADescription(annotation = "TA", type = EXCEPTION_PARAMETER, exceptionIndex = 0)
+ @TADescription(annotation = "TB", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
+ @TADescription(annotation = "TC", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
public String multipleExceptions1() {
return "void multipleExceptions() { " +
"try { new Object(); } catch(@TA Exception e) { }" +
@@ -56,11 +54,9 @@
" }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = EXCEPTION_PARAMETER, exceptionIndex = 0),
- @TADescription(annotation = "TB", type = EXCEPTION_PARAMETER, exceptionIndex = 1),
- @TADescription(annotation = "TC", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
- })
+ @TADescription(annotation = "TA", type = EXCEPTION_PARAMETER, exceptionIndex = 0)
+ @TADescription(annotation = "TB", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
+ @TADescription(annotation = "TC", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
public String multipleExceptions2() {
return "void multipleExceptions() { " +
" try { new Object(); " +
@@ -71,11 +67,9 @@
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = EXCEPTION_PARAMETER, exceptionIndex = 0),
- @TADescription(annotation = "TB", type = EXCEPTION_PARAMETER, exceptionIndex = 1),
- @TADescription(annotation = "TC", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
- })
+ @TADescription(annotation = "TA", type = EXCEPTION_PARAMETER, exceptionIndex = 0)
+ @TADescription(annotation = "TB", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
+ @TADescription(annotation = "TC", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
public String multipleExceptions3() {
return "void multipleExceptions() { " +
" try { new Object(); " +
@@ -87,4 +81,48 @@
" }" +
"}";
}
+
+ @TADescription(annotation = "RTAs", type = EXCEPTION_PARAMETER, exceptionIndex = 0)
+ public String exceptionRepeatableAnnoation() {
+ return "void exception() { try { new Object(); } catch(@RTA @RTA Exception e) { } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = EXCEPTION_PARAMETER, exceptionIndex = 0)
+ @TADescription(annotation = "RTBs", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
+ @TADescription(annotation = "RTCs", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
+ public String multipleExceptionsRepeatableAnnotation1() {
+ return "void multipleExceptions() { " +
+ "try { new Object(); } catch(@RTA @RTA Exception e) { }" +
+ "try { new Object(); } catch(@RTB @RTB Exception e) { }" +
+ "try { new Object(); } catch(@RTC @RTC Exception e) { }" +
+ " }";
+ }
+
+ @TADescription(annotation = "RTAs", type = EXCEPTION_PARAMETER, exceptionIndex = 0)
+ @TADescription(annotation = "RTBs", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
+ @TADescription(annotation = "RTCs", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
+ public String multipleExceptionsRepeatableAnnotation2() {
+ return "void multipleExceptions() { " +
+ " try { new Object(); " +
+ " try { new Object(); " +
+ " try { new Object(); } catch(@RTA @RTA Exception e) { }" +
+ " } catch(@RTB @RTB Exception e) { }" +
+ " } catch(@RTC @RTC Exception e) { }" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = EXCEPTION_PARAMETER, exceptionIndex = 0)
+ @TADescription(annotation = "RTBs", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
+ @TADescription(annotation = "RTCs", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
+ public String multipleExceptionsRepeatableAnnotation3() {
+ return "void multipleExceptions() { " +
+ " try { new Object(); " +
+ " } catch(@RTA @RTA Exception e1) { "+
+ " try { new Object(); " +
+ " } catch(@RTB @RTB Exception e2) {" +
+ " try { new Object(); } catch(@RTC @RTC Exception e3) { }" +
+ " }" +
+ " }" +
+ "}";
+ }
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/Fields.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/Fields.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,6 +25,7 @@
/*
* @test
+ * @bug 8042451
* @summary Test population of reference info for field
* @compile -g Driver.java ReferenceInfoUtil.java Fields.java
* @run main Driver Fields
@@ -41,37 +42,31 @@
return "@TA Object test;";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = FIELD),
- @TADescription(annotation = "TB", type = FIELD,
- genericLocation = { 3, 0 }),
- @TADescription(annotation = "TC", type = FIELD,
- genericLocation = { 3, 1 }),
- @TADescription(annotation = "TD", type = FIELD,
- genericLocation = { 3, 1, 3, 0 })
- })
+ @TADescription(annotation = "TA", type = FIELD)
+ @TADescription(annotation = "TB", type = FIELD,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "TC", type = FIELD,
+ genericLocation = { 3, 1 })
+ @TADescription(annotation = "TD", type = FIELD,
+ genericLocation = { 3, 1, 3, 0 })
public String fieldAsParametrized() {
return "@TA Map<@TB String, @TC List<@TD String>> test;";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = FIELD),
- @TADescription(annotation = "TB", type = FIELD,
- genericLocation = { 0, 0 }),
- @TADescription(annotation = "TC", type = FIELD,
- genericLocation = { 0, 0, 0, 0 })
- })
+ @TADescription(annotation = "TA", type = FIELD)
+ @TADescription(annotation = "TB", type = FIELD,
+ genericLocation = { 0, 0 })
+ @TADescription(annotation = "TC", type = FIELD,
+ genericLocation = { 0, 0, 0, 0 })
public String fieldAsArray() {
return "@TC String @TA [] @TB [] test;";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = FIELD),
- @TADescription(annotation = "TB", type = FIELD,
- genericLocation = { 0, 0 }),
- @TADescription(annotation = "TC", type = FIELD,
- genericLocation = { 0, 0, 0, 0 })
- })
+ @TADescription(annotation = "TA", type = FIELD)
+ @TADescription(annotation = "TB", type = FIELD,
+ genericLocation = { 0, 0 })
+ @TADescription(annotation = "TC", type = FIELD,
+ genericLocation = { 0, 0, 0, 0 })
public String fieldAsArrayOld() {
return "@TC String test @TA [] @TB [];";
}
@@ -88,39 +83,108 @@
// Smoke tests
@TADescription(annotation = "TA", type = FIELD)
- public String interfacefieldAsObject() {
- return "interface Test { @TA String test = null; }";
+ public String interfaceFieldAsObject() {
+ return "interface %TEST_CLASS_NAME% { @TA String test = null; }";
+ }
+
+ @TADescription(annotation = "TA", type = FIELD)
+ public String abstractFieldAsObject() {
+ return "abstract class %TEST_CLASS_NAME% { @TA String test; }";
}
@TADescription(annotation = "TA", type = FIELD)
- public String abstractfieldAsObject() {
- return "abstract class Test { @TA String test; }";
- }
-
- @TADescriptions({
- @TADescription(annotation = "TA", type = FIELD),
- @TADescription(annotation = "TB", type = FIELD,
- genericLocation = { 3, 0 }),
- @TADescription(annotation = "TC", type = FIELD,
- genericLocation = { 3, 1 }),
- @TADescription(annotation = "TD", type = FIELD,
- genericLocation = { 3, 1, 3, 0 })
- })
- public String interfacefieldAsParametrized() {
- return "interface Test { @TA Map<@TB String, @TC List<@TD String>> test = null; }";
+ @TADescription(annotation = "TB", type = FIELD,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "TC", type = FIELD,
+ genericLocation = { 3, 1 })
+ @TADescription(annotation = "TD", type = FIELD,
+ genericLocation = { 3, 1, 3, 0 })
+ public String interfaceFieldAsParametrized() {
+ return "interface %TEST_CLASS_NAME% { @TA Map<@TB String, @TC List<@TD String>> test = null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = FIELD),
- @TADescription(annotation = "TB", type = FIELD,
- genericLocation = { 3, 0 }),
- @TADescription(annotation = "TC", type = FIELD,
- genericLocation = { 3, 1 }),
- @TADescription(annotation = "TD", type = FIELD,
- genericLocation = { 3, 1, 3, 0 })
- })
+ @TADescription(annotation = "TA", type = FIELD)
+ @TADescription(annotation = "TB", type = FIELD,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "TC", type = FIELD,
+ genericLocation = { 3, 1 })
+ @TADescription(annotation = "TD", type = FIELD,
+ genericLocation = { 3, 1, 3, 0 })
public String staticFieldAsParametrized() {
return "static @TA Map<@TB String, @TC List<@TD String>> test;";
}
+
+ @TADescription(annotation = "RTAs", type = FIELD)
+ public String fieldAsPrimitiveRepeatableAnnotation() {
+ return "@RTA @RTA int test;";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD)
+ public String fieldAsObjectRepeatableAnnotation() {
+ return "@RTA @RTA Object test;";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD)
+ @TADescription(annotation = "RTBs", type = FIELD,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "RTCs", type = FIELD,
+ genericLocation = { 3, 1 })
+ @TADescription(annotation = "RTDs", type = FIELD,
+ genericLocation = { 3, 1, 3, 0 })
+ public String fieldAsParametrizedRepeatableAnnotation() {
+ return "@RTA @RTA Map<@RTB @RTB String, @RTC @RTC List<@RTD @RTD String>> test;";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD)
+ @TADescription(annotation = "RTBs", type = FIELD,
+ genericLocation = { 0, 0 })
+ @TADescription(annotation = "RTCs", type = FIELD,
+ genericLocation = { 0, 0, 0, 0 })
+ public String fieldAsArrayRepeatableAnnotation() {
+ return "@RTC @RTC String @RTA @RTA [] @RTB @RTB [] test;";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD)
+ @TADescription(annotation = "RTBs", type = FIELD,
+ genericLocation = { 0, 0 })
+ @TADescription(annotation = "RTCs", type = FIELD,
+ genericLocation = { 0, 0, 0, 0 })
+ public String fieldAsArrayOldRepeatableAnnotation() {
+ return "@RTC @RTC String test @RTA @RTA [] @RTB @RTB [];";
+ }
+
+ // Smoke tests
+ @TADescription(annotation = "RTAs", type = FIELD)
+ public String interfaceFieldAsObjectRepeatableAnnotation() {
+ return "interface %TEST_CLASS_NAME% { @RTA @RTA String test = null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD)
+ public String abstractFieldAsObjectRepeatableAnnotation() {
+ return "abstract class %TEST_CLASS_NAME% { @RTA @RTA String test; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD)
+ @TADescription(annotation = "RTBs", type = FIELD,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "RTCs", type = FIELD,
+ genericLocation = { 3, 1 })
+ @TADescription(annotation = "RTDs", type = FIELD,
+ genericLocation = { 3, 1, 3, 0 })
+ public String interfaceFieldAsParametrizedRepeatableAnnotation() {
+ return "interface %TEST_CLASS_NAME% { @RTA @RTA Map<@RTB @RTB String, @RTC @RTC List<@RTD @RTD String>> test = null; }";
+ }
+
+
+ @TADescription(annotation = "RTAs", type = FIELD)
+ @TADescription(annotation = "RTBs", type = FIELD,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "RTCs", type = FIELD,
+ genericLocation = { 3, 1 })
+ @TADescription(annotation = "RTDs", type = FIELD,
+ genericLocation = { 3, 1, 3, 0 })
+ public String staticFieldAsParametrizedRepeatableAnnotation() {
+ return "static @RTA @RTA Map<@RTB @RTB String, @RTC @RTC List<@RTD @RTD String>> test;";
+ }
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/FromSpecification.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/FromSpecification.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,98 +25,89 @@
/*
* @test
+ * @bug 8042451
* @summary Test that the examples from the manual are stored as expected
* @compile -g Driver.java ReferenceInfoUtil.java FromSpecification.java
* @run main Driver FromSpecification
*/
public class FromSpecification {
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0}, paramIndex = 0),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 2, 0}, paramIndex = 0),
- @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 1}, paramIndex = 0),
- @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER,
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 2, 0}, paramIndex = 0)
+ @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 1}, paramIndex = 0)
+ @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER,
genericLocation = {3, 1, 3, 0}, paramIndex = 0)
- })
public String testSpec1() {
return "void test(@TA Map<@TB ? extends @TC String, @TD List<@TE Object>> a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TF", type = METHOD_FORMAL_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TG", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {0, 0}, paramIndex = 0),
- @TADescription(annotation = "TH", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {0, 0, 0, 0}, paramIndex = 0),
- @TADescription(annotation = "TI", type = METHOD_FORMAL_PARAMETER,
+ @TADescription(annotation = "TF", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TG", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0}, paramIndex = 0)
+ @TADescription(annotation = "TH", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "TI", type = METHOD_FORMAL_PARAMETER,
genericLocation = {0, 0, 0, 0, 0, 0}, paramIndex = 0)
- })
public String testSpec2() {
return "void test(@TI String @TF [] @TG [] @TH [] a) { }";
}
// Note first "1, 0" for top-level class Test.
- @TADescriptions({
- @TADescription(annotation = "TJ", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {1, 0, 1, 0, 1, 0, 1, 0}, paramIndex = 0),
- @TADescription(annotation = "TK", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {1, 0, 1, 0, 1, 0}, paramIndex = 0),
- @TADescription(annotation = "TL", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {1, 0, 1, 0}, paramIndex = 0),
- @TADescription(annotation = "TM", type = METHOD_FORMAL_PARAMETER,
+ @TADescription(annotation = "TJ", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {1, 0, 1, 0, 1, 0, 1, 0}, paramIndex = 0)
+ @TADescription(annotation = "TK", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {1, 0, 1, 0, 1, 0}, paramIndex = 0)
+ @TADescription(annotation = "TL", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {1, 0, 1, 0}, paramIndex = 0)
+ @TADescription(annotation = "TM", type = METHOD_FORMAL_PARAMETER,
genericLocation = {1, 0}, paramIndex = 0)
- })
public String testSpec3() {
- return "class Test { class O1 { class O2 { class O3 { class NestedStatic {} } } }" +
+ return "class %TEST_CLASS_NAME% { class O1 { class O2 { class O3 { class NestedStatic {} } } }" +
"void test(@TM O1.@TL O2.@TK O3.@TJ NestedStatic a) { } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0}, paramIndex = 0),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 3, 0}, paramIndex = 0),
- @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 3, 0, 0, 0}, paramIndex = 0),
- @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 3, 0, 0, 0, 0, 0}, paramIndex = 0),
- @TADescription(annotation = "TF", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 3, 0, 0, 0, 0, 0, 0, 0}, paramIndex = 0),
- @TADescription(annotation = "TG", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 1}, paramIndex = 0),
- @TADescription(annotation = "TH", type = METHOD_FORMAL_PARAMETER,
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 3, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 3, 0, 0, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "TF", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 3, 0, 0, 0, 0, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "TG", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 1}, paramIndex = 0)
+ @TADescription(annotation = "TH", type = METHOD_FORMAL_PARAMETER,
genericLocation = {3, 1, 3, 0}, paramIndex = 0)
- })
public String testSpec4() {
return "void test(@TA Map<@TB Comparable<@TF Object @TC [] @TD [] @TE []>, @TG List<@TH String>> a) { }";
}
// Note first "1, 0" for top-level class Test.
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {1, 0, 1, 0, 1, 0, 1, 0}, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {1, 0, 1, 0, 1, 0, 1, 0, 3, 0}, paramIndex = 0),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {1, 0, 1, 0, 1, 0, 1, 0, 3, 1}, paramIndex = 0),
- @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {1, 0, 1, 0, 1, 0}, paramIndex = 0),
- @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {1, 0, 1, 0}, paramIndex = 0),
- @TADescription(annotation = "TF", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {1, 0, 1, 0, 3, 0}, paramIndex = 0),
- @TADescription(annotation = "TG", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {1, 0, 1, 0, 3, 1}, paramIndex = 0),
- @TADescription(annotation = "TH", type = METHOD_FORMAL_PARAMETER,
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {1, 0, 1, 0, 1, 0, 1, 0}, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {1, 0, 1, 0, 1, 0, 1, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {1, 0, 1, 0, 1, 0, 1, 0, 3, 1}, paramIndex = 0)
+ @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {1, 0, 1, 0, 1, 0}, paramIndex = 0)
+ @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {1, 0, 1, 0}, paramIndex = 0)
+ @TADescription(annotation = "TF", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {1, 0, 1, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TG", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {1, 0, 1, 0, 3, 1}, paramIndex = 0)
+ @TADescription(annotation = "TH", type = METHOD_FORMAL_PARAMETER,
genericLocation = {1, 0}, paramIndex = 0)
- })
public String testSpec5() {
- return "class Test { class O1 { class O2<A, B> { class O3 { class Nested<X, Y> {} } } }" +
+ return "class %TEST_CLASS_NAME% { class O1 { class O2<A, B> { class O3 { class Nested<X, Y> {} } } }" +
"void test(@TH O1.@TE O2<@TF String, @TG String>.@TD O3.@TA Nested<@TB String, @TC String> a) { } }";
}
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/Initializers.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/Initializers.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,7 +25,7 @@
/*
* @test
- * @bug 8013852
+ * @bug 8013852 8042451
* @summary Test population of reference info for instance and class initializers
* @author Werner Dietl
* @compile -g Driver.java ReferenceInfoUtil.java Initializers.java
@@ -33,63 +33,98 @@
*/
public class Initializers {
- @TADescriptions({
- @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = NEW,
+ @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = NEW,
genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
- public String instanceInit1() {
- return "class Test { { Object o = new @TA ArrayList<@TB String>(); } }";
+ public String instanceInit1() {
+ return "class %TEST_CLASS_NAME% { { Object o = new @TA ArrayList<@TB String>(); } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = NEW,
- genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TC", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TD", type = NEW,
+ @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = NEW,
genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
- public String instanceInit2() {
- return "class Test { Object f = new @TA ArrayList<@TB String>(); " +
+ @TADescription(annotation = "TC", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TD", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String instanceInit2() {
+ return "class %TEST_CLASS_NAME% { Object f = new @TA ArrayList<@TB String>(); " +
" { Object o = new @TC ArrayList<@TD String>(); } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = NEW,
+ @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = NEW,
genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
- public String staticInit1() {
- return "class Test { static { Object o = new @TA ArrayList<@TB String>(); } }";
+ public String staticInit1() {
+ return "class %TEST_CLASS_NAME% { static { Object o = new @TA ArrayList<@TB String>(); } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = NEW,
- genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TC", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TD", type = NEW,
- genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TE", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TF", type = NEW,
+ @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TC", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TD", type = NEW,
genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
- public String staticInit2() {
- return "class Test { Object f = new @TA ArrayList<@TB String>(); " +
+ @TADescription(annotation = "TE", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TF", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String staticInit2() {
+ return "class %TEST_CLASS_NAME% { Object f = new @TA ArrayList<@TB String>(); " +
" static Object g = new @TC ArrayList<@TD String>(); " +
" static { Object o = new @TE ArrayList<@TF String>(); } }";
}
- // TODO: test interaction with several constructors, especially non-initial constuctors.
+ @TADescription(annotation = "TA", type = CAST,
+ typeIndex = 0, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String lazyConstantCast1() {
+ return "class %TEST_CLASS_NAME% { public static final Object o = (@TA Object) null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String instanceInitRepeatableAnnotation1() {
+ return "class %TEST_CLASS_NAME% { { Object o = new @RTA @RTA ArrayList<@RTB @RTB String>(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTCs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTDs", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String instanceInitRepeatableAnnotation2() {
+ return "class %TEST_CLASS_NAME% { Object f = new @RTA @RTA ArrayList<@RTB @RTB String>(); " +
+ " { Object o = new @RTC @RTC ArrayList<@RTD @RTD String>(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String staticInitRepeatableAnnotation1() {
+ return "class %TEST_CLASS_NAME% { static { Object o = new @RTA @RTA ArrayList<@RTB @RTB String>(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTCs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTDs", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTEs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTFs", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String staticInitRepeatableAnnotation2() {
+ return "class %TEST_CLASS_NAME% { Object f = new @RTA @RTA ArrayList<@RTB @RTB String>(); " +
+ " static Object g = new @RTC @RTC ArrayList<@RTD @RTD String>(); " +
+ " static { Object o = new @RTE @RTE ArrayList<@RTF @RTF String>(); } }";
+ }
+
+ // TODO: test interaction with several constructors, especially non-initial constructors.
// I don't think this kind of test is possible here.
- @TADescriptions({
- @TADescription(annotation = "TA", type = CAST,
- typeIndex = 0, offset = ReferenceInfoUtil.IGNORE_VALUE),
- })
- public String lazyConstantCast1() {
- return "class Test { public static final Object o = (@TA Object) null; }";
+ @TADescription(annotation = "RTAs", type = CAST,
+ typeIndex = 0, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String lazyConstantCastRepeatableAnnotation1() {
+ return "class %TEST_CLASS_NAME% { public static final Object o = (@RTA @RTA Object) null; }";
}
-
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/Lambda.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/Lambda.java Fri Jun 06 16:08:46 2014 -0400
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 8008077 8029721
+ * @bug 8008077 8029721 8042451 8043974
* @summary Test population of reference info for lambda expressions
* javac crash for annotated parameter type of lambda in a field
* @compile -g Driver.java ReferenceInfoUtil.java Lambda.java
@@ -35,64 +35,58 @@
public class Lambda {
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_REFERENCE,
- offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = METHOD_REFERENCE,
+ @TADescription(annotation = "TA", type = METHOD_REFERENCE,
offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
+ @TADescription(annotation = "TB", type = METHOD_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE)
public String returnMethodRef1() {
return
"class Lambda {" +
" public String getName() { return \"Lambda!\"; }" +
"}" +
- "class Test {" +
+ "class %TEST_CLASS_NAME% {" +
" java.util.function.Function<Lambda, String> lambda() {" +
" return @TA @TB Lambda::getName;" +
" }" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_REFERENCE,
- offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = METHOD_REFERENCE,
+ @TADescription(annotation = "TA", type = METHOD_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = METHOD_REFERENCE,
offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = { 3, 0 }),
- @TADescription(annotation = "TC", type = METHOD_REFERENCE,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "TC", type = METHOD_REFERENCE,
offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = { 3, 0 }),
- @TADescription(annotation = "TD", type = METHOD_REFERENCE,
- offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = { 3, 1 }),
- @TADescription(annotation = "TE", type = METHOD_REFERENCE,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "TD", type = METHOD_REFERENCE,
offset = ReferenceInfoUtil.IGNORE_VALUE,
genericLocation = { 3, 1 })
- })
+ @TADescription(annotation = "TE", type = METHOD_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = { 3, 1})
public String returnMethodRef2() {
return
"class Lambda<S, T> {" +
" public String getName() { return \"Lambda!\"; }" +
"}" +
- "class Test {" +
+ "class %TEST_CLASS_NAME% {" +
" java.util.function.Function<Lambda<Integer, Float>, String> lambda() {" +
" return @TA Lambda<@TB @TC Integer, @TD @TE Float>::getName;" +
" }" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "CTA", type = METHOD_REFERENCE,
- offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "CTB", type = METHOD_REFERENCE,
+ @TADescription(annotation = "CTA", type = METHOD_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "CTB", type = METHOD_REFERENCE,
offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = { 3, 0 }),
- @TADescription(annotation = "CTC", type = METHOD_REFERENCE,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "CTC", type = METHOD_REFERENCE,
offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = { 3, 1 })
- })
+ genericLocation = { 3, 1 })
public String returnMethodRef3() {
return
"class Lambda<S, T> {" +
@@ -114,7 +108,7 @@
" String name();" +
"}" +
- "class Test {" +
+ "class %TEST_CLASS_NAME% {" +
" java.util.function.Function<Lambda<Integer, Float>, String> lambda() {" +
" return @CTA(\"x\") Lambda<@CTB(age = 5) Integer, @CTC(name = \"y\") Float>::getName;" +
" }" +
@@ -122,64 +116,58 @@
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CONSTRUCTOR_REFERENCE,
- offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = CONSTRUCTOR_REFERENCE,
+ @TADescription(annotation = "TA", type = CONSTRUCTOR_REFERENCE,
offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
+ @TADescription(annotation = "TB", type = CONSTRUCTOR_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE)
public String returnConstructorRef1() {
return
"class Lambda {" +
" Lambda() { }" +
"}" +
- "class Test {" +
+ "class %TEST_CLASS_NAME% {" +
" Runnable lambda() {" +
" return @TA @TB Lambda::new;" +
" }" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CONSTRUCTOR_REFERENCE,
- offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = CONSTRUCTOR_REFERENCE,
+ @TADescription(annotation = "TA", type = CONSTRUCTOR_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = CONSTRUCTOR_REFERENCE,
offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = { 3, 0 }),
- @TADescription(annotation = "TC", type = CONSTRUCTOR_REFERENCE,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "TC", type = CONSTRUCTOR_REFERENCE,
offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = { 3, 0 }),
- @TADescription(annotation = "TD", type = CONSTRUCTOR_REFERENCE,
- offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = { 3, 1 }),
- @TADescription(annotation = "TE", type = CONSTRUCTOR_REFERENCE,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "TD", type = CONSTRUCTOR_REFERENCE,
offset = ReferenceInfoUtil.IGNORE_VALUE,
genericLocation = { 3, 1 })
- })
+ @TADescription(annotation = "TE", type = CONSTRUCTOR_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = { 3, 1 })
public String returnConstructorRef2() {
return
"class Lambda<S, T> {" +
" Lambda() { }" +
"}" +
- "class Test {" +
+ "class %TEST_CLASS_NAME% {" +
" Runnable lambda() {" +
" return @TA Lambda<@TB @TC Integer, @TD @TE Float>::new;" +
" }" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "CTA", type = CONSTRUCTOR_REFERENCE,
- offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "CTB", type = CONSTRUCTOR_REFERENCE,
+ @TADescription(annotation = "CTA", type = CONSTRUCTOR_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "CTB", type = CONSTRUCTOR_REFERENCE,
offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = { 3, 0 }),
- @TADescription(annotation = "CTC", type = CONSTRUCTOR_REFERENCE,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "CTC", type = CONSTRUCTOR_REFERENCE,
offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = { 3, 1 })
- })
+ genericLocation = { 3, 1 })
public String returnConstructorRef3() {
return
"class Lambda<S, T> {" +
@@ -201,7 +189,7 @@
" String name();" +
"}" +
- "class Test {" +
+ "class %TEST_CLASS_NAME% {" +
" Runnable lambda() {" +
" return @CTA(\"x\") Lambda<@CTB(age = 5) Integer, @CTC(name = \"y\") Float>::new;" +
" }" +
@@ -209,14 +197,12 @@
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_REFERENCE_TYPE_ARGUMENT,
+ @TADescription(annotation = "TA", type = METHOD_REFERENCE_TYPE_ARGUMENT,
offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_REFERENCE_TYPE_ARGUMENT,
+ typeIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_REFERENCE_TYPE_ARGUMENT,
offset = ReferenceInfoUtil.IGNORE_VALUE,
typeIndex = 1)
- })
public String returnMethodRefTA1() {
return
"interface Lambda {" +
@@ -227,21 +213,19 @@
" public <S, T> void generic(S p1, T p2) {}" +
"}" +
- "class Test {" +
+ "class %TEST_CLASS_NAME% {" +
" Lambda lambda(LambdaImpl r) {" +
" return r::<@TA Object, @TB Object>generic;" +
" }" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT,
+ @TADescription(annotation = "TA", type = CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT,
offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0),
- @TADescription(annotation = "TB", type = CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT,
+ typeIndex = 0)
+ @TADescription(annotation = "TB", type = CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT,
offset = ReferenceInfoUtil.IGNORE_VALUE,
typeIndex = 1)
- })
public String returnConstructorRefTA2() {
return
"interface Lambda {" +
@@ -253,57 +237,222 @@
" public <S, T> void generic(S p1, T p2) {}" +
"}" +
- "class Test {" +
+ "class %TEST_CLASS_NAME% {" +
" Lambda lambda() {" +
" return LambdaImpl::<@TA Object, @TB Object>new;" +
" }" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
- paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- paramIndex = 1),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
- paramIndex = 1, genericLocation = { 3, 0 }),
- @TADescription(annotation = "TD", type = LOCAL_VARIABLE,
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 1)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 1, genericLocation = { 3, 0 })
+ @TADescription(annotation = "TD", type = LOCAL_VARIABLE,
lvarOffset = ReferenceInfoUtil.IGNORE_VALUE,
lvarLength = ReferenceInfoUtil.IGNORE_VALUE,
- lvarIndex = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TE", type = CAST,
+ lvarIndex = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TE", type = CAST,
offset = ReferenceInfoUtil.IGNORE_VALUE,
typeIndex = 0)
- })
public String returnLambdaExpr1() {
return
"interface LambdaInt {" +
" void lambda(Object p1, List<Object> p2);" +
"}" +
- "class Test {" +
+ "class %TEST_CLASS_NAME% {" +
" LambdaInt getLambda() {" +
" return (@TA Object x, @TB List<@TC Object> y) -> { @TD Object l = null; System.out.println((@TE Object) l); };" +
" }" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
- paramIndex = 0)})
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 0)
public String lambdaField1() {
return
- "class Test {" +
+ "class %TEST_CLASS_NAME% {" +
" java.util.function.IntUnaryOperator field = (@TA int y) -> 1;" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
- paramIndex = 0)})
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 0)
public String lambdaField2() {
return
- "class Test {" +
+ "class %TEST_CLASS_NAME% {" +
" static java.util.function.IntUnaryOperator field = (@TA int y) -> 1;" +
"}";
}
+
+ @TADescription(annotation = "RTAs", type = METHOD_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String returnMethodRefRepeatableAnnotation1() {
+ return
+ "class Lambda {" +
+ " public String getName() { return \"Lambda!\"; }" +
+ "}" +
+
+ "class %TEST_CLASS_NAME% {" +
+ " java.util.function.Function<Lambda, String> lambda() {" +
+ " return @RTA @RTA Lambda::getName;" +
+ " }" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = METHOD_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "RTCs", type = METHOD_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "RTDs", type = METHOD_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = { 3, 1 })
+ @TADescription(annotation = "RTEs", type = METHOD_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = { 3, 1})
+ public String returnMethodRefRepeatableAnnotation2() {
+ return
+ "class Lambda<S, T> {" +
+ " public String getName() { return \"Lambda!\"; }" +
+ "}" +
+
+ "class %TEST_CLASS_NAME% {" +
+ " java.util.function.Function<Lambda<Integer, Float>, String> lambda() {" +
+ " return @RTA @RTA Lambda<@RTB @RTB @RTC @RTC Integer, @RTD @RTD @RTE @RTE Float>::getName;" +
+ " }" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = CONSTRUCTOR_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String returnConstructorRefRepeatable1() {
+ return
+ "class Lambda {" +
+ " Lambda() { }" +
+ "}" +
+
+ "class %TEST_CLASS_NAME% {" +
+ " Runnable lambda() {" +
+ " return @RTA @RTA Lambda::new;" +
+ " }" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = CONSTRUCTOR_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = CONSTRUCTOR_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "RTCs", type = CONSTRUCTOR_REFERENCE,
+ offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = { 3, 1 })
+ public String returnConstructorRefRepeatable2() {
+ return
+ "class Lambda<S, T> {" +
+ " Lambda() { }" +
+ "}" +
+
+ "class %TEST_CLASS_NAME% {" +
+ " Runnable lambda() {" +
+ " return @RTA @RTA Lambda<@RTB @RTB Integer, @RTC @RTC Float>::new;" +
+ " }" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_REFERENCE_TYPE_ARGUMENT,
+ offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_REFERENCE_TYPE_ARGUMENT,
+ offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 1)
+ public String returnMethodRefTARepeatableAnnotation1() {
+ return
+ "interface Lambda {" +
+ " <S, T> void generic(S p1, T p2);" +
+ "}" +
+
+ "class LambdaImpl implements Lambda {" +
+ " public <S, T> void generic(S p1, T p2) {}" +
+ "}" +
+
+ "class %TEST_CLASS_NAME% {" +
+ " Lambda lambda(LambdaImpl r) {" +
+ " return r::<@RTA @RTA Object, @RTB @RTB Object>generic;" +
+ " }" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT,
+ offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "RTBs", type = CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT,
+ offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 1)
+ public String returnConstructorRefTARepeatableAnnotation2() {
+ return
+ "interface Lambda {" +
+ " <S, T> void generic(S p1, T p2);" +
+ "}" +
+
+ "class LambdaImpl implements Lambda {" +
+ " <S, T> LambdaImpl(S p1, T p2) {}" +
+ " public <S, T> void generic(S p1, T p2) {}" +
+ "}" +
+
+ "class %TEST_CLASS_NAME% {" +
+ " Lambda lambda() {" +
+ " return LambdaImpl::<@RTA @RTA Object, @RTB @RTB Object>new;" +
+ " }" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 1)
+ @TADescription(annotation = "RTCs", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 1, genericLocation = { 3, 0 })
+ @TADescription(annotation = "RTDs", type = LOCAL_VARIABLE,
+ lvarOffset = ReferenceInfoUtil.IGNORE_VALUE,
+ lvarLength = ReferenceInfoUtil.IGNORE_VALUE,
+ lvarIndex = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTEs", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String returnLambdaExprRepeatableAnnotation1() {
+ return
+ "interface LambdaInt {" +
+ " void lambda(Object p1, List<Object> p2);" +
+ "}" +
+ "class %TEST_CLASS_NAME% {" +
+ " LambdaInt getLambda() {" +
+ " return (@RTA @RTA Object x, @RTB @RTB List<@RTC @RTC Object> y) ->" +
+ " { @RTD @RTD Object l = null; System.out.println((@RTE @RTE Object) l); };" +
+ " }" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 0)
+ public String lambdaFieldRepeatableAnnotation1() {
+ return
+ "class %TEST_CLASS_NAME% {" +
+ " java.util.function.IntUnaryOperator field = (@RTA @RTA int y) -> 1;" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 0)
+ public String lambdaFieldRepeatableAnnotation2() {
+ return
+ "class %TEST_CLASS_NAME% {" +
+ " static java.util.function.IntUnaryOperator field = (@RTA @RTA int y) -> 1;" +
+ "}";
+ }
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodInvocationTypeArgument.java Fri Jun 06 16:08:46 2014 -0400
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8042451
+ * @summary Test population of reference info for method invocation type arguments
+ * @compile -g Driver.java ReferenceInfoUtil.java MethodInvocationTypeArgument.java
+ * @run main Driver MethodInvocationTypeArgument
+ */
+
+import static com.sun.tools.classfile.TypeAnnotation.TargetType.METHOD_INVOCATION_TYPE_ARGUMENT;
+import static java.lang.System.lineSeparator;
+
+public class MethodInvocationTypeArgument {
+
+ @TADescription(annotation = "TA", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 0, offset = 4)
+ @TADescription(annotation = "TB", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 1, offset = 4)
+ @TADescription(annotation = "TC", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 2, offset = 4)
+ @TADescription(annotation = "TD", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 0, offset = 24)
+ @TADescription(annotation = "TE", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 1, offset = 24)
+ @TADescription(annotation = "TF", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 2, offset = 24)
+ public String genericMethod() {
+ return
+ "public <T1, T2, T3> void function(T1 t1, T2 t2, T3 t3) {}" + lineSeparator() +
+ "{ new %TEST_CLASS_NAME%().<@TA Integer, @TB String, @TC Double>function(0, \"\", 0.0); " + lineSeparator() +
+ " this.<@TD Integer, @TE String, @TF Double>function(0, \"\", 0.0); }";
+ }
+
+ @TADescription(annotation = "TA", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 0, offset = 0)
+ @TADescription(annotation = "TB", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 1, offset = 0)
+ @TADescription(annotation = "TC", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 2, offset = 0)
+ public String genericStaticMethod() {
+ return
+ "public static <T1, T2, T3> void staticFunction(T1 t1, T2 t2, T3 t3) {}" + lineSeparator() +
+ "static { %TEST_CLASS_NAME%.<@TA Integer, @TB String, @TC Double>staticFunction(0, \"\", 0.0); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 0, offset = 4)
+ @TADescription(annotation = "RTBs", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 1, offset = 4)
+ @TADescription(annotation = "RTCs", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 0, offset = 20)
+ @TADescription(annotation = "RTDs", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 1, offset = 20)
+ public String genericMethodRepeatableAnnotation() {
+ return
+ "public <T1, T2> void function(T1 t1, T2 t2) {}" + lineSeparator() +
+ "{ new %TEST_CLASS_NAME%().<@RTA @RTA Integer, @RTB @RTB String>" +
+ "function(0, \"\"); " + lineSeparator() +
+ " this.<@RTC @RTC Integer, @RTD @RTD String>function(0, \"\"); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 0, offset = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 1, offset = 0)
+ @TADescription(annotation = "RTCs", type = METHOD_INVOCATION_TYPE_ARGUMENT,
+ typeIndex = 2, offset = 0)
+ public String genericStaticMethodRepeatableAnnotation() {
+ return
+ "public static <T1, T2, T3> void staticFunction(T1 t1, T2 t2, T3 t3) {}" + lineSeparator() +
+ "static { %TEST_CLASS_NAME%.<@RTA @RTA Integer, @RTB @RTB String, @RTC @RTC Double>staticFunction(0, \"\", 0.0); }";
+ }
+
+}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodParameters.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodParameters.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,6 +25,7 @@
/*
* @test
+ * @bug 8042451
* @summary Test population of reference info for method parameters
* @compile -g Driver.java ReferenceInfoUtil.java MethodParameters.java
* @run main Driver MethodParameters
@@ -41,97 +42,83 @@
return "void test(Object b, @TA Object a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 3, 0 }, paramIndex = 0),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 3, 1 }, paramIndex = 0),
- @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 0 }, paramIndex = 0)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1 }, paramIndex = 0)
+ @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
genericLocation = { 3, 1, 3, 0 }, paramIndex = 0)
- })
public String methodParamAsParametrized() {
return "void test(@TA Map<@TB String, @TC List<@TD String>> a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 3, 0 }, paramIndex = 0),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 3, 0, 2, 0 }, paramIndex = 0),
- @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 3, 1 }, paramIndex = 0),
- @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 3, 1, 3, 0 }, paramIndex = 0),
- @TADescription(annotation = "TF", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 3, 1, 3, 0, 2, 0 }, paramIndex = 0),
- @TADescription(annotation = "TG", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 3, 1, 3, 0, 2, 0, 3, 0 }, paramIndex = 0),
- @TADescription(annotation = "TH", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 3, 1, 3, 0, 2, 0, 3, 0, 2, 0 }, paramIndex = 0),
- @TADescription(annotation = "TI", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 3, 1, 3, 0, 2, 0, 3, 1 }, paramIndex = 0),
- @TADescription(annotation = "TJ", type = METHOD_FORMAL_PARAMETER,
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 0 }, paramIndex = 0)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 0, 2, 0 }, paramIndex = 0)
+ @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1 }, paramIndex = 0)
+ @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1, 3, 0 }, paramIndex = 0)
+ @TADescription(annotation = "TF", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1, 3, 0, 2, 0 }, paramIndex = 0)
+ @TADescription(annotation = "TG", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1, 3, 0, 2, 0, 3, 0 }, paramIndex = 0)
+ @TADescription(annotation = "TH", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1, 3, 0, 2, 0, 3, 0, 2, 0 }, paramIndex = 0)
+ @TADescription(annotation = "TI", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1, 3, 0, 2, 0, 3, 1 }, paramIndex = 0)
+ @TADescription(annotation = "TJ", type = METHOD_FORMAL_PARAMETER,
genericLocation = { 3, 1, 3, 0, 2, 0, 3, 1, 2, 0 }, paramIndex = 0)
- })
public String methodParamAsWildcard() {
return "void test(@TA Map<@TB ? extends @TC String," +
" @TD List<@TE ? extends @TF Map<@TG ? super @TH String," +
" @TI ? extends @TJ Object>>> a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 1),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 0, 0 }, paramIndex = 1),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0 }, paramIndex = 1)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
genericLocation = { 0, 0, 0, 0 }, paramIndex = 1)
- })
public String methodParamAsArray() {
return "void test(Object b, @TC String @TA [] @TB [] a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 0, 0 }, paramIndex = 1),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
genericLocation = { 0, 0 }, paramIndex = 1)
- })
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0 }, paramIndex = 1)
public String methodParamAsArray2() {
return "void test(Object b, @TA @TB String [] a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 0, 0 }, paramIndex = 1),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 0, 0 }, paramIndex = 1),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
genericLocation = { 0, 0 }, paramIndex = 1)
- })
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0 }, paramIndex = 1)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0 }, paramIndex = 1)
public String methodParamAsArray3() {
return "void test(Object b, @TA @TB @TC String [] a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 1),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 0, 0 }, paramIndex = 1),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0 }, paramIndex = 1)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
genericLocation = { 0, 0, 0, 0 }, paramIndex = 1)
- })
public String methodParamAsVararg() {
return "void test(Object b, @TC String @TA [] @TB ... a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 1),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 0, 0 }, paramIndex = 1),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0 }, paramIndex = 1)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
genericLocation = { 0, 0, 0, 0 }, paramIndex = 1)
- })
public String methodParamAsFQVararg() {
return "void test(Object b, java.lang.@TC String @TA [] @TB ... a) { }";
}
@@ -148,26 +135,125 @@
// Smoke tests
@TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
- public String interfacemethodParamAsObject() {
- return "interface Test { void test(@TA Object a); }";
+ public String interfaceMethodParamAsObject() {
+ return "interface %TEST_CLASS_NAME% { void test(@TA Object a); }";
}
@TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 2)
- public String abstractmethodParamAsObject() {
- return "abstract class Test { abstract void test(Object b, Object c, @TA Object a); }";
+ public String abstractMethodParamAsObject() {
+ return "abstract class %TEST_CLASS_NAME% { abstract void test(Object b, Object c, @TA Object a); }";
+ }
+
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 0 }, paramIndex = 0)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1 }, paramIndex = 0)
+ @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1, 3, 0 }, paramIndex = 0)
+ public String interfaceMethodParamAsParametrized() {
+ return "interface %TEST_CLASS_NAME% { void test(@TA Map<@TB String, @TC List<@TD String>> a); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ public String methodParamAsPrimitiveRepeatableAnnotation() {
+ return "void test(@RTA @RTA int a) { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER, paramIndex = 1)
+ public String methodParamAsObjectRepeatableAnnotation() {
+ return "void test(Object b, @RTA @RTA Object a) { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 0 }, paramIndex = 0)
+ @TADescription(annotation = "RTCs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1 }, paramIndex = 0)
+ @TADescription(annotation = "RTDs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1, 3, 0 }, paramIndex = 0)
+ public String methodParamAsParametrizedRepeatableAnnotation() {
+ return "void test(@RTA @RTA Map<@RTB @RTB String, @RTC @RTC List<@RTD @RTD String>> a) { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 0 }, paramIndex = 0)
+ @TADescription(annotation = "RTCs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 0, 2, 0 }, paramIndex = 0)
+ @TADescription(annotation = "RTDs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1 }, paramIndex = 0)
+ @TADescription(annotation = "RTEs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1, 3, 0 }, paramIndex = 0)
+ @TADescription(annotation = "RTFs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1, 3, 0, 2, 0 }, paramIndex = 0)
+ public String methodParamAsWildcardRepeatableAnnotation() {
+ return "void test(@RTA @RTA Map<@RTB @RTB ? extends @RTC @RTC String," +
+ " @RTD @RTD List<@RTE @RTE ? super @RTF @RTF String>> a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 3, 0 }, paramIndex = 0),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 3, 1 }, paramIndex = 0),
- @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
- genericLocation = { 3, 1, 3, 0 }, paramIndex = 0)
- })
- public String interfacemethodParamAsParametrized() {
- return "interface Test { void test(@TA Map<@TB String, @TC List<@TD String>> a); }";
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0 }, paramIndex = 1)
+ @TADescription(annotation = "RTCs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0, 0, 0 }, paramIndex = 1)
+ public String methodParamAsArrayRepeatableAnnotation() {
+ return "void test(Object b, @RTC @RTC String @RTA @RTA [] @RTB @RTB [] a) { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0 }, paramIndex = 1)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0 }, paramIndex = 1)
+ public String methodParamAsArrayRepeatableAnnotation2() {
+ return "void test(Object b, @RTA @RTA @RTB @RTB String [] a) { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0 }, paramIndex = 1)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0 }, paramIndex = 1)
+ public String methodParamAsArrayRepeatableAnnotation3() {
+ return "void test(Object b, @RTA @RTA @RTB @RTB String [] a) { }";
}
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0 }, paramIndex = 1)
+ @TADescription(annotation = "RTCs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0, 0, 0 }, paramIndex = 1)
+ public String methodParamAsVarargRepeatableAnnoattion() {
+ return "void test(Object b, @RTC @RTC String @RTA @RTA [] @RTB @RTB ... a) { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0 }, paramIndex = 1)
+ @TADescription(annotation = "RTCs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 0, 0, 0, 0 }, paramIndex = 1)
+ public String methodParamAsFQVarargRepeatableAnnotation() {
+ return "void test(Object b, java.lang.@RTC @RTC String @RTA @RTA [] @RTB @RTB ... a) { }";
+ }
+
+ // Smoke tests
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ public String interfaceMethodParamAsObjectRepeatableAnnotation() {
+ return "interface %TEST_CLASS_NAME% { void test(@RTA @RTA Object a); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER, paramIndex = 2)
+ public String abstractMethodParamAsObjectRepeatableAnnotation() {
+ return "abstract class %TEST_CLASS_NAME% { abstract void test(Object b, Object c, @RTA @RTA Object a); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 0 }, paramIndex = 0)
+ @TADescription(annotation = "RTCs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1 }, paramIndex = 0)
+ @TADescription(annotation = "RTDs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = { 3, 1, 3, 0 }, paramIndex = 0)
+ public String interfaceMethodParamAsParametrizedRepeatableAnnotation() {
+ return "interface %TEST_CLASS_NAME% { void test(@RTA @RTA Map<@RTB @RTB String, @RTC @RTC List<@RTD @RTD String>> a); }";
+ }
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodReceivers.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodReceivers.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,6 +25,7 @@
/*
* @test
+ * @bug 8042451
* @summary Test population of reference info for method receivers
* @compile -g Driver.java ReferenceInfoUtil.java MethodReceivers.java
* @run main Driver MethodReceivers
@@ -33,47 +34,87 @@
@TADescription(annotation = "TA", type = METHOD_RECEIVER)
public String regularMethod() {
- return "class Test { void test(@TA Test this) { } }";
+ return "class %TEST_CLASS_NAME% { void test(@TA %TEST_CLASS_NAME% this) { } }";
}
@TADescription(annotation = "TA", type = METHOD_RECEIVER)
public String abstractMethod() {
- return "abstract class Test { abstract void test(@TA Test this); }";
+ return "abstract class %TEST_CLASS_NAME% { abstract void test(@TA %TEST_CLASS_NAME% this); }";
}
@TADescription(annotation = "TA", type = METHOD_RECEIVER)
public String interfaceMethod() {
- return "interface Test { void test(@TA Test this); }";
+ return "interface %TEST_CLASS_NAME% { void test(@TA %TEST_CLASS_NAME% this); }";
}
@TADescription(annotation = "TA", type = METHOD_RECEIVER)
public String regularWithThrows() {
- return "class Test { void test(@TA Test this) throws Exception { } }";
+ return "class %TEST_CLASS_NAME% { void test(@TA %TEST_CLASS_NAME% this) throws Exception { } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RECEIVER,
- genericLocation = {}),
- @TADescription(annotation = "TB", type = METHOD_RECEIVER,
- genericLocation = {1, 0})
- })
- @TestClass("TestOuter$TestInner")
+ @TADescription(annotation = "TA", type = METHOD_RECEIVER,
+ genericLocation = {})
+ @TADescription(annotation = "TB", type = METHOD_RECEIVER,
+ genericLocation = {1, 0})
+ @TestClass("%TEST_CLASS_NAME%$TestInner")
public String nestedtypes1() {
- return "class TestOuter { class TestInner { void test(@TA TestOuter. @TB TestInner this) { } } }";
+ return "class %TEST_CLASS_NAME% { class TestInner { void test(@TA %TEST_CLASS_NAME%. @TB TestInner this) { } } }";
}
@TADescription(annotation = "TA", type = METHOD_RECEIVER,
genericLocation = {})
- @TestClass("TestOuter$TestInner")
+ @TestClass("%TEST_CLASS_NAME%$TestInner")
public String nestedtypes2() {
- return "class TestOuter { class TestInner { void test(@TA TestOuter.TestInner this) { } } }";
+ return "class %TEST_CLASS_NAME% { class TestInner { void test(@TA %TEST_CLASS_NAME%.TestInner this) { } } }";
}
@TADescription(annotation = "TB", type = METHOD_RECEIVER,
genericLocation = {1, 0})
- @TestClass("TestOuter$TestInner")
+ @TestClass("%TEST_CLASS_NAME%$TestInner")
public String nestedtypes3() {
- return "class TestOuter { class TestInner { void test(TestOuter. @TB TestInner this) { } } }";
+ return "class %TEST_CLASS_NAME% { class TestInner { void test(%TEST_CLASS_NAME%. @TB TestInner this) { } } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RECEIVER)
+ public String regularMethodRepeatableAnnotation() {
+ return "class %TEST_CLASS_NAME% { void test(@RTA @RTA %TEST_CLASS_NAME% this) { } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RECEIVER)
+ public String abstractMethodRepeatablaAnnotation() {
+ return "abstract class %TEST_CLASS_NAME% { abstract void test(@RTA @RTA %TEST_CLASS_NAME% this); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RECEIVER)
+ public String interfaceMethodRepeatableAnnotation() {
+ return "interface %TEST_CLASS_NAME% { void test(@RTA @RTA %TEST_CLASS_NAME% this); }";
}
+ @TADescription(annotation = "RTAs", type = METHOD_RECEIVER)
+ public String regularWithThrowsRepeatableAnnotation() {
+ return "class %TEST_CLASS_NAME% { void test(@RTA @RTA %TEST_CLASS_NAME% this) throws Exception { } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RECEIVER,
+ genericLocation = {})
+ @TADescription(annotation = "RTBs", type = METHOD_RECEIVER,
+ genericLocation = {1, 0})
+ @TestClass("%TEST_CLASS_NAME%$TestInner")
+ public String nestedtypesRepeatableAnnotation1() {
+ return "class %TEST_CLASS_NAME% { class TestInner { void test(@RTA @RTA %TEST_CLASS_NAME%. @RTB @RTB TestInner this) { } } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RECEIVER,
+ genericLocation = {})
+ @TestClass("%TEST_CLASS_NAME%$TestInner")
+ public String nestedtypesRepeatableAnnotation2() {
+ return "class %TEST_CLASS_NAME% { class TestInner { void test(@RTA @RTA %TEST_CLASS_NAME%.TestInner this) { } } }";
+ }
+
+ @TADescription(annotation = "RTBs", type = METHOD_RECEIVER,
+ genericLocation = {1, 0})
+ @TestClass("%TEST_CLASS_NAME%$TestInner")
+ public String nestedtypesRepeatableAnnotation3() {
+ return "class %TEST_CLASS_NAME% { class TestInner { void test(%TEST_CLASS_NAME%. @RTB @RTB TestInner this) { } } }";
+ }
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodReturns.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodReturns.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,6 +25,7 @@
/*
* @test
+ * @bug 8042451
* @summary Test population of reference info for method return
* @compile -g Driver.java ReferenceInfoUtil.java MethodReturns.java
* @run main Driver MethodReturns
@@ -42,37 +43,31 @@
return "@TA Object test() { return null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RETURN),
- @TADescription(annotation = "TB", type = METHOD_RETURN,
- genericLocation = { 3, 0 }),
- @TADescription(annotation = "TC", type = METHOD_RETURN,
- genericLocation = { 3, 1 }),
- @TADescription(annotation = "TD", type = METHOD_RETURN,
- genericLocation = { 3, 1, 3, 0 })
- })
+ @TADescription(annotation = "TA", type = METHOD_RETURN)
+ @TADescription(annotation = "TB", type = METHOD_RETURN,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "TC", type = METHOD_RETURN,
+ genericLocation = { 3, 1 })
+ @TADescription(annotation = "TD", type = METHOD_RETURN,
+ genericLocation = { 3, 1, 3, 0 })
public String methodReturnAsParametrized() {
return "@TA Map<@TB String, @TC List<@TD String>> test() { return null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RETURN),
- @TADescription(annotation = "TB", type = METHOD_RETURN,
- genericLocation = { 0, 0 }),
- @TADescription(annotation = "TC", type = METHOD_RETURN,
- genericLocation = { 0, 0, 0, 0 })
- })
+ @TADescription(annotation = "TA", type = METHOD_RETURN)
+ @TADescription(annotation = "TB", type = METHOD_RETURN,
+ genericLocation = { 0, 0 })
+ @TADescription(annotation = "TC", type = METHOD_RETURN,
+ genericLocation = { 0, 0, 0, 0 })
public String methodReturnAsArray() {
return "@TC String @TA [] @TB [] test() { return null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RETURN),
- @TADescription(annotation = "TB", type = METHOD_RETURN,
- genericLocation = { 0, 0 }),
- @TADescription(annotation = "TC", type = METHOD_RETURN,
- genericLocation = { 0, 0, 0, 0 })
- })
+ @TADescription(annotation = "TA", type = METHOD_RETURN)
+ @TADescription(annotation = "TB", type = METHOD_RETURN,
+ genericLocation = { 0, 0 })
+ @TADescription(annotation = "TC", type = METHOD_RETURN,
+ genericLocation = { 0, 0, 0, 0 })
public String methodReturnAsArrayOld() {
return "@TC String test() @TA [] @TB [] { return null; }";
}
@@ -90,97 +85,206 @@
// Smoke tests
@TADescription(annotation = "TA", type = METHOD_RETURN)
public String interfaceMethodReturnAsObject() {
- return "interface Test { @TA Object test(); }";
+ return "interface %TEST_CLASS_NAME% { @TA Object test(); }";
}
@TADescription(annotation = "TA", type = METHOD_RETURN)
public String abstractMethodReturnAsObject() {
- return "abstract class Test { abstract @TA Object test(); }";
+ return "abstract class %TEST_CLASS_NAME% { abstract @TA Object test(); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RETURN),
- @TADescription(annotation = "TB", type = METHOD_RETURN,
- genericLocation = { 3, 0 }),
- @TADescription(annotation = "TC", type = METHOD_RETURN,
- genericLocation = { 3, 1 }),
- @TADescription(annotation = "TD", type = METHOD_RETURN,
- genericLocation = { 3, 1, 3, 0 })
- })
+ @TADescription(annotation = "TA", type = METHOD_RETURN)
+ @TADescription(annotation = "TB", type = METHOD_RETURN,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "TC", type = METHOD_RETURN,
+ genericLocation = { 3, 1 })
+ @TADescription(annotation = "TD", type = METHOD_RETURN,
+ genericLocation = { 3, 1, 3, 0 })
public String interfaceMethodReturnAsParametrized() {
- return "interface Test { @TA Map<@TB String, @TC List<@TD String>> test(); }";
+ return "interface %TEST_CLASS_NAME% { @TA Map<@TB String, @TC List<@TD String>> test(); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RETURN,
- genericLocation = { 3, 0 }),
- @TADescription(annotation = "TB", type = METHOD_RETURN,
- genericLocation = { 3, 0, 2, 0 }),
- @TADescription(annotation = "TC", type = METHOD_RETURN,
- genericLocation = { 3, 0, 2, 0, 1, 0 }),
- @TADescription(annotation = "TD", type = METHOD_RETURN,
- genericLocation = { 3, 0, 2, 0, 1, 0, 3, 0 }),
- @TADescription(annotation = "TE", type = METHOD_RETURN,
- genericLocation = { 3, 0, 2, 0, 1, 0, 3, 1 }),
- @TADescription(annotation = "TF", type = METHOD_RETURN,
- genericLocation = { 3, 0, 2, 0, 1, 0, 3, 1, 2, 0 })
- })
+ @TADescription(annotation = "TA", type = METHOD_RETURN,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "TB", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0 })
+ @TADescription(annotation = "TC", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0 })
+ @TADescription(annotation = "TD", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0, 3, 0 })
+ @TADescription(annotation = "TE", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0, 3, 1 })
+ @TADescription(annotation = "TF", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0, 3, 1, 2, 0 })
public String methodReturnAsNestedWildcard() {
return "Set<@TA ? extends @TB GOuter<String, String>. @TC GInner<@TD String, @TE ? super @TF Object>> entrySet() { return null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RETURN,
- genericLocation = { 3, 0, 1, 0, 3, 0 }),
- @TADescription(annotation = "TB", type = METHOD_RETURN,
- genericLocation = { 3, 0, 1, 0, 3, 1 }),
- @TADescription(annotation = "TC", type = METHOD_RETURN,
- genericLocation = { 3, 0, 1, 0, 3, 1, 2, 0 })
- })
+ @TADescription(annotation = "TA", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 1, 0, 3, 0 })
+ @TADescription(annotation = "TB", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 1, 0, 3, 1 })
+ @TADescription(annotation = "TC", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 1, 0, 3, 1, 2, 0 })
public String methodReturnAsNestedWildcard2() {
return "class GOuter<X, Y> { class GInner<X, Y> {} } " +
- "class Test<K> { Set<GOuter<String, String>.GInner<@TA K, @TB ? extends @TC Object>> entrySet() { return null; } }";
+ "class %TEST_CLASS_NAME%<K> { Set<GOuter<String, String>.GInner<@TA K, @TB ? extends @TC Object>> entrySet() { return null; } }";
}
- @TADescriptions({
- @TADescription(annotation = "TB", type = METHOD_RETURN,
- genericLocation = { 3, 0, 2, 0 }),
- @TADescription(annotation = "TC", type = METHOD_RETURN,
- genericLocation = { 3, 0, 2, 0, 1, 0 }),
- })
+ @TADescription(annotation = "TB", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0 })
+ @TADescription(annotation = "TC", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0 })
public String methodReturnAsNestedWildcard3() {
return "Set<? extends @TB GOuter<String, String>. @TC GInner<String, Object>> entrySet() { return null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TC", type = METHOD_RETURN,
- genericLocation = { 3, 0, 2, 0, 1, 0 }),
- })
+ @TADescription(annotation = "TC", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0 })
public String methodReturnAsNestedWildcard4() {
return "Set<? extends GOuter<String, String>. @TC GInner<String, Object>> entrySet() { return null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TB", type = METHOD_RETURN,
- genericLocation = { 3, 0, 2, 0 }),
- @TADescription(annotation = "TC", type = METHOD_RETURN,
- genericLocation = { 3, 0, 2, 0, 1, 0 }),
- })
+ @TADescription(annotation = "TB", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0 })
+ @TADescription(annotation = "TC", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0 })
public String methodReturnAsNestedWildcard5() {
return "Set<? extends @TB Outer. @TC Inner> entrySet() { return null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RETURN,
- genericLocation = { 3, 0, 2, 0, 1, 0, 3, 0 }),
- @TADescription(annotation = "TB", type = METHOD_RETURN,
- genericLocation = { 3, 0, 2, 0, 1, 0, 3, 1 }),
- @TADescription(annotation = "TC", type = METHOD_RETURN,
- genericLocation = { 3, 0, 2, 0, 1, 0 }),
- })
+ @TADescription(annotation = "TA", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0, 3, 0 })
+ @TADescription(annotation = "TB", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0, 3, 1 })
+ @TADescription(annotation = "TC", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0 })
public String methodReturnAsNestedWildcard6() {
return "Set<? extends GOuter<String, String>. @TC GInner<@TA String, @TB Object>> entrySet() { return null; }";
}
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN)
+ public String methodReturnAsPrimitiveRepeatableAnnotation() {
+ return "@RTA @RTA int test() { return 0; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN)
+ public String methodReturnAsObjectRepeatableAnnotation() {
+ return "@RTA @RTA Object test() { return null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN)
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "RTCs", type = METHOD_RETURN,
+ genericLocation = { 3, 1 })
+ @TADescription(annotation = "RTDs", type = METHOD_RETURN,
+ genericLocation = { 3, 1, 3, 0 })
+ public String methodReturnAsParametrizedRepeatableAnnotation() {
+ return "@RTA @RTA Map<@RTB @RTB String, @RTC @RTC List<@RTD @RTD String>> test() { return null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN)
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN,
+ genericLocation = { 0, 0 })
+ @TADescription(annotation = "RTCs", type = METHOD_RETURN,
+ genericLocation = { 0, 0, 0, 0 })
+ public String methodReturnAsArrayRepeatableAnnotation() {
+ return "@RTC @RTC String @RTA @RTA [] @RTB @RTB [] test() { return null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN)
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN,
+ genericLocation = { 0, 0 })
+ @TADescription(annotation = "RTCs", type = METHOD_RETURN,
+ genericLocation = { 0, 0, 0, 0 })
+ public String methodReturnAsArrayOldRepeatableAnnotation() {
+ return "@RTC @RTC String test() @RTA @RTA [] @RTB @RTB [] { return null; }";
+ }
+
+ // Smoke tests
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN)
+ public String interfaceMethodReturnAsObjectRepeatableAnnotation() {
+ return "interface %TEST_CLASS_NAME% { @RTA @RTA Object test(); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN)
+ public String abstractMethodReturnAsObjectRepeatableAnnotation() {
+ return "abstract class %TEST_CLASS_NAME% { abstract @RTA @RTA Object test(); }";
+ }
+
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN)
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "RTCs", type = METHOD_RETURN,
+ genericLocation = { 3, 1 })
+ @TADescription(annotation = "RTDs", type = METHOD_RETURN,
+ genericLocation = { 3, 1, 3, 0 })
+ public String interfaceMethodReturnAsParametrizedRepeatableAnnotation() {
+ return "interface %TEST_CLASS_NAME% { @RTA @RTA Map<@RTB @RTB String, @RTC @RTC List<@RTD @RTD String>> test(); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN,
+ genericLocation = { 3, 0 })
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0 })
+ @TADescription(annotation = "RTCs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0 })
+ @TADescription(annotation = "RTDs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0, 3, 0 })
+ @TADescription(annotation = "RTEs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0, 3, 1 })
+ @TADescription(annotation = "RTFs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0, 3, 1, 2, 0 })
+ public String methodReturnAsNestedWildcardRepeatableAnnotation() {
+ return "Set<@RTA @RTA ? extends @RTB @RTB GOuter<String, String>. @RTC @RTC GInner<@RTD @RTD String," +
+ " @RTE @RTE ? super @RTF @RTF Object>> entrySet() { return null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 1, 0, 3, 0 })
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 1, 0, 3, 1 })
+ @TADescription(annotation = "RTCs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 1, 0, 3, 1, 2, 0 })
+ public String methodReturnAsNestedWildcardRepeatableAnnotation2() {
+ return "class GOuter<X, Y> { class GInner<X, Y> {} } " +
+ "class %TEST_CLASS_NAME%<K> { Set<GOuter<String, String>.GInner<@RTA @RTA K," +
+ " @RTB @RTB ? extends @RTC @RTC Object>> entrySet() { return null; } }";
+ }
+
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0 })
+ @TADescription(annotation = "RTCs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0 })
+ public String methodReturnAsNestedWildcardRepeatableAnnotation3() {
+ return "Set<? extends @RTB @RTB GOuter<String, String>. @RTC @RTC GInner<String, Object>> entrySet() { return null; }";
+ }
+
+ @TADescription(annotation = "RTCs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0 })
+ public String methodReturnAsNestedWildcardRepeatableAnnotation4() {
+ return "Set<? extends GOuter<String, String>. @RTC @RTC GInner<String, Object>> entrySet() { return null; }";
+ }
+
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0 })
+ @TADescription(annotation = "RTCs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0 })
+ public String methodReturnAsNestedWildcardRepeatableAnnotation5() {
+ return "Set<? extends @RTB @RTB Outer. @RTC @RTC Inner> entrySet() { return null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0, 3, 0 })
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0, 3, 1 })
+ @TADescription(annotation = "RTCs", type = METHOD_RETURN,
+ genericLocation = { 3, 0, 2, 0, 1, 0 })
+ public String methodReturnAsNestedWildcardRepeatableAnnotation6() {
+ return "Set<? extends GOuter<String, String>. @RTC @RTC GInner<@RTA @RTA String," +
+ " @RTB @RTB Object>> entrySet() { return null; }";
+ }
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodThrows.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodThrows.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,53 +25,46 @@
/*
* @test
+ * @bug 8042451
* @summary Test population of reference info for method exception clauses
* @compile -g Driver.java ReferenceInfoUtil.java MethodThrows.java
* @run main Driver MethodThrows
*/
public class MethodThrows {
- @TADescriptions({
- @TADescription(annotation = "TA", type = THROWS, typeIndex = 0),
- @TADescription(annotation = "TB", type = THROWS, typeIndex = 2)
- })
+ @TADescription(annotation = "TA", type = THROWS, typeIndex = 0)
+ @TADescription(annotation = "TB", type = THROWS, typeIndex = 2)
public String regularMethod() {
- return "class Test { void test() throws @TA RuntimeException, IllegalArgumentException, @TB Exception { } }";
+ return "class %TEST_CLASS_NAME% { void test() throws @TA RuntimeException, IllegalArgumentException, @TB Exception { } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = THROWS, typeIndex = 0),
- @TADescription(annotation = "TB", type = THROWS, typeIndex = 2)
- })
+ @TADescription(annotation = "TA", type = THROWS, typeIndex = 0)
+ @TADescription(annotation = "TB", type = THROWS, typeIndex = 2)
public String abstractMethod() {
- return "abstract class Test { abstract void test() throws @TA RuntimeException, IllegalArgumentException, @TB Exception; }";
+ return "abstract class %TEST_CLASS_NAME% { abstract void test() throws @TA RuntimeException, IllegalArgumentException, @TB Exception; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = THROWS, typeIndex = 0),
- @TADescription(annotation = "TB", type = THROWS, typeIndex = 2)
- })
+ @TADescription(annotation = "TA", type = THROWS, typeIndex = 0)
+ @TADescription(annotation = "TB", type = THROWS, typeIndex = 2)
public String interfaceMethod() {
- return "interface Test { void test() throws @TA RuntimeException, IllegalArgumentException, @TB Exception; }";
+ return "interface %TEST_CLASS_NAME% { void test() throws @TA RuntimeException, IllegalArgumentException, @TB Exception; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = THROWS, typeIndex = 0,
- genericLocation = {}),
- @TADescription(annotation = "TB", type = THROWS, typeIndex = 0,
- genericLocation = {1, 0}),
- @TADescription(annotation = "TC", type = THROWS, typeIndex = 0,
- genericLocation = {1, 0, 1, 0}),
- @TADescription(annotation = "TD", type = THROWS, typeIndex = 1,
- genericLocation = {}),
- @TADescription(annotation = "TE", type = THROWS, typeIndex = 1,
- genericLocation = {1, 0}),
- @TADescription(annotation = "TF", type = THROWS, typeIndex = 1,
- genericLocation = {1, 0, 1, 0})
- })
+ @TADescription(annotation = "TA", type = THROWS, typeIndex = 0,
+ genericLocation = {})
+ @TADescription(annotation = "TB", type = THROWS, typeIndex = 0,
+ genericLocation = {1, 0})
+ @TADescription(annotation = "TC", type = THROWS, typeIndex = 0,
+ genericLocation = {1, 0, 1, 0})
+ @TADescription(annotation = "TD", type = THROWS, typeIndex = 1,
+ genericLocation = {})
+ @TADescription(annotation = "TE", type = THROWS, typeIndex = 1,
+ genericLocation = {1, 0})
+ @TADescription(annotation = "TF", type = THROWS, typeIndex = 1,
+ genericLocation = {1, 0, 1, 0})
public String NestedTypes() {
return "class Outer { class Middle { class Inner1 extends Exception {}" +
" class Inner2 extends Exception{} } }" +
- "class Test { void test() throws @TA Outer.@TB Middle.@TC Inner1, @TD Outer.@TE Middle.@TF Inner2 { } }";
+ "class %TEST_CLASS_NAME% { void test() throws @TA Outer.@TB Middle.@TC Inner1, @TD Outer.@TE Middle.@TF Inner2 { } }";
}
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodTypeParam.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodTypeParam.java Fri Jun 06 16:08:46 2014 -0400
@@ -22,230 +22,387 @@
*/
import static com.sun.tools.classfile.TypeAnnotation.TargetType.*;
+import static java.lang.System.lineSeparator;
/*
* @test
+ * @bug 8042451
* @summary Test population of reference info for method type parameters
* @compile -g Driver.java ReferenceInfoUtil.java MethodTypeParam.java
* @run main Driver MethodTypeParam
*/
public class MethodTypeParam {
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER, paramIndex = 1),
- @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0),
- @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
- })
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
public String regularClass() {
return "<@TA K extends @TB Date, @TC V extends @TD Object & @TE Cloneable> void test() { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER, paramIndex = 1),
- @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
- })
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
public String regularClass2() {
return "<@TA K extends @TB Date, @TC V extends @TE Cloneable> void test() { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1}),
- @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1),
- @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0}),
- @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0}),
- @TADescription(annotation = "TF", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
- })
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
+ @TADescription(annotation = "TF", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
public String regularClassParameterized() {
return "<K extends @TA Map<String, @TB String>, V extends @TF Object & @TC List<@TD List<@TE Object>>> void test() { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER, paramIndex = 1),
- @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0),
- @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
- })
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
public String abstractClass() {
- return "abstract class Test { abstract <@TA K extends @TB Date, @TC V extends @TD Object & @TE Cloneable> void test(); }";
+ return "abstract class %TEST_CLASS_NAME% { abstract <@TA K extends @TB Date, @TC V extends @TD Object & @TE Cloneable> void test(); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1}),
- @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1),
- @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0}),
- @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0}),
- @TADescription(annotation = "TF", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0),
- @TADescription(annotation = "TG", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
- })
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
+ @TADescription(annotation = "TF", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "TG", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
public String abstractClassParameterized() {
- return "abstract class Test { abstract <K extends @TG Object & @TA Map<String, @TB String>, V extends @TF Object & @TC List<@TD List<@TE Object>>> void test(); }";
+ return "abstract class %TEST_CLASS_NAME% { abstract <K extends @TG Object & @TA Map<String, @TB String>, V extends @TF Object & @TC List<@TD List<@TE Object>>> void test(); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1}),
- @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1),
- @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0}),
- @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
- })
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
public String abstractClassParameterized2() {
- return "abstract class Test { abstract <K extends @TA Map<String, @TB String>, V extends @TC List<@TD List<@TE Object>>> void test(); }";
+ return "abstract class %TEST_CLASS_NAME% { abstract <K extends @TA Map<String, @TB String>, V extends @TC List<@TD List<@TE Object>>> void test(); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
- })
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
public String abstractClassParameterized3() {
- return "abstract class Test { abstract <K extends @TA List<String>, V extends @TB List<Object>> void test(); }";
+ return "abstract class %TEST_CLASS_NAME% { abstract <K extends @TA List<String>, V extends @TB List<Object>> void test(); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER, paramIndex = 1),
- @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0),
- @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
- })
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
public String regularInterface() {
- return "interface Test { <@TA K extends @TB Date, @TC V extends @TD Object & @TE Cloneable> void test(); }";
+ return "interface %TEST_CLASS_NAME% { <@TA K extends @TB Date, @TC V extends @TD Object & @TE Cloneable> void test(); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1}),
- @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1),
- @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0}),
- @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0}),
- @TADescription(annotation = "TF", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0),
- @TADescription(annotation = "TG", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TH", type = METHOD_TYPE_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TI", type = METHOD_TYPE_PARAMETER, paramIndex = 1)
- })
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
+ @TADescription(annotation = "TF", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "TG", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TH", type = METHOD_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TI", type = METHOD_TYPE_PARAMETER, paramIndex = 1)
public String regularInterfaceParameterized() {
- return "interface Test { <@TH K extends @TG Object & @TA Map<String, @TB String>, @TI V extends @TF Object & @TC List<@TD List<@TE Object>>> void test(); }";
+ return "interface %TEST_CLASS_NAME% { <@TH K extends @TG Object & @TA Map<String, @TB String>, @TI V extends @TF Object & @TC List<@TD List<@TE Object>>> void test(); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1}),
- @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1),
- @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0}),
- @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0}),
- @TADescription(annotation = "TF", type = METHOD_TYPE_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TG", type = METHOD_TYPE_PARAMETER, paramIndex = 1)
- })
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
+ @TADescription(annotation = "TF", type = METHOD_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TG", type = METHOD_TYPE_PARAMETER, paramIndex = 1)
public String regularInterfaceParameterized2() {
- return "interface Test { <@TF K extends @TA Map<String, @TB String>, @TG V extends @TC List<@TD List<@TE Object>>> void test(); }";
+ return "interface %TEST_CLASS_NAME% { <@TF K extends @TA Map<String, @TB String>, @TG V extends @TC List<@TD List<@TE Object>>> void test(); }";
}
@TADescription(annotation = "TA", type = METHOD_RETURN)
public String useInReturn1() {
- return "class Test { <T> @TA T m() { throw new RuntimeException(); } }";
+ return "class %TEST_CLASS_NAME% { <T> @TA T m() { throw new RuntimeException(); } }";
}
@TADescription(annotation = "TA", type = METHOD_RETURN, genericLocation = {3, 0})
public String useInReturn2() {
- return "class Test { <T> Class<@TA T> m() { throw new RuntimeException(); } }";
+ return "class %TEST_CLASS_NAME% { <T> Class<@TA T> m() { throw new RuntimeException(); } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_RETURN)
- })
- public String useInReturn3() {
- return "class Test { <T extends @TA Object> @TB T m() { throw new RuntimeException(); } }";
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_RETURN)
+ public String useInReturn3() {
+ return "class %TEST_CLASS_NAME% { <T extends @TA Object> @TB T m() { throw new RuntimeException(); } }";
}
@TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
paramIndex = 0, genericLocation = {3, 0})
public String useInParam1() {
- return "class Test { <T> void m(Class<@TA T> p) { throw new RuntimeException(); } }";
+ return "class %TEST_CLASS_NAME% { <T> void m(Class<@TA T> p) { throw new RuntimeException(); } }";
}
@TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
paramIndex = 0, genericLocation = {3, 0})
public String useInParam2() {
- return "class Test { void m(Class<@TA Object> p) { throw new RuntimeException(); } }";
+ return "class %TEST_CLASS_NAME% { void m(Class<@TA Object> p) { throw new RuntimeException(); } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 2),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
- })
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 2)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
public String useInParam3() {
return "interface IA {} " +
"interface IB<XB> {} " +
"interface IC<XC> {} " +
- "class Test { <T extends @TA IB<IA> & @TB IC<IA>> void m(@TC T p) { throw new RuntimeException(); } }";
+ "class %TEST_CLASS_NAME% { <T extends @TA IB<IA> & @TB IC<IA>> void m(@TC T p) { throw new RuntimeException(); } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND,
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND,
paramIndex = 0, boundIndex = 1,
- genericLocation = {}),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {})
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
paramIndex = 0, boundIndex = 2,
- genericLocation = {}),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {})
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
paramIndex = 0)
- })
public String useInParam4() {
- return "class Test {" +
+ return "class %TEST_CLASS_NAME% {" +
" interface IA {} " +
" interface IB<XB> {} " +
" interface IC<XC> {} " +
" <T extends @TA IB<IA> & @TB IC<IA>> void m(@TC T p) { throw new RuntimeException(); } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND,
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND,
paramIndex = 0, boundIndex = 0,
- genericLocation = {}),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {})
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
paramIndex = 0, boundIndex = 0,
- genericLocation = {1, 0}),
- @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {1, 0})
+ @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND,
paramIndex = 0, boundIndex = 0,
- genericLocation = {1, 0, 3, 0}),
- })
- public String useInParam5() {
- return "class Test {" +
+ genericLocation = {1, 0, 3, 0})
+ public String useInParam5() {
+ return "class %TEST_CLASS_NAME% {" +
" interface IA {} " +
" class CB<XC> {} " +
- " <T extends @TA Test. @TB CB<@TC IA>> void m(T p) { throw new RuntimeException(); } }";
+ " <T extends @TA %TEST_CLASS_NAME%. @TB CB<@TC IA>> void m(T p) { throw new RuntimeException(); } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER,
- paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER,
+ paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
paramIndex = 0, boundIndex = 0,
- genericLocation = {}),
- @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {})
+ @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND,
paramIndex = 0, boundIndex = 0,
- genericLocation = {1, 0, 3, 0}),
- @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {1, 0, 3, 0})
+ @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND,
paramIndex = 0, boundIndex = 1,
- genericLocation = {}),
- @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {})
+ @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND,
paramIndex = 0, boundIndex = 1,
genericLocation = {3, 0})
- })
public String useInParam6() {
- return "class Test {" +
+ return "class %TEST_CLASS_NAME% {" +
" interface IA {} " +
" interface IB<XB> {} " +
" class CC<XC> {} " +
" interface ID<XD> {} " +
- " <@TA T extends @TB Test.CC<@TC IA> & Test. @TD ID<@TE IA>> void m(T p) { throw new RuntimeException(); } }";
+ " <@TA T extends @TB %TEST_CLASS_NAME%.CC<@TC IA> & %TEST_CLASS_NAME%. @TD ID<@TE IA>> void m(T p) { throw new RuntimeException(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTCs", type = METHOD_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "RTDs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "RTEs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ public String regularClassRepeatableAnnotation() {
+ return "<@RTA @RTA K extends @RTB @RTB Date, @RTC @RTC V extends @RTD @RTD Object & @RTE @RTE Cloneable> void test() { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTCs", type = METHOD_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "RTEs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ public String regularClassRepeatableAnnotation2() {
+ return "<@RTA @RTA K extends @RTB @RTB Date, @RTC @RTC V extends @RTE @RTE Cloneable> void test() { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "RTCs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "RTDs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "RTEs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
+ @TADescription(annotation = "RTFs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ public String regularClassParameterizedRepeatableAnnotation() {
+ return "<K extends @RTA @RTA Map<String, @RTB @RTB String>, V extends @RTF @RTF Object" +
+ " & @RTC @RTC List<@RTD @RTD List<@RTE @RTE Object>>> void test() { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTCs", type = METHOD_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "RTDs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "RTEs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ public String abstractClassRepeatableAnnotation() {
+ return "abstract class %TEST_CLASS_NAME% { abstract <@RTA @RTA K extends @RTB @RTB Date," +
+ " @RTC @RTC V extends @RTD @RTD Object & @RTE @RTE Cloneable> void test(); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "RTCs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "RTDs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "RTEs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTFs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ public String abstractClassParameterizedRepeatableAnnotation() {
+ return "abstract class %TEST_CLASS_NAME% { abstract <K extends @RTE @RTE Object &" +
+ " @RTA @RTA Map<String, @RTB @RTB String>, V extends @RTF @RTF Object &" +
+ " @RTC @RTC List<@RTD @RTD Object>> void test(); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "RTCs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "RTDs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "RTEs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0, 3, 0})
+ public String abstractClassParameterizedRepeatableAnnotation2() {
+ return "abstract class %TEST_CLASS_NAME% { abstract <K extends @RTA @RTA Map<String, @RTB @RTB String>," +
+ " V extends @RTC @RTC List<@RTD @RTD List<@RTE @RTE Object>>> void test(); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ public String abstractClassParameterizedRepeatableAnnotation3() {
+ return "abstract class %TEST_CLASS_NAME% { abstract <K extends @RTA @RTA List<String>," +
+ " V extends @RTB @RTB List<Object>> void test(); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTCs", type = METHOD_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "RTDs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 0)
+ @TADescription(annotation = "RTEs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ public String regularInterfaceRepeatableAnnotation() {
+ return "interface %TEST_CLASS_NAME% { <@RTA @RTA K extends @RTB @RTB Date," +
+ " @RTC @RTC V extends @RTD @RTD Object & @RTE @RTE Cloneable> void test(); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1, genericLocation = {3, 1})
+ @TADescription(annotation = "RTCs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1)
+ @TADescription(annotation = "RTDs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 1, boundIndex = 1, genericLocation = {3, 0})
+ @TADescription(annotation = "RTEs", type = METHOD_TYPE_PARAMETER, paramIndex = 1)
+ @TADescription(annotation = "RTFs", type = METHOD_TYPE_PARAMETER, paramIndex = 0)
+ public String regularInterfaceParameterizedRepeatableAnnotation() {
+ return "interface %TEST_CLASS_NAME% { <@RTF @RTF K extends @RTA @RTA Map<String, @RTB @RTB String>," +
+ " @RTE @RTE V extends @RTC @RTC List<@RTD @RTD Object>> void test(); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN)
+ public String useInReturnRepeatableAnnotation1() {
+ return "class %TEST_CLASS_NAME% { <T> @RTA @RTA T m() { throw new RuntimeException(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN, genericLocation = {3, 0})
+ public String useInReturnRepeatableAnnotation2() {
+ return "class %TEST_CLASS_NAME% { <T> Class<@RTA @RTA T> m() { throw new RuntimeException(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN)
+ public String useInReturnRepeatableAnnotation3() {
+ return "class %TEST_CLASS_NAME% { <T extends @RTA @RTA Object> @RTB @RTB T m() { throw new RuntimeException(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 0, genericLocation = {3, 0})
+ public String useInParamRepeatableAnnotation1() {
+ return "class %TEST_CLASS_NAME% { <T> void m(Class<@RTA @RTA T> p) { throw new RuntimeException(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 0, genericLocation = {3, 0})
+ public String useInParamRepeatableAnnotation2() {
+ return "class %TEST_CLASS_NAME% { void m(Class<@RTA @RTA Object> p) { throw new RuntimeException(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND, paramIndex = 0, boundIndex = 2)
+ @TADescription(annotation = "RTCs", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ public String useInParamRepeatableAnnotation3() {
+ return "interface IA {} " +
+ "interface IB<XB> {} " +
+ "interface IC<XC> {} " +
+ "class %TEST_CLASS_NAME% { <T extends @RTA @RTA IB<IA> & @RTB @RTB IC<IA>>" +
+ " void m(@RTC @RTC T p) { throw new RuntimeException(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 1,
+ genericLocation = {})
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 2,
+ genericLocation = {})
+ @TADescription(annotation = "RTCs", type = METHOD_FORMAL_PARAMETER,
+ paramIndex = 0)
+ public String useInParamRepeatableAnnotation4() {
+ return "class %TEST_CLASS_NAME% {" +
+ " interface IA {} " +
+ " interface IB<XB> {} " +
+ " interface IC<XC> {} " +
+ " <T extends @RTA @RTA IB<IA> & @RTB @RTB IC<IA>>" +
+ " void m(@RTC @RTC T p) { throw new RuntimeException(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 0,
+ genericLocation = {})
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 0,
+ genericLocation = {1, 0})
+ @TADescription(annotation = "RTCs", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 0,
+ genericLocation = {1, 0, 3, 0})
+ public String useInParamRepeatableAnnotation5() {
+ return "class %TEST_CLASS_NAME% {" +
+ " interface IA {} " +
+ " class CB<XC> {} " +
+ " <T extends @RTA @RTA %TEST_CLASS_NAME%. @RTB @RTB" +
+ " CB<@RTC @RTC IA>> void m(T p) { throw new RuntimeException(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER,
+ paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 0,
+ genericLocation = {})
+ @TADescription(annotation = "RTCs", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 0,
+ genericLocation = {1, 0, 3, 0})
+ @TADescription(annotation = "RTDs", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 1,
+ genericLocation = {})
+ @TADescription(annotation = "RTEs", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 1,
+ genericLocation = {3, 0})
+ public String useInParamRepeatableAnnotation6() {
+ return "class %TEST_CLASS_NAME% {" +
+ " interface IA {} " +
+ " interface IB<XB> {} " +
+ " class CC<XC> {} " +
+ " interface ID<XD> {} " +
+ " <@RTA @RTA T extends @RTB @RTB %TEST_CLASS_NAME%.CC<@RTC @RTC IA> &" +
+ " %TEST_CLASS_NAME%. @RTD @RTD ID<@RTE @RTE IA>> void m(T p) { throw new RuntimeException(); } }";
}
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/MultiCatch.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/MultiCatch.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,7 +25,7 @@
/*
* @test
- * @bug 8006732 8006775
+ * @bug 8006732 8006775 8042451
* @summary Test population of reference info for multicatch exception parameters
* @author Werner Dietl
* @compile -g Driver.java ReferenceInfoUtil.java MultiCatch.java
@@ -33,35 +33,59 @@
*/
public class MultiCatch {
- @TADescriptions({
- @TADescription(annotation = "TA", type = EXCEPTION_PARAMETER, exceptionIndex = 0),
- @TADescription(annotation = "TB", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
- })
+ @TADescription(annotation = "TA", type = EXCEPTION_PARAMETER, exceptionIndex = 0)
+ @TADescription(annotation = "TB", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
public String multiCatch1() {
return "void multiCatch1() { " +
"try { new Object(); } catch (@TA NullPointerException | @TB IndexOutOfBoundsException e) { e.toString(); } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = EXCEPTION_PARAMETER, exceptionIndex = 0),
- @TADescription(annotation = "TB", type = EXCEPTION_PARAMETER, exceptionIndex = 1),
- @TADescription(annotation = "TC", type = EXCEPTION_PARAMETER, exceptionIndex = 2),
- })
+ @TADescription(annotation = "TA", type = EXCEPTION_PARAMETER, exceptionIndex = 0)
+ @TADescription(annotation = "TB", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
+ @TADescription(annotation = "TC", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
public String multiCatch2() {
return "void multiCatch2() { " +
"try { new Object(); } catch (@TA NullPointerException | @TB IndexOutOfBoundsException | @TC IllegalArgumentException e) { e.toString(); } }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = EXCEPTION_PARAMETER, exceptionIndex = 1),
- @TADescription(annotation = "TB", type = EXCEPTION_PARAMETER, exceptionIndex = 1),
- @TADescription(annotation = "TC", type = EXCEPTION_PARAMETER, exceptionIndex = 2),
- @TADescription(annotation = "TD", type = EXCEPTION_PARAMETER, exceptionIndex = 2),
- @TADescription(annotation = "TE", type = EXCEPTION_PARAMETER, exceptionIndex = 3),
- })
+ @TADescription(annotation = "TA", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
+ @TADescription(annotation = "TB", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
+ @TADescription(annotation = "TC", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
+ @TADescription(annotation = "TD", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
+ @TADescription(annotation = "TE", type = EXCEPTION_PARAMETER, exceptionIndex = 3)
public String multiCatch3() {
return "void multiCatch3() { " +
"try { new Object(); } catch (NullPointerException e1) {}" +
"try { new Object(); } catch (@TA @TB NullPointerException | @TC @TD IndexOutOfBoundsException | @TE IllegalArgumentException e2) { e2.toString(); } }";
}
+
+ @TADescription(annotation = "RTAs", type = EXCEPTION_PARAMETER, exceptionIndex = 0)
+ @TADescription(annotation = "RTBs", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
+ public String multiCatchRepeatableAnnotation1() {
+ return "void multiCatch1() { " +
+ "try { new Object(); } catch (@RTA @RTA NullPointerException |" +
+ " @RTB @RTB IndexOutOfBoundsException e) { e.toString(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = EXCEPTION_PARAMETER, exceptionIndex = 0)
+ @TADescription(annotation = "RTBs", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
+ @TADescription(annotation = "RTCs", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
+ public String multiCatchRepeatableAnnotation2() {
+ return "void multiCatch2() { " +
+ "try { new Object(); } catch (@RTA @RTA NullPointerException |" +
+ " @RTB @RTB IndexOutOfBoundsException | @RTC @RTC IllegalArgumentException e) { e.toString(); } }";
+ }
+
+ @TADescription(annotation = "RTAs", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
+ @TADescription(annotation = "RTBs", type = EXCEPTION_PARAMETER, exceptionIndex = 1)
+ @TADescription(annotation = "RTCs", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
+ @TADescription(annotation = "RTDs", type = EXCEPTION_PARAMETER, exceptionIndex = 2)
+ @TADescription(annotation = "RTEs", type = EXCEPTION_PARAMETER, exceptionIndex = 3)
+ public String multiCatchRepeatableAnnotation3() {
+ return "void multiCatch3() { " +
+ "try { new Object(); } catch (NullPointerException e1) {}" +
+ "try { new Object(); } catch (@RTA @RTA @RTB @RTB NullPointerException |" +
+ " @RTC @RTC @RTD @RTD IndexOutOfBoundsException |" +
+ " @RTE @RTE IllegalArgumentException e2) { e2.toString(); } }";
+ }
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/NestedTypes.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/NestedTypes.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,6 +25,7 @@
/*
* @test
+ * @bug 8042451 8044009 8044010
* @summary Test population of reference info for nested types
* @compile -g Driver.java ReferenceInfoUtil.java NestedTypes.java
* @run main Driver NestedTypes
@@ -33,22 +34,18 @@
// method parameters
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {}, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {1, 0}, paramIndex = 0)
- })
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {}, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {1, 0}, paramIndex = 0)
public String testParam1() {
return "void test(@TA Outer.@TB Inner a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0}, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 1, 0}, paramIndex = 0)
- })
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 1, 0}, paramIndex = 0)
public String testParam1b() {
return "void test(List<@TA Outer.@TB Inner> a) { }";
}
@@ -63,10 +60,9 @@
return "void test(java.util.@TA Map.Entry a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {}, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {}, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
genericLocation = {1, 0}, paramIndex = 0)
})
public String testParam1d() {
@@ -79,10 +75,9 @@
return "void test(List<java.util.@TA Map.Entry> a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0}, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
genericLocation = {3, 0, 1, 0}, paramIndex = 0)
})
public String testParam1f() {
@@ -96,89 +91,81 @@
return "void test(List<java.util.Map. @TB Entry> a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {}, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {1, 0}, paramIndex = 0)
- })
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {}, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {1, 0}, paramIndex = 0)
public String testParam2() {
return "void test(@TA GOuter<String,String>.@TB GInner<String,String> a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0}, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 1, 0}, paramIndex = 0)
- })
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 1, 0}, paramIndex = 0)
public String testParam2b() {
return "void test(List<@TA GOuter<String,String>.@TB GInner<String,String>> a) { }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {0, 0, 0, 0}, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {0, 0, 0, 0, 1, 0}, paramIndex = 0),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0}, paramIndex = 0),
- @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0}, paramIndex = 0),
- @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0}, paramIndex = 0),
- @TADescription(annotation = "TF", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0}, paramIndex = 0),
- @TADescription(annotation = "TG", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {0, 0, 0, 0, 1, 0, 1, 0}, paramIndex = 0),
- @TADescription(annotation = "TH", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 0}, paramIndex = 0),
- @TADescription(annotation = "TI", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 1}, paramIndex = 0),
- @TADescription(annotation = "TJ", type = METHOD_FORMAL_PARAMETER, paramIndex = 0),
- @TADescription(annotation = "TK", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {0, 0}, paramIndex = 0)
- })
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0}, paramIndex = 0)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TF", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "TG", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0}, paramIndex = 0)
+ @TADescription(annotation = "TH", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TI", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 1}, paramIndex = 0)
+ @TADescription(annotation = "TJ", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "TK", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0}, paramIndex = 0)
public String testParam3() {
return "class Outer {\n" +
" class GInner<X> {\n" +
" class GInner2<Y, Z> {}\n" +
"}}\n\n" +
- "class Test {\n" +
+ "class %TEST_CLASS_NAME% {\n" +
" void test(@TA Outer . @TB GInner<@TC List<@TD Object @TE[] @TF[]>>. @TG GInner2<@TH Integer, @TI Object> @TJ[] @TK[] a) { }\n" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 0, 0, 0, 0}, paramIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0}, paramIndex = 0),
- @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0}, paramIndex = 0),
- @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0}, paramIndex = 0),
- @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0}, paramIndex = 0),
- @TADescription(annotation = "TF", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0}, paramIndex = 0),
- @TADescription(annotation = "TG", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0}, paramIndex = 0),
- @TADescription(annotation = "TH", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 0}, paramIndex = 0),
- @TADescription(annotation = "TI", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 1}, paramIndex = 0),
- @TADescription(annotation = "TJ", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0}, paramIndex = 0),
- @TADescription(annotation = "TK", type = METHOD_FORMAL_PARAMETER,
- genericLocation = {3, 0, 0, 0}, paramIndex = 0)
- })
+ @TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0}, paramIndex = 0)
+ @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TD", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TF", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "TG", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0}, paramIndex = 0)
+ @TADescription(annotation = "TH", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TI", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 1}, paramIndex = 0)
+ @TADescription(annotation = "TJ", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0}, paramIndex = 0)
+ @TADescription(annotation = "TK", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0}, paramIndex = 0)
public String testParam4() {
return "class Outer {\n" +
" class GInner<X> {\n" +
" class GInner2<Y, Z> {}\n" +
"}}\n\n" +
- "class Test {\n" +
+ "class %TEST_CLASS_NAME% {\n" +
" void test(List<@TA Outer . @TB GInner<@TC List<@TD Object @TE[] @TF[]>>. @TG GInner2<@TH Integer, @TI Object> @TJ[] @TK[]> a) { }\n" +
"}";
}
@@ -186,14 +173,12 @@
// Local variables
- @TADescriptions({
- @TADescription(annotation = "TA", type = LOCAL_VARIABLE,
- genericLocation = {},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TB", type = LOCAL_VARIABLE,
- genericLocation = {1, 0},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
- })
+ @TADescription(annotation = "TA", type = LOCAL_VARIABLE,
+ genericLocation = {},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TB", type = LOCAL_VARIABLE,
+ genericLocation = {1, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
public String testLocal1a() {
return "void test() { @TA Outer.@TB Inner a = null; }";
}
@@ -212,104 +197,99 @@
return "void test() { Outer.@TB Inner a = null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = LOCAL_VARIABLE,
- genericLocation = {},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TB", type = LOCAL_VARIABLE,
- genericLocation = {1, 0},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
- })
+ @TADescription(annotation = "TA", type = LOCAL_VARIABLE,
+ genericLocation = {},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TB", type = LOCAL_VARIABLE,
+ genericLocation = {1, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
public String testLocal2() {
return "void test() { @TA GOuter<String,String>.@TB GInner<String,String> a = null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = LOCAL_VARIABLE,
- genericLocation = {0, 0, 0, 0},
- lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TB", type = LOCAL_VARIABLE,
- genericLocation = {0, 0, 0, 0, 1, 0},
- lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TC", type = LOCAL_VARIABLE,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0},
- lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TD", type = LOCAL_VARIABLE,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0},
- lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TE", type = LOCAL_VARIABLE,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0},
- lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TF", type = LOCAL_VARIABLE,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0},
- lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TG", type = LOCAL_VARIABLE,
- genericLocation = {0, 0, 0, 0, 1, 0, 1, 0},
- lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TH", type = LOCAL_VARIABLE,
- genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 0},
- lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TI", type = LOCAL_VARIABLE,
- genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 1},
- lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TJ", type = LOCAL_VARIABLE,
- genericLocation = {},
- lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TK", type = LOCAL_VARIABLE,
- genericLocation = {0, 0},
- lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
- })
+ @TADescription(annotation = "TA", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TB", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TC", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TD", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TE", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TF", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TG", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TH", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TI", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 1},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TJ", type = LOCAL_VARIABLE,
+ genericLocation = {},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TK", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
public String testLocal3() {
return "class Outer {\n" +
" class GInner<X> {\n" +
" class GInner2<Y, Z> {}\n" +
"}}\n\n" +
- "class Test {\n" +
+ "class %TEST_CLASS_NAME% {\n" +
" void test() { @TA Outer . @TB GInner<@TC List<@TD Object @TE[] @TF[]>>. @TG GInner2<@TH Integer, @TI Object> @TJ[] @TK[] a = null; }\n" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = LOCAL_VARIABLE,
- genericLocation = {3, 0, 0, 0, 0, 0},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TB", type = LOCAL_VARIABLE,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TC", type = LOCAL_VARIABLE,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TD", type = LOCAL_VARIABLE,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TE", type = LOCAL_VARIABLE,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TF", type = LOCAL_VARIABLE,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TG", type = LOCAL_VARIABLE,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TH", type = LOCAL_VARIABLE,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 0},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TI", type = LOCAL_VARIABLE,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 1},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TJ", type = LOCAL_VARIABLE,
- genericLocation = {3, 0},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1}),
- @TADescription(annotation = "TK", type = LOCAL_VARIABLE,
- genericLocation = {3, 0, 0, 0},
- lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
- })
+
+ @TADescription(annotation = "TA", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TB", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TC", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TD", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TE", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TF", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TG", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TH", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TI", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 1},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TJ", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "TK", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
public String testLocal4() {
return "class Outer {\n" +
" class GInner<X> {\n" +
" class GInner2<Y, Z> {}\n" +
"}}\n\n" +
- "class Test {\n" +
+ "class %TEST_CLASS_NAME% {\n" +
" void test() { List<@TA Outer . @TB GInner<@TC List<@TD Object @TE[] @TF[]>>. @TG GInner2<@TH Integer, @TI Object> @TJ[] @TK[]> a = null; }\n" +
"}";
}
@@ -317,12 +297,10 @@
// fields
- @TADescriptions({
- @TADescription(annotation = "TA", type = FIELD,
- genericLocation = {}),
- @TADescription(annotation = "TB", type = FIELD,
- genericLocation = {1, 0})
- })
+ @TADescription(annotation = "TA", type = FIELD,
+ genericLocation = {})
+ @TADescription(annotation = "TB", type = FIELD,
+ genericLocation = {1, 0})
public String testField1a() {
return "@TA Outer.@TB Inner a;";
}
@@ -339,79 +317,73 @@
return "Outer.@TB Inner a;";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = FIELD,
- genericLocation = {}),
- @TADescription(annotation = "TB", type = FIELD,
- genericLocation = {1, 0})
- })
+ @TADescription(annotation = "TA", type = FIELD,
+ genericLocation = {})
+ @TADescription(annotation = "TB", type = FIELD,
+ genericLocation = {1, 0})
public String testField2() {
return "@TA GOuter<String,String>.@TB GInner<String,String> a;";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = FIELD,
- genericLocation = {0, 0, 0, 0}),
- @TADescription(annotation = "TB", type = FIELD,
- genericLocation = {0, 0, 0, 0, 1, 0}),
- @TADescription(annotation = "TC", type = FIELD,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0}),
- @TADescription(annotation = "TD", type = FIELD,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0}),
- @TADescription(annotation = "TE", type = FIELD,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0}),
- @TADescription(annotation = "TF", type = FIELD,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0}),
- @TADescription(annotation = "TG", type = FIELD,
- genericLocation = {0, 0, 0, 0, 1, 0, 1, 0}),
- @TADescription(annotation = "TH", type = FIELD,
- genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 0}),
- @TADescription(annotation = "TI", type = FIELD,
- genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 1}),
- @TADescription(annotation = "TJ", type = FIELD),
- @TADescription(annotation = "TK", type = FIELD,
- genericLocation = {0, 0})
- })
+ @TADescription(annotation = "TA", type = FIELD,
+ genericLocation = {0, 0, 0, 0})
+ @TADescription(annotation = "TB", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "TC", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "TD", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "TE", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0})
+ @TADescription(annotation = "TF", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0})
+ @TADescription(annotation = "TG", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0})
+ @TADescription(annotation = "TH", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "TI", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 1})
+ @TADescription(annotation = "TJ", type = FIELD)
+ @TADescription(annotation = "TK", type = FIELD,
+ genericLocation = {0, 0})
public String testField3() {
return "class Outer {\n" +
" class GInner<X> {\n" +
" class GInner2<Y, Z> {}\n" +
"}}\n\n" +
- "class Test {\n" +
+ "class %TEST_CLASS_NAME% {\n" +
" @TA Outer . @TB GInner<@TC List<@TD Object @TE[] @TF[]>>. @TG GInner2<@TH Integer, @TI Object> @TJ[] @TK[] a;\n" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = FIELD,
- genericLocation = {3, 0, 0, 0, 0, 0}),
- @TADescription(annotation = "TB", type = FIELD,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0}),
- @TADescription(annotation = "TC", type = FIELD,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0}),
- @TADescription(annotation = "TD", type = FIELD,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0}),
- @TADescription(annotation = "TE", type = FIELD,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0}),
- @TADescription(annotation = "TF", type = FIELD,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0}),
- @TADescription(annotation = "TG", type = FIELD,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0}),
- @TADescription(annotation = "TH", type = FIELD,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 0}),
- @TADescription(annotation = "TI", type = FIELD,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 1}),
- @TADescription(annotation = "TJ", type = FIELD,
- genericLocation = {3, 0}),
- @TADescription(annotation = "TK", type = FIELD,
- genericLocation = {3, 0, 0, 0})
- })
+ @TADescription(annotation = "TA", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "TB", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "TC", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "TD", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "TE", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0})
+ @TADescription(annotation = "TF", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0})
+ @TADescription(annotation = "TG", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0})
+ @TADescription(annotation = "TH", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "TI", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 1})
+ @TADescription(annotation = "TJ", type = FIELD,
+ genericLocation = {3, 0})
+ @TADescription(annotation = "TK", type = FIELD,
+ genericLocation = {3, 0, 0, 0})
public String testField4() {
return "class Outer {\n" +
" class GInner<X> {\n" +
" class GInner2<Y, Z> {}\n" +
"}}\n\n" +
- "class Test {\n" +
+ "class %TEST_CLASS_NAME% {\n" +
" List<@TA Outer . @TB GInner<@TC List<@TD Object @TE[] @TF[]>>. @TG GInner2<@TH Integer, @TI Object> @TJ[] @TK[]> a;\n" +
"}";
}
@@ -419,121 +391,111 @@
// return types
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RETURN,
- genericLocation = {}),
- @TADescription(annotation = "TB", type = METHOD_RETURN,
- genericLocation = {1, 0})
- })
+ @TADescription(annotation = "TA", type = METHOD_RETURN,
+ genericLocation = {})
+ @TADescription(annotation = "TB", type = METHOD_RETURN,
+ genericLocation = {1, 0})
public String testReturn1() {
return "@TA Outer.@TB Inner test() { return null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RETURN,
- genericLocation = {}),
- @TADescription(annotation = "TB", type = METHOD_RETURN,
- genericLocation = {1, 0})
- })
+ @TADescription(annotation = "TA", type = METHOD_RETURN,
+ genericLocation = {})
+ @TADescription(annotation = "TB", type = METHOD_RETURN,
+ genericLocation = {1, 0})
public String testReturn2() {
return "@TA GOuter<String,String>.@TB GInner<String,String> test() { return null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RETURN,
- genericLocation = {0, 0, 0, 0}),
- @TADescription(annotation = "TB", type = METHOD_RETURN,
- genericLocation = {0, 0, 0, 0, 1, 0}),
- @TADescription(annotation = "TC", type = METHOD_RETURN,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0}),
- @TADescription(annotation = "TD", type = METHOD_RETURN,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0}),
- @TADescription(annotation = "TE", type = METHOD_RETURN,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0}),
- @TADescription(annotation = "TF", type = METHOD_RETURN,
- genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0}),
- @TADescription(annotation = "TG", type = METHOD_RETURN,
- genericLocation = {0, 0, 0, 0, 1, 0, 1, 0}),
- @TADescription(annotation = "TH", type = METHOD_RETURN,
- genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 0}),
- @TADescription(annotation = "TI", type = METHOD_RETURN,
- genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 1}),
- @TADescription(annotation = "TJ", type = METHOD_RETURN),
- @TADescription(annotation = "TK", type = METHOD_RETURN,
- genericLocation = {0, 0})
- })
+ @TADescription(annotation = "TA", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0})
+ @TADescription(annotation = "TB", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "TC", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "TD", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "TE", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0})
+ @TADescription(annotation = "TF", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0})
+ @TADescription(annotation = "TG", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0})
+ @TADescription(annotation = "TH", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "TI", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 1})
+ @TADescription(annotation = "TJ", type = METHOD_RETURN)
+ @TADescription(annotation = "TK", type = METHOD_RETURN,
+ genericLocation = {0, 0})
public String testReturn3() {
return "class Outer {\n" +
" class GInner<X> {\n" +
" class GInner2<Y, Z> {}\n" +
"}}\n\n" +
- "class Test {\n" +
+ "class %TEST_CLASS_NAME% {\n" +
" @TA Outer . @TB GInner<@TC List<@TD Object @TE[] @TF[]>>. @TG GInner2<@TH Integer, @TI Object> @TJ[] @TK[] test() { return null; }\n" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RETURN,
- genericLocation = {3, 0, 0, 0, 0, 0}),
- @TADescription(annotation = "TB", type = METHOD_RETURN,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0}),
- @TADescription(annotation = "TC", type = METHOD_RETURN,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0}),
- @TADescription(annotation = "TD", type = METHOD_RETURN,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0}),
- @TADescription(annotation = "TE", type = METHOD_RETURN,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0}),
- @TADescription(annotation = "TF", type = METHOD_RETURN,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0}),
- @TADescription(annotation = "TG", type = METHOD_RETURN,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0}),
- @TADescription(annotation = "TH", type = METHOD_RETURN,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 0}),
- @TADescription(annotation = "TI", type = METHOD_RETURN,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 1}),
- @TADescription(annotation = "TJ", type = METHOD_RETURN,
- genericLocation = {3, 0}),
- @TADescription(annotation = "TK", type = METHOD_RETURN,
- genericLocation = {3, 0, 0, 0})
- })
+ @TADescription(annotation = "TA", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "TB", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "TC", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "TD", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "TE", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0})
+ @TADescription(annotation = "TF", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0})
+ @TADescription(annotation = "TG", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0})
+ @TADescription(annotation = "TH", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "TI", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 1})
+ @TADescription(annotation = "TJ", type = METHOD_RETURN,
+ genericLocation = {3, 0})
+ @TADescription(annotation = "TK", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0})
public String testReturn4() {
return "class Outer {\n" +
" class GInner<X> {\n" +
" class GInner2<Y, Z> {}\n" +
"}}\n\n" +
- "class Test {\n" +
+ "class %TEST_CLASS_NAME% {\n" +
" List<@TA Outer . @TB GInner<@TC List<@TD Object @TE[] @TF[]>>. @TG GInner2<@TH Integer, @TI Object> @TJ[] @TK[]> test() { return null; }\n" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_RETURN,
- genericLocation = {3, 0}),
- @TADescription(annotation = "TB", type = METHOD_RETURN,
- genericLocation = {3, 0, 3, 0}),
- @TADescription(annotation = "TC", type = METHOD_RETURN,
- genericLocation = {3, 0, 3, 1}),
- @TADescription(annotation = "TD", type = METHOD_RETURN,
- genericLocation = {3, 0, 3, 1, 3, 0}),
- @TADescription(annotation = "TE", type = METHOD_RETURN,
- genericLocation = {3, 0, 1, 0}),
- @TADescription(annotation = "TF", type = METHOD_RETURN,
- genericLocation = {3, 0, 1, 0, 3, 0}),
- @TADescription(annotation = "TG", type = METHOD_RETURN,
- genericLocation = {3, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0}),
- @TADescription(annotation = "TH", type = METHOD_RETURN,
- genericLocation = {3, 0, 1, 0, 3, 0, 3, 0}),
- @TADescription(annotation = "TI", type = METHOD_RETURN,
- genericLocation = {3, 0, 1, 0, 3, 0, 3, 0, 0, 0}),
- @TADescription(annotation = "TJ", type = METHOD_RETURN,
- genericLocation = {3, 0, 1, 0, 1, 0}),
- })
+ @TADescription(annotation = "TA", type = METHOD_RETURN,
+ genericLocation = {3, 0})
+ @TADescription(annotation = "TB", type = METHOD_RETURN,
+ genericLocation = {3, 0, 3, 0})
+ @TADescription(annotation = "TC", type = METHOD_RETURN,
+ genericLocation = {3, 0, 3, 1})
+ @TADescription(annotation = "TD", type = METHOD_RETURN,
+ genericLocation = {3, 0, 3, 1, 3, 0})
+ @TADescription(annotation = "TE", type = METHOD_RETURN,
+ genericLocation = {3, 0, 1, 0})
+ @TADescription(annotation = "TF", type = METHOD_RETURN,
+ genericLocation = {3, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "TG", type = METHOD_RETURN,
+ genericLocation = {3, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "TH", type = METHOD_RETURN,
+ genericLocation = {3, 0, 1, 0, 3, 0, 3, 0})
+ @TADescription(annotation = "TI", type = METHOD_RETURN,
+ genericLocation = {3, 0, 1, 0, 3, 0, 3, 0, 0, 0})
+ @TADescription(annotation = "TJ", type = METHOD_RETURN,
+ genericLocation = {3, 0, 1, 0, 1, 0})
public String testReturn5() {
return "class GOuter<A, B> {\n" +
" class GInner<X> {\n" +
" class GInner2<Y, Z> {}\n" +
"}}\n\n" +
- "class Test {\n" +
+ "class %TEST_CLASS_NAME% {\n" +
" List<@TA GOuter<@TB String, @TC List<@TD Object>> . @TE GInner<@TF List<@TG Object @TH[] @TI[]>>. @TJ GInner2<String, String>> test() { return null; }\n" +
"}";
}
@@ -541,138 +503,128 @@
// type parameters
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND,
- genericLocation = {}, paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {}, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {1, 0}, paramIndex = 0, boundIndex = 0)
- })
public String testTypeparam1() {
return "<X extends @TA Outer.@TB Inner> X test() { return null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND,
- genericLocation = {}, paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {}, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {1, 0}, paramIndex = 0, boundIndex = 0)
- })
public String testTypeparam2() {
return "<X extends @TA GOuter<String,String>.@TB GInner<String,String>> X test() { return null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND,
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {},
- paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {1, 0},
- paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {1, 0, 3, 0},
- paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {1, 0, 3, 0, 3, 0, 0, 0, 0, 0},
- paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {1, 0, 3, 0, 3, 0},
- paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TF", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TF", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {1, 0, 3, 0, 3, 0, 0, 0},
- paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TG", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TG", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {1, 0, 1, 0},
- paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TH", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TH", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {1, 0, 1, 0, 3, 0},
- paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TI", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TI", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {1, 0, 1, 0, 3, 1},
- paramIndex = 0, boundIndex = 0),
- })
+ paramIndex = 0, boundIndex = 0)
public String testTypeparam3() {
return "class Outer {\n" +
" class GInner<X> {\n" +
" class GInner2<Y, Z> {}\n" +
"}}\n\n" +
- "class Test {\n" +
+ "class %TEST_CLASS_NAME% {\n" +
" <X extends @TA Outer . @TB GInner<@TC List<@TD Object @TE[] @TF[]>>. @TG GInner2<@TH Integer, @TI Object>> X test() { return null; }\n" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND,
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {3, 0, 0, 0, 0, 0},
- paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {3, 0, 0, 0, 0, 0, 1, 0},
- paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0},
- paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0},
- paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0},
- paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TF", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TF", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0},
- paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TG", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TG", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0},
- paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TH", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TH", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 0},
- paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TI", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TI", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 1},
- paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TJ", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TJ", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {3, 0},
- paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TK", type = METHOD_TYPE_PARAMETER_BOUND,
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TK", type = METHOD_TYPE_PARAMETER_BOUND,
genericLocation = {3, 0, 0, 0},
paramIndex = 0, boundIndex = 1)
- })
public String testTypeparam4() {
return "class Outer {\n" +
" class GInner<X> {\n" +
" class GInner2<Y, Z> {}\n" +
"}}\n\n" +
- "class Test {\n" +
+ "class %TEST_CLASS_NAME% {\n" +
" <X extends List<@TA Outer . @TB GInner<@TC List<@TD Object @TE[] @TF[]>>. @TG GInner2<@TH Integer, @TI Object> @TJ[] @TK[]>> X test() { return null; }\n" +
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND,
- genericLocation = {3, 0}, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
- genericLocation = {3, 0, 3, 0}, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND,
- genericLocation = {3, 0, 3, 1}, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND,
- genericLocation = {3, 0, 3, 1, 3, 0}, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND,
- genericLocation = {3, 0, 1, 0}, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TF", type = METHOD_TYPE_PARAMETER_BOUND,
- genericLocation = {3, 0, 1, 0, 3, 0}, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TG", type = METHOD_TYPE_PARAMETER_BOUND,
- genericLocation = {3, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0}, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TH", type = METHOD_TYPE_PARAMETER_BOUND,
- genericLocation = {3, 0, 1, 0, 3, 0, 3, 0}, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TI", type = METHOD_TYPE_PARAMETER_BOUND,
- genericLocation = {3, 0, 1, 0, 3, 0, 3, 0, 0, 0}, paramIndex = 0, boundIndex = 1),
- @TADescription(annotation = "TJ", type = METHOD_TYPE_PARAMETER_BOUND,
- genericLocation = {3, 0, 1, 0, 1, 0}, paramIndex = 0, boundIndex = 1),
- })
+ @TADescription(annotation = "TA", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TB", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 3, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TC", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 3, 1}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TD", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 3, 1, 3, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TE", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 1, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TF", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 1, 0, 3, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TG", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TH", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 1, 0, 3, 0, 3, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TI", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 1, 0, 3, 0, 3, 0, 0, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "TJ", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 1, 0, 1, 0}, paramIndex = 0, boundIndex = 1)
public String testTypeparam5() {
return "class GOuter<A, B> {\n" +
" class GInner<X> {\n" +
" class GInner2<Y, Z> {}\n" +
"}}\n\n" +
- "class Test {\n" +
+ "class %TEST_CLASS_NAME% {\n" +
" <X extends List<@TA GOuter<@TB String, @TC List<@TD Object>> . @TE GInner<@TF List<@TG Object @TH[] @TI[]>>. @TJ GInner2<String, String>>> X test() { return null; }\n" +
"}";
}
@@ -680,91 +632,89 @@
@TADescription(annotation = "TA", type = FIELD,
genericLocation = {3, 0, 1, 0})
public String testUses1a() {
- return "class Test { class Inner {} List<@TA Inner> f; }";
+ return "class %TEST_CLASS_NAME% { class Inner {} List<@TA Inner> f; }";
}
@TADescription(annotation = "TA", type = FIELD,
genericLocation = {3, 0})
public String testUses1b() {
- return "class Test { class Inner {} List<@TA Test.Inner> f; }";
+ return "class %TEST_CLASS_NAME% { class Inner {} List<@TA %TEST_CLASS_NAME%.Inner> f; }";
}
@TADescription(annotation = "TA", type = FIELD,
genericLocation = {3, 0, 1, 0, 1, 0})
- @TestClass("Test$Inner")
+ @TestClass("%TEST_CLASS_NAME%$Inner")
public String testUses2a() {
- return "class Test { class Inner { class Inner2{} List<@TA Inner2> f; }}";
+ return "class %TEST_CLASS_NAME% { class Inner { class Inner2{} List<@TA Inner2> f; }}";
}
@TADescription(annotation = "TA", type = FIELD,
genericLocation = {3, 0, 1, 0})
- @TestClass("Test$Inner")
+ @TestClass("%TEST_CLASS_NAME%$Inner")
public String testUses2b() {
- return "class Test { class Inner { class Inner2{} List<@TA Inner.Inner2> f; }}";
+ return "class %TEST_CLASS_NAME% { class Inner { class Inner2{} List<@TA Inner.Inner2> f; }}";
}
@TADescription(annotation = "TA", type = FIELD,
genericLocation = {3, 0, 1, 0, 1, 0})
- @TestClass("Test$Inner")
+ @TestClass("%TEST_CLASS_NAME%$Inner")
public String testUses2c() {
- return "class Test { class Inner { class Inner2{} List<Inner.@TA Inner2> f; }}";
+ return "class %TEST_CLASS_NAME% { class Inner { class Inner2{} List<Inner.@TA Inner2> f; }}";
}
@TADescription(annotation = "TA", type = FIELD,
genericLocation = {3, 0})
- @TestClass("Test$Inner")
+ @TestClass("%TEST_CLASS_NAME%$Inner")
public String testUses2d() {
- return "class Test{ class Inner { class Inner2{} List<@TA Test.Inner.Inner2> f; }}";
+ return "class %TEST_CLASS_NAME%{ class Inner { class Inner2{} List<@TA %TEST_CLASS_NAME%.Inner.Inner2> f; }}";
}
@TADescription(annotation = "TA", type = FIELD,
genericLocation = {3, 0, 1, 0})
- @TestClass("Test$Inner")
+ @TestClass("%TEST_CLASS_NAME%$Inner")
public String testUses2e() {
- return "class Test { class Inner { class Inner2{} List<Test.@TA Inner.Inner2> f; }}";
+ return "class %TEST_CLASS_NAME% { class Inner { class Inner2{} List<%TEST_CLASS_NAME%.@TA Inner.Inner2> f; }}";
}
@TADescription(annotation = "TA", type = FIELD,
genericLocation = {3, 0, 1, 0, 1, 0})
- @TestClass("Test$Inner")
+ @TestClass("%TEST_CLASS_NAME%$Inner")
public String testUses2f() {
- return "class Test { class Inner { class Inner2{} List<Test.Inner.@TA Inner2> f; }}";
+ return "class %TEST_CLASS_NAME% { class Inner { class Inner2{} List<%TEST_CLASS_NAME%.Inner.@TA Inner2> f; }}";
}
@TADescription(annotation = "TA", type = FIELD,
genericLocation = {3, 0, 1, 0, 1, 0})
- @TestClass("Test$Inner")
+ @TestClass("%TEST_CLASS_NAME%$Inner")
public String testUses3a() {
- return "class Test { class Inner<A, B> { class Inner2<C, D>{}\n" +
- " List<Test.Inner.@TA Inner2> f; }}";
+ return "class %TEST_CLASS_NAME% { class Inner<A, B> { class Inner2<C, D>{}\n" +
+ " List<%TEST_CLASS_NAME%.Inner.@TA Inner2> f; }}";
}
@TADescription(annotation = "TA", type = FIELD,
genericLocation = {3, 0, 1, 0})
- @TestClass("Test$Inner")
+ @TestClass("%TEST_CLASS_NAME%$Inner")
public String testUses3b() {
- return "class Test { class Inner<A, B> { class Inner2<C, D>{}\n" +
- " List<Test.@TA Inner.Inner2> f; }}";
+ return "class %TEST_CLASS_NAME% { class Inner<A, B> { class Inner2<C, D>{}\n" +
+ " List<%TEST_CLASS_NAME%.@TA Inner.Inner2> f; }}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = FIELD,
- genericLocation = {}),
- @TADescription(annotation = "TB", type = FIELD,
+ @TADescription(annotation = "TA", type = FIELD,
+ genericLocation = {})
+ @TADescription(annotation = "TB", type = FIELD,
genericLocation = {3, 0})
- })
public String testUses4() {
- return "class Test { static class TInner {}\n" +
+ return "class %TEST_CLASS_NAME% { static class TInner {}\n" +
" @TA TInner f; \n" +
" List<@TB TInner> g; }";
}
@TADescription(annotation = "TA", type = FIELD,
genericLocation = {3, 0, 1, 0, 3, 1})
- @TestClass("Test$Inner")
+ @TestClass("%TEST_CLASS_NAME%$Inner")
public String testUses3c() {
- return "class Test { class Inner<A, B> { class Inner2<C, D>{}\n" +
- " List<Test.Inner<String, @TA Object>.Inner2<Test, Test>> f; }}";
+ return "class %TEST_CLASS_NAME% { class Inner<A, B> { class Inner2<C, D>{}\n" +
+ " List<%TEST_CLASS_NAME%.Inner<String, @TA Object>.Inner2<%TEST_CLASS_NAME%, %TEST_CLASS_NAME%>> f; }}";
}
@TADescription(annotation = "TA", type = METHOD_FORMAL_PARAMETER, paramIndex=0)
@@ -778,24 +728,22 @@
return "void testme(List<java.security.@TA ProtectionDomain> protectionDomain) {}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = LOCAL_VARIABLE,
+ @TADescription(annotation = "TA", type = LOCAL_VARIABLE,
genericLocation = {},
lvarOffset = ReferenceInfoUtil.IGNORE_VALUE,
lvarLength = ReferenceInfoUtil.IGNORE_VALUE,
- lvarIndex = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = LOCAL_VARIABLE,
+ lvarIndex = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = LOCAL_VARIABLE,
genericLocation = {1, 0},
lvarOffset = ReferenceInfoUtil.IGNORE_VALUE,
lvarLength = ReferenceInfoUtil.IGNORE_VALUE,
- lvarIndex = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TC", type = LOCAL_VARIABLE,
+ lvarIndex = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TC", type = LOCAL_VARIABLE,
// Only classes count, not methods.
genericLocation = {1, 0, 1, 0},
lvarOffset = ReferenceInfoUtil.IGNORE_VALUE,
lvarLength = ReferenceInfoUtil.IGNORE_VALUE,
- lvarIndex = ReferenceInfoUtil.IGNORE_VALUE),
- })
+ lvarIndex = ReferenceInfoUtil.IGNORE_VALUE)
@TestClass("Outer$Inner")
public String testMethodNesting1() {
return "class Outer {\n" +
@@ -808,18 +756,16 @@
"}}\n";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = NEW,
+ @TADescription(annotation = "TA", type = NEW,
genericLocation = {},
- offset = 0),
- @TADescription(annotation = "TB", type = NEW,
+ offset = 0)
+ @TADescription(annotation = "TB", type = NEW,
genericLocation = {1, 0},
- offset = 0),
- @TADescription(annotation = "TC", type = NEW,
+ offset = 0)
+ @TADescription(annotation = "TC", type = NEW,
// Only classes count, not methods.
genericLocation = {1, 0, 1, 0},
- offset = 12),
- })
+ offset = 12)
@TestClass("Outer$Inner")
public String testMethodNesting2() {
return "class Outer {\n" +
@@ -832,20 +778,18 @@
"}}\n";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_EXTENDS,
- genericLocation = {}, typeIndex = -1),
- @TADescription(annotation = "TB", type = CLASS_EXTENDS,
- genericLocation = {3, 0}, typeIndex = -1),
- @TADescription(annotation = "TC", type = CLASS_EXTENDS,
- genericLocation = {3, 1}, typeIndex = -1),
- @TADescription(annotation = "TD", type = CLASS_EXTENDS,
- genericLocation = {1, 0}, typeIndex = -1),
- @TADescription(annotation = "TE", type = CLASS_EXTENDS,
- genericLocation = {1, 0, 3, 0}, typeIndex = -1),
- @TADescription(annotation = "TF", type = CLASS_EXTENDS,
+ @TADescription(annotation = "TA", type = CLASS_EXTENDS,
+ genericLocation = {}, typeIndex = -1)
+ @TADescription(annotation = "TB", type = CLASS_EXTENDS,
+ genericLocation = {3, 0}, typeIndex = -1)
+ @TADescription(annotation = "TC", type = CLASS_EXTENDS,
+ genericLocation = {3, 1}, typeIndex = -1)
+ @TADescription(annotation = "TD", type = CLASS_EXTENDS,
+ genericLocation = {1, 0}, typeIndex = -1)
+ @TADescription(annotation = "TE", type = CLASS_EXTENDS,
+ genericLocation = {1, 0, 3, 0}, typeIndex = -1)
+ @TADescription(annotation = "TF", type = CLASS_EXTENDS,
genericLocation = {1, 0, 3, 1}, typeIndex = -1)
- })
@TestClass("GOuter$GInner$Test")
public String testExtends1() {
return "class GOuter<A, B> {\n" +
@@ -855,19 +799,17 @@
"}";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER,
- genericLocation = {}, paramIndex = 0),
- @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND,
- genericLocation = {}, paramIndex = 0, boundIndex = 0),
- @TADescription(annotation = "TC", type = FIELD,
- genericLocation = {}),
- @TADescription(annotation = "TD", type = FIELD,
+ @TADescription(annotation = "TA", type = CLASS_TYPE_PARAMETER,
+ genericLocation = {}, paramIndex = 0)
+ @TADescription(annotation = "TB", type = CLASS_TYPE_PARAMETER_BOUND,
+ genericLocation = {}, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "TC", type = FIELD,
+ genericLocation = {})
+ @TADescription(annotation = "TD", type = FIELD,
genericLocation = {3, 0})
- })
- @TestClass("Test$1Nested")
+ @TestClass("%TEST_CLASS_NAME%$1Nested")
public String testNestedInMethod1() {
- return "class Test {\n" +
+ return "class %TEST_CLASS_NAME% {\n" +
" void foobar() {\n" +
" class Nested<@TA X extends @TB Object> {\n" +
" @TC List<@TD Object> f;\n" +
@@ -875,4 +817,781 @@
" }" +
"}";
}
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {}, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {1, 0}, paramIndex = 0)
+ public String testParamRepeatableAnnotation1() {
+ return "void test(@RTA @RTA Outer.@RTB @RTB Inner a) { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 1, 0}, paramIndex = 0)
+ public String testParamRepeatableAnnotation1b() {
+ return "void test(List<@RTA @RTA Outer.@RTB @RTB Inner> a) { }";
+ }
+
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0}, paramIndex = 0)
+ public String testParamRepeatableAnnotation1g() {
+ return "void test(List<java.util.Map. @RTB @RTB Entry> a) { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {}, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {1, 0}, paramIndex = 0)
+ public String testParamRepeatableAnnotation2() {
+ return "void test(@RTA @RTA GOuter<String,String>.@RTB @RTB GInner<String,String> a) { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 1, 0}, paramIndex = 0)
+ public String testParamRepeatableAnnotation2b() {
+ return "void test(List<@RTA @RTA GOuter<String,String>.@RTB @RTB GInner<String,String>> a) { }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTCs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTDs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTEs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTFs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTGs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTHs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTIs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 1}, paramIndex = 0)
+ @TADescription(annotation = "RTJs", type = METHOD_FORMAL_PARAMETER, paramIndex = 0)
+ @TADescription(annotation = "RTKs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {0, 0}, paramIndex = 0)
+ public String testParamRepeatableAnnotation3() {
+ return "class Outer {\n" +
+ " class GInner<X> {\n" +
+ " class GInner2<Y, Z> {}\n" +
+ "}}\n\n" +
+ "class %TEST_CLASS_NAME% {\n" +
+ " void test(@RTA @RTA Outer . @RTB @RTB GInner<@RTC @RTC List<@RTD @RTD Object" +
+ " @RTE @RTE[] @RTF @RTF[]>>. @RTG @RTG GInner2<@RTH @RTH Integer, @RTI @RTI Object>" +
+ " @RTJ @RTJ[] @RTK @RTK[] a) { }\n" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTCs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTDs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTEs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTFs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTGs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTHs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTIs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 1}, paramIndex = 0)
+ @TADescription(annotation = "RTJs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0}, paramIndex = 0)
+ @TADescription(annotation = "RTKs", type = METHOD_FORMAL_PARAMETER,
+ genericLocation = {3, 0, 0, 0}, paramIndex = 0)
+ public String testParamRepeatableAnnotation4() {
+ return "class Outer {\n" +
+ " class GInner<X> {\n" +
+ " class GInner2<Y, Z> {}\n" +
+ "}}\n\n" +
+ "class %TEST_CLASS_NAME% {\n" +
+ " void test(List<@RTA @RTA Outer . @RTB @RTB GInner<@RTC @RTC List<@RTD @RTD Object" +
+ " @RTE @RTE[] @RTF @RTF[]>>. @RTG @RTG GInner2<@RTH @RTH Integer," +
+ " @RTI @RTI Object> @RTJ @RTJ[] @RTK @RTK[]> a) { }\n" +
+ "}";
+ }
+
+ // Local variables
+
+ @TADescription(annotation = "RTAs", type = LOCAL_VARIABLE,
+ genericLocation = {},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTBs", type = LOCAL_VARIABLE,
+ genericLocation = {1, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ public String testLocalRepeatableAnnotation1a() {
+ return "void test() { @RTA @RTA Outer.@RTB @RTB Inner a = null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = LOCAL_VARIABLE,
+ genericLocation = {},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ public String testLocalRepeatableAnnotation1b() {
+ return "void test() { @RTA @RTA Outer.Inner a = null; }";
+ }
+
+ @TADescription(annotation = "RTBs", type = LOCAL_VARIABLE,
+ genericLocation = {1, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ public String testLocalRepeatableAnnotation1c() {
+ return "void test() { Outer.@RTB @RTB Inner a = null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = LOCAL_VARIABLE,
+ genericLocation = {},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTBs", type = LOCAL_VARIABLE,
+ genericLocation = {1, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ public String testLocalRepeatableAnnotation2() {
+ return "void test() { @RTA @RTA GOuter<String,String>.@RTB @RTB GInner<String,String> a = null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTBs", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTCs", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTDs", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTEs", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTFs", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTGs", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTHs", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTIs", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 1},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTJs", type = LOCAL_VARIABLE,
+ genericLocation = {},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTKs", type = LOCAL_VARIABLE,
+ genericLocation = {0, 0},
+ lvarOffset = {5}, lvarLength = {1}, lvarIndex = {1})
+ public String testLocalRepeatableAnnotation3() {
+ return "class Outer {\n" +
+ " class GInner<X> {\n" +
+ " class GInner2<Y, Z> {}\n" +
+ "}}\n\n" +
+ "class %TEST_CLASS_NAME% {\n" +
+ " void test() { @RTA @RTA Outer . @RTB @RTB GInner<@RTC @RTC List<@RTD @RTD Object" +
+ " @RTE @RTE[] @RTF @RTF[]>>. @RTG @RTG GInner2<@RTH @RTH Integer, @RTI @RTI Object>" +
+ " @RTJ @RTJ[] @RTK @RTK[] a = null; }\n" +
+ "}";
+ }
+
+
+ @TADescription(annotation = "RTAs", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTBs", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTCs", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTDs", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTEs", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTFs", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTGs", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTHs", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTIs", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 1},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTJs", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ @TADescription(annotation = "RTKs", type = LOCAL_VARIABLE,
+ genericLocation = {3, 0, 0, 0},
+ lvarOffset = {2}, lvarLength = {1}, lvarIndex = {1})
+ public String testLocalRepeatableAnnotation4() {
+ return "class Outer {\n" +
+ " class GInner<X> {\n" +
+ " class GInner2<Y, Z> {}\n" +
+ "}}\n\n" +
+ "class %TEST_CLASS_NAME% {\n" +
+ " void test() { List<@RTA @RTA Outer . @RTB @RTB GInner<@RTC @RTC List<@RTD @RTD" +
+ " Object @RTE @RTE [] @RTF @RTF []>>. @RTG @RTG GInner2<@RTH @RTH" +
+ " Integer, @RTI @RTI Object> @RTJ @RTJ [] @RTK @RTK []> a = null; }\n" +
+ "}";
+ }
+
+
+ // fields
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {})
+ @TADescription(annotation = "RTBs", type = FIELD,
+ genericLocation = {1, 0})
+ public String testFieldRepeatableAnnotation1a() {
+ return "@RTA @RTA Outer.@RTB @RTB Inner a;";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {})
+ public String testFieldRepeatableAnnotation1b() {
+ return "@RTA @RTA Outer.Inner a;";
+ }
+
+ @TADescription(annotation = "RTBs", type = FIELD,
+ genericLocation = {1, 0})
+ public String testFieldRepeatableAnnotation1c() {
+ return "Outer.@RTB @RTB Inner a;";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {})
+ @TADescription(annotation = "RTBs", type = FIELD,
+ genericLocation = {1, 0})
+ public String testFieldRepeatableAnnotation2() {
+ return "@RTA @RTA GOuter<String,String>.@RTB @RTB GInner<String,String> a;";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {0, 0, 0, 0})
+ @TADescription(annotation = "RTBs", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "RTCs", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "RTDs", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "RTEs", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0})
+ @TADescription(annotation = "RTFs", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0})
+ @TADescription(annotation = "RTGs", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0})
+ @TADescription(annotation = "RTHs", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "RTIs", type = FIELD,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 1})
+ @TADescription(annotation = "RTJs", type = FIELD)
+ @TADescription(annotation = "RTKs", type = FIELD,
+ genericLocation = {0, 0})
+ public String testFieldRepeatableAnnotation3() {
+ return "class Outer {\n" +
+ " class GInner<X> {\n" +
+ " class GInner2<Y, Z> {}\n" +
+ "}}\n\n" +
+ "class %TEST_CLASS_NAME% {\n" +
+ " @RTA @RTA Outer . @RTB @RTB GInner<@RTC @RTC List<@RTD @RTD Object @RTE @RTE[] @RTF @RTF[]>>." +
+ " @RTG @RTG GInner2<@RTH @RTH Integer, @RTI @RTI Object> @RTJ @RTJ[] @RTK @RTK[] a;\n" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "RTBs", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "RTCs", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "RTDs", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "RTEs", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0})
+ @TADescription(annotation = "RTFs", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0})
+ @TADescription(annotation = "RTGs", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0})
+ @TADescription(annotation = "RTHs", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "RTIs", type = FIELD,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 1})
+ @TADescription(annotation = "RTJs", type = FIELD,
+ genericLocation = {3, 0})
+ @TADescription(annotation = "RTKs", type = FIELD,
+ genericLocation = {3, 0, 0, 0})
+ public String testFieldRepeatableAnnotation4() {
+ return "class Outer {\n" +
+ " class GInner<X> {\n" +
+ " class GInner2<Y, Z> {}\n" +
+ "}}\n\n" +
+ "class %TEST_CLASS_NAME% {\n" +
+ " List<@RTA @RTA Outer . @RTB @RTB GInner<@RTC @RTC List<@RTD @RTD Object" +
+ " @RTE @RTE[] @RTF @RTF[]>>. @RTG @RTG GInner2<@RTH @RTH Integer," +
+ " @RTI @RTI Object> @RTJ @RTJ[] @RTK @RTK[]> a;\n" +
+ "}";
+ }
+
+
+ // return types
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN,
+ genericLocation = {})
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN,
+ genericLocation = {1, 0})
+ public String testReturnRepeatableAnnotation1() {
+ return "@RTA @RTA Outer.@RTB @RTB Inner test() { return null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN,
+ genericLocation = {})
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN,
+ genericLocation = {1, 0})
+ public String testReturnRepeatableAnnotation2() {
+ return "@RTA @RTA GOuter<String,String>." +
+ "@RTB @RTB GInner<String,String> test() { return null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0})
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "RTCs", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "RTDs", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "RTEs", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0})
+ @TADescription(annotation = "RTFs", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0})
+ @TADescription(annotation = "RTGs", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0})
+ @TADescription(annotation = "RTHs", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "RTIs", type = METHOD_RETURN,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0, 3, 1})
+ @TADescription(annotation = "RTJs", type = METHOD_RETURN)
+ @TADescription(annotation = "RTKs", type = METHOD_RETURN,
+ genericLocation = {0, 0})
+ public String testReturnRepeatableAnnotation3() {
+ return "class Outer {\n" +
+ " class GInner<X> {\n" +
+ " class GInner2<Y, Z> {}\n" +
+ "}}\n\n" +
+ "class %TEST_CLASS_NAME% {\n" +
+ " @RTA @RTA Outer . @RTB @RTB GInner<@RTC @RTC List<@RTD @RTD Object @RTE @RTE[]" +
+ " @RTF @RTF[]>>. @RTG @RTG GInner2<@RTH @RTH Integer," +
+ " @RTI @RTI Object> @RTJ @RTJ[] @RTK @RTK[] test() { return null; }\n" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "RTCs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "RTDs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "RTEs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0})
+ @TADescription(annotation = "RTFs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0})
+ @TADescription(annotation = "RTGs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0})
+ @TADescription(annotation = "RTHs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "RTIs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 1})
+ @TADescription(annotation = "RTJs", type = METHOD_RETURN,
+ genericLocation = {3, 0})
+ @TADescription(annotation = "RTKs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 0, 0})
+ public String testReturnRepeatableAnnotation4() {
+ return "class Outer {\n" +
+ " class GInner<X> {\n" +
+ " class GInner2<Y, Z> {}\n" +
+ "}}\n\n" +
+ "class %TEST_CLASS_NAME% {\n" +
+ " List<@RTA @RTA Outer . @RTB @RTB GInner<@RTC @RTC List<@RTD @RTD Object" +
+ " @RTE @RTE[] @RTF @RTF[]>>. @RTG @RTG GInner2<@RTH @RTH Integer," +
+ " @RTI @RTI Object> @RTJ @RTJ[] @RTK @RTK[]> test() { return null; }\n" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_RETURN,
+ genericLocation = {3, 0})
+ @TADescription(annotation = "RTBs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 3, 0})
+ @TADescription(annotation = "RTCs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 3, 1})
+ @TADescription(annotation = "RTDs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 3, 1, 3, 0})
+ @TADescription(annotation = "RTEs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 1, 0})
+ @TADescription(annotation = "RTFs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 1, 0, 3, 0})
+ @TADescription(annotation = "RTGs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "RTHs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 1, 0, 3, 0, 3, 0})
+ @TADescription(annotation = "RTIs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 1, 0, 3, 0, 3, 0, 0, 0})
+ @TADescription(annotation = "RTJs", type = METHOD_RETURN,
+ genericLocation = {3, 0, 1, 0, 1, 0})
+ public String testReturnRepeatableAnnotation5() {
+ return "class GOuter<A, B> {\n" +
+ " class GInner<X> {\n" +
+ " class GInner2<Y, Z> {}\n" +
+ "}}\n\n" +
+ "class %TEST_CLASS_NAME% {\n" +
+ " List<@RTA @RTA GOuter<@RTB @RTB String, @RTC @RTC List<@RTD @RTD Object>> ." +
+ " @RTE @RTE GInner<@RTF @RTF List<@RTG @RTG Object @RTH @RTH[] @RTI @RTI[]>>." +
+ " @RTJ @RTJ GInner2<String, String>> test() { return null; }\n" +
+ "}";
+ }
+
+
+ // type parameters
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {}, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {1, 0}, paramIndex = 0, boundIndex = 0)
+ public String testTypeparamRepeatableAnnotation1() {
+ return "<X extends @RTA @RTA Outer.@RTB @RTB Inner> X test() { return null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {}, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {1, 0}, paramIndex = 0, boundIndex = 0)
+ public String testTypeparamRepeatableAnnotation2() {
+ return "<X extends @RTA @RTA GOuter<String,String>.@RTB @RTB GInner<String,String>> X test() { return null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {},
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {1, 0},
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTCs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {1, 0, 3, 0},
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTDs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {1, 0, 3, 0, 3, 0, 0, 0, 0, 0},
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTEs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {1, 0, 3, 0, 3, 0},
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTFs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {1, 0, 3, 0, 3, 0, 0, 0},
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTGs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {1, 0, 1, 0},
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTHs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {1, 0, 1, 0, 3, 0},
+ paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTIs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {1, 0, 1, 0, 3, 1},
+ paramIndex = 0, boundIndex = 0)
+ public String testTypeparamRepeatableAnnotation3() {
+ return "class Outer {\n" +
+ " class GInner<X> {\n" +
+ " class GInner2<Y, Z> {}\n" +
+ "}}\n\n" +
+ "class %TEST_CLASS_NAME% {\n" +
+ " <X extends @RTA @RTA Outer . @RTB @RTB GInner<@RTC @RTC List<@RTD @RTD Object" +
+ " @RTE @RTE[] @RTF @RTF[]>>. @RTG @RTG GInner2<@RTH @RTH Integer," +
+ " @RTI @RTI Object>> X test() { return null; }\n" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 0, 0, 0, 0},
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0},
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTCs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0},
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTDs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0},
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTEs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0},
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTFs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0},
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTGs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0},
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTHs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 0},
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTIs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 1},
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTJs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0},
+ paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTKs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 0, 0},
+ paramIndex = 0, boundIndex = 1)
+ public String testTypeparamRepeatableAnnotation4() {
+ return "class Outer {\n" +
+ " class GInner<X> {\n" +
+ " class GInner2<Y, Z> {}\n" +
+ "}}\n\n" +
+ "class %TEST_CLASS_NAME% {\n" +
+ " <X extends List<@RTA @RTA Outer . @RTB @RTB GInner<@RTC @RTC List<@RTD @RTD Object" +
+ " @RTE @RTE[] @RTF @RTF[]>>. @RTG @RTG GInner2<@RTH @RTH Integer," +
+ " @RTI @RTI Object> @RTJ @RTJ[] @RTK @RTK[]>> X test() { return null; }\n" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTBs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 3, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTCs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 3, 1}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTDs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 3, 1, 3, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTEs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 1, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTFs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 1, 0, 3, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTGs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTHs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 1, 0, 3, 0, 3, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTIs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 1, 0, 3, 0, 3, 0, 0, 0}, paramIndex = 0, boundIndex = 1)
+ @TADescription(annotation = "RTJs", type = METHOD_TYPE_PARAMETER_BOUND,
+ genericLocation = {3, 0, 1, 0, 1, 0}, paramIndex = 0, boundIndex = 1)
+ public String testTypeparamRepeatableAnnotation5() {
+ return "class GOuter<A, B> {\n" +
+ " class GInner<X> {\n" +
+ " class GInner2<Y, Z> {}\n" +
+ "}}\n\n" +
+ "class %TEST_CLASS_NAME% {\n" +
+ " <X extends List<@RTA @RTA GOuter<@RTB @RTB String, @RTC @RTC List<@RTD @RTD Object>> ." +
+ " @RTE @RTE GInner<@RTF @RTF List<@RTG @RTG Object @RTH @RTH[] @RTI @RTI[]>>." +
+ " @RTJ @RTJ GInner2<String, String>>> X test() { return null; }\n" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {3, 0, 1, 0})
+ public String testUsesRepeatableAnnotation1a() {
+ return "class %TEST_CLASS_NAME% { class Inner {} List<@RTA @RTA Inner> f; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {3, 0})
+ public String testUsesRepeatableAnnotation1b() {
+ return "class %TEST_CLASS_NAME% { class Inner {} List<@RTA @RTA %TEST_CLASS_NAME%.Inner> f; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {3, 0, 1, 0, 1, 0})
+ @TestClass("%TEST_CLASS_NAME%$Inner")
+ public String testUsesRepeatableAnnotation2a() {
+ return "class %TEST_CLASS_NAME% { class Inner { class Inner2{} List<@RTA @RTA Inner2> f; }}";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {3, 0, 1, 0})
+ @TestClass("%TEST_CLASS_NAME%$Inner")
+ public String testUsesRepeatableAnnotation2b() {
+ return "class %TEST_CLASS_NAME% { class Inner { class Inner2{} List<@RTA @RTA Inner.Inner2> f; }}";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {3, 0, 1, 0, 1, 0})
+ @TestClass("%TEST_CLASS_NAME%$Inner")
+ public String testUsesRepeatableAnnotation2c() {
+ return "class %TEST_CLASS_NAME% { class Inner { class Inner2{} List<Inner.@RTA @RTA Inner2> f; }}";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {3, 0})
+ @TestClass("%TEST_CLASS_NAME%$Inner")
+ public String testUsesRepeatableAnnotation2d() {
+ return "class %TEST_CLASS_NAME%{ class Inner { class Inner2{}" +
+ " List<@RTA @RTA %TEST_CLASS_NAME%.Inner.Inner2> f; }}";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {3, 0, 1, 0})
+ @TestClass("%TEST_CLASS_NAME%$Inner")
+ public String testUsesRepeatableAnnotation2e() {
+ return "class %TEST_CLASS_NAME% { class Inner { class Inner2{}" +
+ " List<%TEST_CLASS_NAME%.@RTA @RTA Inner.Inner2> f; }}";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {3, 0, 1, 0, 1, 0})
+ @TestClass("%TEST_CLASS_NAME%$Inner")
+ public String testUsesRepeatableAnnotation2f() {
+ return "class %TEST_CLASS_NAME% { class Inner { class Inner2{}" +
+ " List<%TEST_CLASS_NAME%.Inner.@RTA @RTA Inner2> f; }}";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {3, 0, 1, 0, 1, 0})
+ @TestClass("%TEST_CLASS_NAME%$Inner")
+ public String testUsesRepeatableAnnotation3a() {
+ return "class %TEST_CLASS_NAME% { class Inner<A, B> { class Inner2<C, D>{}\n" +
+ " List<%TEST_CLASS_NAME%.Inner.@RTA @RTA Inner2> f; }}";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {3, 0, 1, 0})
+ @TestClass("%TEST_CLASS_NAME%$Inner")
+ public String testUsesRepeatableAnnotation3b() {
+ return "class %TEST_CLASS_NAME% { class Inner<A, B> { class Inner2<C, D>{}\n" +
+ " List<%TEST_CLASS_NAME%.@RTA @RTA Inner.Inner2> f; }}";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {})
+ @TADescription(annotation = "RTBs", type = FIELD,
+ genericLocation = {3, 0})
+ public String testUsesRepeatableAnnotation4() {
+ return "class %TEST_CLASS_NAME% { static class TInner {}\n" +
+ " @RTA @RTA TInner f; \n" +
+ " List<@RTB @RTB TInner> g; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD,
+ genericLocation = {3, 0, 1, 0, 3, 1})
+ @TestClass("%TEST_CLASS_NAME%$Inner")
+ public String testUsesRepeatableAnnotation3c() {
+ return "class %TEST_CLASS_NAME% { class Inner<A, B> { class Inner2<C, D>{}\n" +
+ " List<%TEST_CLASS_NAME%.Inner<String," +
+ " @RTA @RTA Object>.Inner2<%TEST_CLASS_NAME%, %TEST_CLASS_NAME%>> f; }}";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER, paramIndex=0)
+ public String testFullyQualifiedRepeatableAnnotation1() {
+ return "void testme(java.security.@RTA @RTA ProtectionDomain protectionDomain) {}";
+ }
+
+ @TADescription(annotation = "RTAs", type = METHOD_FORMAL_PARAMETER, paramIndex=0,
+ genericLocation = {3, 0})
+ public String testFullyQualifiedRepeatableAnnotation2() {
+ return "void testme(List<java.security.@RTA @RTA ProtectionDomain> protectionDomain) {}";
+ }
+
+ @TADescription(annotation = "RTAs", type = LOCAL_VARIABLE,
+ genericLocation = {},
+ lvarOffset = ReferenceInfoUtil.IGNORE_VALUE,
+ lvarLength = ReferenceInfoUtil.IGNORE_VALUE,
+ lvarIndex = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = LOCAL_VARIABLE,
+ genericLocation = {1, 0},
+ lvarOffset = ReferenceInfoUtil.IGNORE_VALUE,
+ lvarLength = ReferenceInfoUtil.IGNORE_VALUE,
+ lvarIndex = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTCs", type = LOCAL_VARIABLE,
+ // Only classes count, not methods.
+ genericLocation = {1, 0, 1, 0},
+ lvarOffset = ReferenceInfoUtil.IGNORE_VALUE,
+ lvarLength = ReferenceInfoUtil.IGNORE_VALUE,
+ lvarIndex = ReferenceInfoUtil.IGNORE_VALUE)
+ @TestClass("Outer$Inner")
+ public String testMethodNestingRepeatableAnnotation1() {
+ return "class Outer {\n" +
+ " class Inner {\n" +
+ " void foo() {\n" +
+ " class MInner {}\n" +
+ " @RTA @RTA Outer . @RTB @RTB Inner l1 = null;\n" +
+ " @RTC @RTC MInner l2 = null;\n" +
+ " }\n" +
+ "}}\n";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW,
+ genericLocation = {},
+ offset = 0)
+ @TADescription(annotation = "RTBs", type = NEW,
+ genericLocation = {1, 0},
+ offset = 0)
+ @TADescription(annotation = "RTCs", type = NEW,
+ // Only classes count, not methods.
+ genericLocation = {1, 0, 1, 0},
+ offset = 12)
+ @TestClass("Outer$Inner")
+ public String testMethodNestingRepeatableAnnotation2() {
+ return "class Outer {\n" +
+ " class Inner {\n" +
+ " void foo() {\n" +
+ " class MInner {}\n" +
+ " Object o1 = new @RTA @RTA Outer . @RTB @RTB Inner();" +
+ " Object o2 = new @RTC @RTC MInner();\n" +
+ " }\n" +
+ "}}\n";
+ }
+
+ @TADescription(annotation = "RTAs", type = CLASS_EXTENDS,
+ genericLocation = {}, typeIndex = -1)
+ @TADescription(annotation = "RTBs", type = CLASS_EXTENDS,
+ genericLocation = {3, 0}, typeIndex = -1)
+ @TADescription(annotation = "RTCs", type = CLASS_EXTENDS,
+ genericLocation = {3, 1}, typeIndex = -1)
+ @TADescription(annotation = "RTDs", type = CLASS_EXTENDS,
+ genericLocation = {1, 0}, typeIndex = -1)
+ @TADescription(annotation = "RTEs", type = CLASS_EXTENDS,
+ genericLocation = {1, 0, 3, 0}, typeIndex = -1)
+ @TADescription(annotation = "RTFs", type = CLASS_EXTENDS,
+ genericLocation = {1, 0, 3, 1}, typeIndex = -1)
+ @TestClass("GOuter$GInner$Test")
+ public String testExtendsRepeatableAnnotation1() {
+ return "class GOuter<A, B> {\n" +
+ " class GInner<X, Y> {\n" +
+ " class Test extends @RTA @RTA GOuter<@RTB @RTB String," +
+ " @RTC @RTC String>.@RTD @RTD GInner<@RTE @RTE String, @RTF @RTF String> {}" +
+ " }" +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = CLASS_TYPE_PARAMETER,
+ genericLocation = {}, paramIndex = 0)
+ @TADescription(annotation = "RTBs", type = CLASS_TYPE_PARAMETER_BOUND,
+ genericLocation = {}, paramIndex = 0, boundIndex = 0)
+ @TADescription(annotation = "RTCs", type = FIELD,
+ genericLocation = {})
+ @TADescription(annotation = "RTDs", type = FIELD,
+ genericLocation = {3, 0})
+ @TestClass("%TEST_CLASS_NAME%$1Nested")
+ public String testNestedInMethodRepeatableAnnotation1() {
+ return "class %TEST_CLASS_NAME% {\n" +
+ " void foobar() {\n" +
+ " class Nested<@RTA @RTA X extends @RTB @RTB Object> {\n" +
+ " @RTC @RTC List<@RTD @RTD Object> f;\n" +
+ " }\n" +
+ " }" +
+ "}";
+ }
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/NewObjects.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/NewObjects.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,6 +25,7 @@
/*
* @test
+ * @bug 8042451
* @summary Test population of reference info for new object creations
* @compile -g Driver.java ReferenceInfoUtil.java NewObjects.java
* @run main Driver NewObjects
@@ -36,11 +37,9 @@
return "Object returnObject() { return new @TA String(); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = NEW,
- genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
+ @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
public String returnObjectGeneric() {
return "Object returnObjectGeneric() { return new @TA ArrayList<@TB String>(); }";
}
@@ -50,13 +49,11 @@
return "void initObject() { Object a = new @TA String(); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = NEW,
- genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TC", type = NEW,
- genericLocation = { 3, 1 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
+ @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TC", type = NEW,
+ genericLocation = { 3, 1 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
public String initObjectGeneric() {
return "void initObjectGeneric() { Object a = new @TA HashMap<@TB String, @TC String>(); }";
}
@@ -66,90 +63,182 @@
return "void eqtestObject() { if (null == new @TA String()); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = NEW,
- genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
+ @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
public String eqtestObjectGeneric() {
return "void eqtestObjectGeneric() { if (null == new @TA ArrayList<@TB String >()); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {0, 0}),
- @TADescription(annotation = "TB", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
+ @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0})
+ @TADescription(annotation = "TB", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
public String returnNewArray1() {
return "Object returnNewArray1() { return new @TA String @TB[1]; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {0, 0, 0, 0}),
- @TADescription(annotation = "TB", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TC", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {0, 0}),
- })
+ @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0})
+ @TADescription(annotation = "TB", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TC", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0})
public String returnNewArray2() {
return "Object returnNewArray2() { return new @TA String @TB [1] @TC [2]; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {0, 0, 0, 0}),
- @TADescription(annotation = "TB", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {0, 0, 0, 0, 1, 0}),
- @TADescription(annotation = "TC", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TD", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {0, 0}),
- })
+ @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0})
+ @TADescription(annotation = "TB", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "TC", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TD", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0})
public String returnNewArray3() {
return "Object returnNewArray3() { return new @TA Outer. @TB Inner @TC [1] @TD [2]; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {0, 0, 0, 0}),
- @TADescription(annotation = "TB", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {0, 0, 0, 0, 1, 0}),
- @TADescription(annotation = "TC", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {0, 0, 0, 0, 1, 0, 1, 0}),
- @TADescription(annotation = "TD", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TE", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {0, 0}),
- })
+ @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0})
+ @TADescription(annotation = "TB", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "TC", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0})
+ @TADescription(annotation = "TD", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TE", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0})
public String returnNewArray4() {
return "Object returnNewArray4() { return new @TA Outer. @TB Middle. @TC MInner @TD [1] @TE [2]; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {3, 0, 0, 0, 0, 0}),
- @TADescription(annotation = "TC", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0}),
- @TADescription(annotation = "TD", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0}),
- @TADescription(annotation = "TE", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {3, 0}),
- @TADescription(annotation = "TF", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {3, 0, 0, 0}),
- })
+ @TADescription(annotation = "TA", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "TC", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "TD", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0})
+ @TADescription(annotation = "TE", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {3, 0})
+ @TADescription(annotation = "TF", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {3, 0, 0, 0})
public String returnNewArray5() {
return "Object returnNewArray5() { return new @TA ArrayList<@TB Outer. @TC Middle. @TD MInner @TE [] @TF []>(); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = FIELD, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {0, 0, 0, 0}),
- @TADescription(annotation = "TB", type = FIELD, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {0, 0, 0, 0, 1, 0}),
- @TADescription(annotation = "TC", type = FIELD, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TD", type = FIELD, offset = ReferenceInfoUtil.IGNORE_VALUE,
- genericLocation = {0, 0}),
- })
+ @TADescription(annotation = "TA", type = FIELD, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0})
+ @TADescription(annotation = "TB", type = FIELD, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "TC", type = FIELD, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TD", type = FIELD, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0})
public String arrayField() {
return "@TA Outer. @TB Inner @TC [] @TD [] f;";
}
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String returnObjectRepeatableAnnotation() {
+ return "Object returnObject() { return new @RTA @RTA String(); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String returnObjectGenericRepeatableAnnotation() {
+ return "Object returnObjectGeneric() { return new @RTA @RTA ArrayList<@RTB @RTB String>(); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String initObjectRepeatableAnnotation() {
+ return "void initObject() { Object a = new @RTA @RTA String(); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTCs", type = NEW,
+ genericLocation = { 3, 1 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String initObjectGenericRepeatableAnnotation() {
+ return "void initObjectGeneric() { Object a = new @RTA @RTA HashMap<@RTB @RTB String, @RTC @RTC String>(); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String eqtestObjectRepeatableAnnotation() {
+ return "void eqtestObject() { if (null == new @RTA @RTA String()); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = NEW,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String eqtestObjectGenericRepeatableAnnotation() {
+ return "void eqtestObjectGeneric() { if (null == new @RTA @RTA ArrayList<@RTB @RTB String >()); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0})
+ @TADescription(annotation = "RTBs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String returnNewArrayRepeatableAnnotation1() {
+ return "Object returnNewArray1() { return new @RTA @RTA String @RTB @RTB[1]; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0})
+ @TADescription(annotation = "RTBs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTCs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0})
+ public String returnNewArrayRepeatableAnnotation2() {
+ return "Object returnNewArray2() { return new @RTA @RTA String @RTB @RTB [1] @RTC @RTC [2]; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0})
+ @TADescription(annotation = "RTBs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "RTCs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTDs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0})
+ public String returnNewArrayRepeatableAnnotation3() {
+ return "Object returnNewArray3() { return new @RTA @RTA Outer. @RTB @RTB Inner @RTC @RTC [1] @RTD @RTD [2]; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0})
+ @TADescription(annotation = "RTBs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "RTCs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0, 1, 0, 1, 0})
+ @TADescription(annotation = "RTDs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTEs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0})
+ public String returnNewArrayRepeatableAnnotation4() {
+ return "Object returnNewArray4() { return new @RTA @RTA Outer." +
+ " @RTB @RTB Middle. @RTC @RTC MInner @RTD @RTD [1] @RTE @RTE [2]; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {3, 0, 0, 0, 0, 0})
+ @TADescription(annotation = "RTCs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "RTDs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {3, 0, 0, 0, 0, 0, 1, 0, 1, 0})
+ @TADescription(annotation = "RTEs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {3, 0})
+ @TADescription(annotation = "RTFs", type = NEW, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {3, 0, 0, 0})
+ public String returnNewArrayRepeatableAnnotation5() {
+ return "Object returnNewArray5() { return new @RTA @RTA ArrayList<@RTB @RTB Outer." +
+ " @RTC @RTC Middle. @RTD @RTD MInner @RTE @RTE [] @RTF @RTF []>(); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = FIELD, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0})
+ @TADescription(annotation = "RTBs", type = FIELD, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0, 0, 0, 1, 0})
+ @TADescription(annotation = "RTCs", type = FIELD, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTDs", type = FIELD, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ genericLocation = {0, 0})
+ public String arrayFieldRepeatableAnnotation() {
+ return "@RTA @RTA Outer. @RTB @RTB Inner @RTC @RTC [] @RTD @RTD [] f;";
+ }
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/ReferenceInfoUtil.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/ReferenceInfoUtil.java Fri Jun 06 16:08:46 2014 -0400
@@ -41,7 +41,7 @@
public static final int IGNORE_VALUE = -321;
public static List<TypeAnnotation> extendedAnnotationsOf(ClassFile cf) {
- List<TypeAnnotation> annos = new ArrayList<TypeAnnotation>();
+ List<TypeAnnotation> annos = new ArrayList<>();
findAnnotations(cf, annos);
return annos;
}
@@ -119,128 +119,6 @@
}
}
- /////////////////// TA Position Builder ///////////////////////
- /* TODO: comment out this dead code. Was this unfinished code that was
- * supposed to be used somewhere? The tests pass without this.
- private static class TAPositionBuilder {
- private TypeAnnotation.Position pos = new TypeAnnotation.Position();
-
- private TAPositionBuilder() { }
-
- public TypeAnnotation.Position build() { return pos; }
-
- public static TAPositionBuilder ofType(TypeAnnotation.TargetType type) {
- TAPositionBuilder builder = new TAPositionBuilder();
- builder.pos.type = type;
- return builder;
- }
-
- public TAPositionBuilder atOffset(int offset) {
- switch (pos.type) {
- // type cast
- case TYPECAST:
- // instanceof
- case INSTANCEOF:
- // new expression
- case NEW:
- pos.offset = offset;
- break;
- default:
- throw new IllegalArgumentException("invalid field for given type: " + pos.type);
- }
- return this;
- }
-
- public TAPositionBuilder atLocalPosition(int offset, int length, int index) {
- switch (pos.type) {
- // local variable
- case LOCAL_VARIABLE:
- pos.lvarOffset = new int[] { offset };
- pos.lvarLength = new int[] { length };
- pos.lvarIndex = new int[] { index };
- break;
- default:
- throw new IllegalArgumentException("invalid field for given type: " + pos.type);
- }
- return this;
- }
-
- public TAPositionBuilder atParameterIndex(int index) {
- switch (pos.type) {
- // type parameters
- case CLASS_TYPE_PARAMETER:
- case METHOD_TYPE_PARAMETER:
- // method parameter
- case METHOD_FORMAL_PARAMETER:
- pos.parameter_index = index;
- break;
- default:
- throw new IllegalArgumentException("invalid field for given type: " + pos.type);
- }
- return this;
- }
-
- public TAPositionBuilder atParamBound(int param, int bound) {
- switch (pos.type) {
- // type parameters bounds
- case CLASS_TYPE_PARAMETER_BOUND:
- case METHOD_TYPE_PARAMETER_BOUND:
- pos.parameter_index = param;
- pos.bound_index = bound;
- break;
- default:
- throw new IllegalArgumentException("invalid field for given type: " + pos.type);
- }
- return this;
- }
-
- public TAPositionBuilder atWildcardPosition(TypeAnnotation.Position pos) {
- switch (pos.type) {
- // wildcards
- case WILDCARD_BOUND:
- pos.wildcard_position = pos;
- break;
- default:
- throw new IllegalArgumentException("invalid field for given type: " + pos.type);
- }
- return this;
- }
-
- public TAPositionBuilder atTypeIndex(int index) {
- switch (pos.type) {
- // class extends or implements clauses
- case CLASS_EXTENDS:
- // throws
- case THROWS:
- pos.type_index = index;
- break;
- default:
- throw new IllegalArgumentException("invalid field for given type: " + pos.type);
- }
- return this;
- }
-
- public TAPositionBuilder atOffsetWithIndex(int offset, int index) {
- switch (pos.type) {
- // method type argument: wasn't specified
- case NEW_TYPE_ARGUMENT:
- case METHOD_TYPE_ARGUMENT:
- pos.offset = offset;
- pos.type_index = index;
- break;
- default:
- throw new IllegalArgumentException("invalid field for given type: " + pos.type);
- }
- return this;
- }
-
- public TAPositionBuilder atGenericLocation(Integer ...loc) {
- pos.location = Arrays.asList(loc);
- pos.type = pos.type.getGenericComplement();
- return this;
- }
- }*/
-
/////////////////////// Equality testing /////////////////////
private static boolean areEquals(int a, int b) {
return a == b || a == IGNORE_VALUE || b == IGNORE_VALUE;
@@ -264,21 +142,18 @@
}
public static boolean areEquals(TypeAnnotation.Position p1, TypeAnnotation.Position p2) {
- if (p1 == p2)
- return true;
- if (p1 == null || p2 == null)
- return false;
+ return p1 == p2 || !(p1 == null || p2 == null) &&
+ p1.type == p2.type &&
+ (p1.location.equals(p2.location)) &&
+ areEquals(p1.offset, p2.offset) &&
+ areEquals(p1.lvarOffset, p2.lvarOffset) &&
+ areEquals(p1.lvarLength, p2.lvarLength) &&
+ areEquals(p1.lvarIndex, p2.lvarIndex) &&
+ areEquals(p1.bound_index, p2.bound_index) &&
+ areEquals(p1.parameter_index, p2.parameter_index) &&
+ areEquals(p1.type_index, p2.type_index) &&
+ areEquals(p1.exception_index, p2.exception_index);
- return ((p1.type == p2.type)
- && (p1.location.equals(p2.location))
- && areEquals(p1.offset, p2.offset)
- && areEquals(p1.lvarOffset, p2.lvarOffset)
- && areEquals(p1.lvarLength, p2.lvarLength)
- && areEquals(p1.lvarIndex, p2.lvarIndex)
- && areEquals(p1.bound_index, p2.bound_index)
- && areEquals(p1.parameter_index, p2.parameter_index)
- && areEquals(p1.type_index, p2.type_index)
- && areEquals(p1.exception_index, p2.exception_index));
}
private static TypeAnnotation findAnnotation(String name, List<TypeAnnotation> annotations, ClassFile cf) throws InvalidIndex, UnexpectedEntry {
@@ -306,9 +181,6 @@
if (actual == null)
throw new ComparisionException("Expected annotation not found: " + aName);
- // TODO: you currently get an exception if the test case does not use all necessary
- // annotation attributes, e.g. forgetting the offset for a local variable.
- // It would be nicer to give an understandable warning instead.
if (!areEquals(expected, actual.position)) {
throw new ComparisionException("Unexpected position for annotation : " + aName +
"\n Expected: " + expected.toString() +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/ResourceVariable.java Fri Jun 06 16:08:46 2014 -0400
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8042451
+ * @summary Test population of reference info for resource variable
+ * @compile -g Driver.java ReferenceInfoUtil.java ResourceVariable.java
+ * @run main Driver ResourceVariable
+ */
+
+import static com.sun.tools.classfile.TypeAnnotation.TargetType.RESOURCE_VARIABLE;
+import static java.lang.System.lineSeparator;
+
+public class ResourceVariable {
+
+ @TADescription(annotation = "TA", type = RESOURCE_VARIABLE,
+ lvarOffset = {10}, lvarLength = {118}, lvarIndex = {1})
+ @TADescription(annotation = "TB", type = RESOURCE_VARIABLE,
+ lvarOffset = {22}, lvarLength = {35}, lvarIndex = {3})
+ public String testResourceVariable() {
+ return
+ "public void f() throws IOException {" + lineSeparator() +
+ " try (@TA InputStream is1 = new FileInputStream(\"\")) {" + lineSeparator() +
+ " try (@TB InputStream is2 = new FileInputStream(\"\")) {}" + lineSeparator() +
+ " }" + lineSeparator() +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = RESOURCE_VARIABLE,
+ lvarOffset = {10}, lvarLength = {30}, lvarIndex = {1})
+ public String testRepeatedAnnotation1() {
+ return
+ "public void f() throws IOException {" + lineSeparator() +
+ " try (@RTA @RTA InputStream is1 = new FileInputStream(\"\")) {}" + lineSeparator() +
+ "}";
+ }
+
+ @TADescription(annotation = "RTAs", type = RESOURCE_VARIABLE,
+ lvarOffset = {10}, lvarLength = {30}, lvarIndex = {1})
+ public String testRepeatedAnnotation2() {
+ return
+ "public void f() throws IOException {" + lineSeparator() +
+ " try (@RTAs({@RTA, @RTA}) InputStream is1 = new FileInputStream(\"\")) {}" + lineSeparator() +
+ "}";
+ }
+
+ @TADescription(annotation = "TA", type = RESOURCE_VARIABLE,
+ lvarOffset = {10}, lvarLength = {118}, lvarIndex = {1})
+ @TADescription(annotation = "TB", type = RESOURCE_VARIABLE,
+ lvarOffset = {22}, lvarLength = {35}, lvarIndex = {3})
+ public String testSeveralVariablesInTryWithResources() {
+ return
+ "public void f() throws IOException {" + lineSeparator() +
+ " try (@TA InputStream is1 = new FileInputStream(\"\");" + lineSeparator() +
+ " @TB InputStream is2 = new FileInputStream(\"\")) {}" + lineSeparator() +
+ "}";
+ }
+}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeCasts.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeCasts.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,6 +25,7 @@
/*
* @test
+ * @bug 8042451
* @summary Test population of reference info for type casts
* @compile -g Driver.java ReferenceInfoUtil.java TypeCasts.java
* @run main Driver TypeCasts
@@ -37,27 +38,23 @@
return "Object returnObject() { return (@TA String)null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0),
- @TADescription(annotation = "TB", type = CAST,
- genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0),
- @TADescription(annotation = "TC", type = CAST,
- genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0)
- })
+ @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "TB", type = CAST,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "TC", type = CAST,
+ genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
public String returnObjectArray() {
return "Object returnObjectArray() { return (@TC String @TA [] @TB [])null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0),
- @TADescription(annotation = "TB", type = CAST,
- genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0)
- })
+ @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "TB", type = CAST,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
public String returnObjectGeneric() {
return "Object returnObjectGeneric() { return (@TA List<@TB String>)null; }";
}
@@ -68,13 +65,11 @@
return "Object returnPrim() { return (@TA int)0; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0),
- @TADescription(annotation = "TB", type = CAST,
- genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0)
- })
+ @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "TB", type = CAST,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
public String returnPrimArray() {
return "Object returnPrimArray() { return (@TB int @TA [])null; }";
}
@@ -85,24 +80,20 @@
return "void initObject() { Object a = (@TA String)null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0),
- @TADescription(annotation = "TB", type = CAST,
- genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0)
- })
+ @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "TB", type = CAST,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
public String initObjectArray() {
return "void initObjectArray() { Object a = (@TB String @TA [])null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0),
- @TADescription(annotation = "TB", type = CAST,
- genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0)
- })
+ @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "TB", type = CAST,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
public String initObjectGeneric() {
return "void initObjectGeneric() { Object a = (@TA List<@TB String>)null; }";
}
@@ -113,13 +104,11 @@
return "void initPrim() { Object a = (@TA int)0; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0),
- @TADescription(annotation = "TB", type = CAST,
- genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0)
- })
+ @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "TB", type = CAST,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
public String initPrimArray() {
return "void initPrimArray() { Object a = (@TB int @TA [])null; }";
}
@@ -130,24 +119,20 @@
return "void eqtestObject() { if (null == (@TA String)null); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0),
- @TADescription(annotation = "TB", type = CAST,
- genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0)
- })
+ @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "TB", type = CAST,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
public String eqtestObjectArray() {
return "void eqtestObjectArray() { if (null == (@TB String @TA [])null); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0),
- @TADescription(annotation = "TB", type = CAST,
- genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0)
- })
+ @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "TB", type = CAST,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
public String eqtestObjectGeneric() {
return "void eqtestObjectGeneric() { if (null == (@TA List<@TB String >)null); }";
}
@@ -159,42 +144,182 @@
return "void eqtestPrim(int a) { if (0 == (@TA int)a); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0),
- @TADescription(annotation = "TB", type = CAST,
- genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
- typeIndex = 0)
- })
+ @TADescription(annotation = "TA", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "TB", type = CAST,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
public String eqtestPrimArray() {
return "void eqtestPrimArray() { if (null == (@TB int @TA [])null); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CAST,
- offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 0),
- @TADescription(annotation = "TB", type = CAST,
- offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1),
- @TADescription(annotation = "TC", type = CAST,
- offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1,
- genericLocation = {3, 0})
- })
+ @TADescription(annotation = "TA", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 0)
+ @TADescription(annotation = "TB", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1)
+ @TADescription(annotation = "TC", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1,
+ genericLocation = {3, 0})
public String intersection1() {
return "void intersection() { Object o = (@TA String & @TB Comparable<@TC String>) null; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = CAST,
- offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 0),
- @TADescription(annotation = "TB", type = CAST,
- offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1),
- @TADescription(annotation = "TC", type = CAST,
- offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1,
- genericLocation = {3, 0}),
- @TADescription(annotation = "TD", type = CAST,
- offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 2),
- })
+ @TADescription(annotation = "TA", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 0)
+ @TADescription(annotation = "TB", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1)
+ @TADescription(annotation = "TC", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1,
+ genericLocation = {3, 0})
+ @TADescription(annotation = "TD", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 2)
public String intersection2() {
return "void intersection() { Object o = (@TA String & @TB Comparable<@TC String> & @TD CharSequence) null; }";
}
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String returnObjectRepeatableAnnotation() {
+ return "Object returnObject() { return (@RTA @RTA String)null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "RTBs", type = CAST,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "RTCs", type = CAST,
+ genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String returnObjectArrayRepeatableAnnotation() {
+ return "Object returnObjectArray() { return (@RTC @RTC String @RTA @RTA [] @RTB @RTB [])null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "RTBs", type = CAST,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String returnObjectGenericRepeatableAnnotation() {
+ return "Object returnObjectGeneric() { return (@RTA @RTA List<@RTB @RTB String>)null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String returnPrimRepeatableAnnotation() {
+ return "Object returnPrim() { return (@RTA @RTA int)0; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "RTBs", type = CAST,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String returnPrimArrayRepeatableAnnotation() {
+ return "Object returnPrimArray() { return (@RTB @RTB int @RTA @RTA [])null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String initObjectRepeatableAnnotation() {
+ return "void initObject() { Object a = (@RTA @RTA String)null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "RTBs", type = CAST,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String initObjectArrayRepeatableAnnotation() {
+ return "void initObjectArray() { Object a = (@RTB @RTB String @RTA @RTA [])null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "RTBs", type = CAST,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String initObjectGenericRepeatableAnnotation() {
+ return "void initObjectGeneric() { Object a = (@RTA @RTA List<@RTB @RTB String>)null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String initPrimRepeatableAnnotation() {
+ return "void initPrim() { Object a = (@RTA @RTA int)0; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "RTBs", type = CAST,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String initPrimArrayRepeatableAnnotation() {
+ return "void initPrimArray() { Object a = (@RTB @RTB int @RTA @RTA [])null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String eqtestObjectRepeatableAnnotation() {
+ return "void eqtestObject() { if (null == (@RTA @RTA String)null); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "RTBs", type = CAST,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String eqtestObjectArrayRepeatableAnnotation() {
+ return "void eqtestObjectArray() { if (null == (@RTB @RTB String @RTA @RTA [])null); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "RTBs", type = CAST,
+ genericLocation = { 3, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String eqtestObjectGenericRepeatableAnnotation() {
+ return "void eqtestObjectGeneric() { if (null == (@RTA @RTA List<@RTB @RTB String >)null); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ // compiler optimizes away compile time constants casts
+ public String eqtestPrimRepeatableAnnotation() {
+ return "void eqtestPrim(int a) { if (0 == (@RTA @RTA int)a); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ @TADescription(annotation = "RTBs", type = CAST,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE,
+ typeIndex = 0)
+ public String eqtestPrimArrayRepeatableAnnotation() {
+ return "void eqtestPrimArray() { if (null == (@RTB @RTB int @RTA @RTA [])null); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 0)
+ @TADescription(annotation = "RTBs", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1)
+ @TADescription(annotation = "RTCs", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1,
+ genericLocation = {3, 0})
+ public String intersectionRepeatableAnnotation1() {
+ return "void intersection() { Object o = (@RTA @RTA String & @RTB @RTB Comparable<@RTC @RTC String>) null; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 0)
+ @TADescription(annotation = "RTBs", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1)
+ @TADescription(annotation = "RTCs", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 1,
+ genericLocation = {3, 0})
+ @TADescription(annotation = "RTDs", type = CAST,
+ offset = ReferenceInfoUtil.IGNORE_VALUE, typeIndex = 2)
+ public String intersectionRepeatableAnnotation2() {
+ return "void intersection() { Object o = (@RTA @RTA String & @RTB @RTB Comparable<@RTC @RTC String> &" +
+ " @RTD @RTD CharSequence) null; }";
+ }
}
--- a/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeTests.java Fri Jun 06 16:00:59 2014 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeTests.java Fri Jun 06 16:08:46 2014 -0400
@@ -25,6 +25,7 @@
/*
* @test
+ * @bug 8042451
* @summary Test population of reference info for class literals
* @compile -g Driver.java ReferenceInfoUtil.java TypeTests.java
* @run main Driver TypeTests
@@ -36,26 +37,22 @@
return "Object returnObject() { return null instanceof @TA String; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = INSTANCEOF,
- genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TC", type = INSTANCEOF,
- genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
+ @TADescription(annotation = "TA", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = INSTANCEOF,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TC", type = INSTANCEOF,
+ genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
public String returnObjectArray() {
return "Object returnObjectArray() { return null instanceof @TC String @TA [] @TB []; }";
}
// no type test for primitives
- @TADescriptions({
- @TADescription(annotation = "TA", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = INSTANCEOF,
- genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TC", type = INSTANCEOF,
- genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
+ @TADescription(annotation = "TA", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = INSTANCEOF,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TC", type = INSTANCEOF,
+ genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
public String returnPrimArray() {
return "Object returnPrimArray() { return null instanceof @TC int @TA [] @TB []; }";
}
@@ -68,26 +65,22 @@
return "void initObject() { Object a = null instanceof @TA String; }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = INSTANCEOF,
- genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TC", type = INSTANCEOF,
- genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
+ @TADescription(annotation = "TA", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = INSTANCEOF,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TC", type = INSTANCEOF,
+ genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
public String initObjectArray() {
return "void initObjectArray() { Object a = null instanceof @TC String @TA [] @TB []; }";
}
// no primitive instanceof
- @TADescriptions({
- @TADescription(annotation = "TA", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = INSTANCEOF,
- genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TC", type = INSTANCEOF,
- genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
+ @TADescription(annotation = "TA", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = INSTANCEOF,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TC", type = INSTANCEOF,
+ genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
public String initPrimArray() {
return "void initPrimArray() { Object a = null instanceof @TC int @TA [] @TB []; }";
}
@@ -100,26 +93,22 @@
return "void eqtestObject() { if (true == (null instanceof @TA String)); }";
}
- @TADescriptions({
- @TADescription(annotation = "TA", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = INSTANCEOF,
- genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TC", type = INSTANCEOF,
- genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
+ @TADescription(annotation = "TA", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = INSTANCEOF,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TC", type = INSTANCEOF,
+ genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
public String eqtestObjectArray() {
return "void eqtestObjectArray() { if (true == (null instanceof @TC String @TA [] @TB [])); }";
}
// no primitives
- @TADescriptions({
- @TADescription(annotation = "TA", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TB", type = INSTANCEOF,
- genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE),
- @TADescription(annotation = "TC", type = INSTANCEOF,
- genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
- })
+ @TADescription(annotation = "TA", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TB", type = INSTANCEOF,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "TC", type = INSTANCEOF,
+ genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
public String eqtestPrimArray() {
return "void eqtestPrimArray() { if (true == (null instanceof @TC int @TA [] @TB [])); }";
}
@@ -127,4 +116,72 @@
// no void
// no void array
+ @TADescription(annotation = "RTAs", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String returnObjectRepeatableAnnotation() {
+ return "Object returnObject() { return null instanceof @RTA @RTA String; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = INSTANCEOF,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTCs", type = INSTANCEOF,
+ genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String returnObjectArrayRepeatableAnnotation() {
+ return "Object returnObjectArray() { return null instanceof @RTC @RTC String @RTA @RTA [] @RTB @RTB []; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = INSTANCEOF,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTCs", type = INSTANCEOF,
+ genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String returnPrimArrayRepeatableAnnotation() {
+ return "Object returnPrimArrayRepeatableAnnotation() { return null instanceof @RTC @RTC int @RTA @RTA [] @RTB @RTB []; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String initObjectRepeatableAnnotation() {
+ return "void initObject() { Object a = null instanceof @RTA @RTA String; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = INSTANCEOF,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTCs", type = INSTANCEOF,
+ genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String initObjectArrayRepeatableAnnotation() {
+ return "void initObjectArray() { Object a = null instanceof @RTC @RTC String @RTA @RTA [] @RTB @RTB []; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = INSTANCEOF,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTCs", type = INSTANCEOF,
+ genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String initPrimArrayRepeatableAnnotation() {
+ return "void initPrimArray() { Object a = null instanceof @RTC @RTC int @RTA @RTA [] @RTB @RTB []; }";
+ }
+
+ @TADescription(annotation = "RTAs", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String eqtestObjectRepeatableAnnotation() {
+ return "void eqtestObject() { if (true == (null instanceof @RTA @RTA String)); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = INSTANCEOF,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTCs", type = INSTANCEOF,
+ genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String eqtestObjectArrayRepeatableAnnotation() {
+ return "void eqtestObjectArray() { if (true == (null instanceof @RTC @RTC String @RTA @RTA [] @RTB @RTB [])); }";
+ }
+
+ @TADescription(annotation = "RTAs", type = INSTANCEOF, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTBs", type = INSTANCEOF,
+ genericLocation = { 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ @TADescription(annotation = "RTCs", type = INSTANCEOF,
+ genericLocation = { 0, 0, 0, 0 }, offset = ReferenceInfoUtil.IGNORE_VALUE)
+ public String eqtestPrimArrayRepeatableAnnotation() {
+ return "void eqtestPrimArray() { if (true == (null instanceof @RTC @RTC int @RTA @RTA [] @RTB @RTB [])); }";
+ }
}