| // VIM_TEST_SETUP let g:java_highlight_functions = 'style' |
| |
| |
| import java.lang.annotation.ElementType; |
| import java.lang.annotation.Target; |
| |
| class AnnotationsTests |
| { |
| @Target(ElementType.TYPE_USE) |
| @interface Tag |
| { |
| String value() default ""; |
| String kind() default ""; |
| } |
| |
| @Target(ElementType.TYPE_USE) |
| @interface Text |
| { |
| String[] value() default {""}; |
| } |
| |
| @Target({ |
| ElementType.METHOD, |
| ElementType.PARAMETER, |
| ElementType.TYPE, |
| }) |
| @interface Labels |
| { |
| Label[] value(); |
| } |
| |
| @java.lang.annotation.Target({ |
| java.lang.annotation.ElementType.METHOD, |
| java.lang.annotation.ElementType.PARAMETER, |
| java.lang.annotation.ElementType.TYPE, |
| }) |
| @java.lang.annotation.Repeatable(Labels.class) |
| @interface Label |
| { |
| String value() default ""; |
| Class<?> type() default Label.class; |
| boolean redundant() default true; |
| Text text() default @Text; |
| Tag head() default @Tag(); |
| Tag tail() default @Tag(value = "", kind = ""); |
| } |
| |
| /* Use identity cast expressions to nest TYPE_USE annotations. */ |
| @Label( |
| (@Text({ |
| (@Text({ "a", "aa", "aaa", "aaaa", }) String) "as", |
| (@Text({ "b", "bb", "bbb", "bbbb", }) String) "bs", |
| (@Text({ "c", "cc", "ccc", "cccc", }) String) "cs", |
| (@Text({ "d", "dd", "ddd", "dddd", }) String) "ds", |
| }) String) "abcd") |
| interface Primer { } |
| |
| @Label @Label() @Label(""" |
| n\ |
| o\ |
| O\ |
| p""") |
| @Label(head = @Tag(value = "@Label"/*, kind = "name"*/)) |
| @Label(// value = "Method", |
| type = AnnotationsTests.class, |
| redundant = !!!(1 != 1), |
| head = @Tag(value = "@Label"), |
| text = @Text({ "})", "({" })) |
| static void noOp(@Label @Label() @Label("dummy") |
| @Label(head = @Tag(/*value = "@Label",*/ kind = "name")) |
| @Label(// value = "Parameter", |
| type = AnnotationsTests.class, |
| head = @Tag(value = "@Label"), |
| text = @Text({ "){", "}(" })) |
| Object dummy) |
| { |
| } |
| } |