| // FIR_IDENTICAL |
| // FILE: a/ann.java |
| package a; |
| |
| public @interface ann { |
| Class value(); |
| } |
| |
| // FILE: a/x.java |
| package a; |
| |
| @ann(String.class) |
| public class x { |
| @ann2(value = { @ann1(a = "a" + "b", i = 1 * 2), @ann1(a = "b", i = 2), @ann1(a = "c", i = 3) }, i = 42) |
| public String method() { return null; } |
| |
| @ann3((1 + 1)) |
| public String method2() { return null; } |
| |
| @def |
| public String method3() { return null; } |
| |
| @def(1) |
| public String method4() { return null; } |
| |
| @def(firstDefault = "f", 5) |
| public String method5() { return null; } |
| |
| @def(secondDefault = "s", 14) |
| public String method6() { return null; } |
| |
| @def(firstDefault = "f", secondDefault = "s", 17) |
| public String method7() { return null; } |
| |
| @def("1", "2", 3) |
| public String method8() { return null; } |
| |
| } |
| |
| // FILE: a/ann1.java |
| package a; |
| |
| import java.lang.annotation.ElementType; |
| import java.lang.annotation.Target; |
| |
| @Target(ElementType.METHOD) |
| @interface ann1 { |
| public String a(); |
| public int i(); |
| } |
| // FILE: a/ann2.java |
| package a; |
| |
| import java.lang.annotation.ElementType; |
| import java.lang.annotation.Target; |
| |
| @Target(ElementType.METHOD) |
| @interface ann2 { |
| public ann1[] value() default {}; |
| public int i(); |
| } |
| |
| // FILE: a/ann3.java |
| package a; |
| |
| import java.lang.annotation.ElementType; |
| import java.lang.annotation.Target; |
| |
| @Target(ElementType.METHOD) |
| @interface ann3 { |
| public int value(); |
| } |
| |
| // FILE: a/def.java |
| package a; |
| |
| public @interface def { |
| String firstDefault() default "firstDefault"; |
| String secondDefault() default "secondDefault"; |
| int notDefault(); |
| } |