import testlib.wholeprograminference.qual.*; public class AnnotationWithFieldTest { private String fields; private String emptyFields; void testAnnotationWithFields() { fields = getSiblingWithFields(); //:: error: (argument.type.incompatible) expectsSiblingWithFields(fields); } void testAnnotationWithEmptyFields() { emptyFields = getSiblingWithFieldsEmpty(); //:: error: (argument.type.incompatible) expectsSiblingWithEmptyFields(emptyFields); } void expectsSiblingWithFields( @SiblingWithFields( value = {"test", "test2"}, value2 = "test3" ) String s) {} void expectsSiblingWithEmptyFields( @SiblingWithFields( value = {}, value2 = "" ) String s) {} String getSiblingWithFields() { //:: warning: (cast.unsafe) return (@SiblingWithFields( value = {"test", "test2"}, value2 = "test3" ) String) ""; } String getSiblingWithFieldsEmpty() { //:: warning: (cast.unsafe) return (@SiblingWithFields( value = {}, value2 = "" ) String) ""; } }