import org.checkerframework.checker.i18nformatter.qual.I18nConversionCategory; import org.checkerframework.checker.i18nformatter.qual.I18nFormat; public class ConversionCategoryTest { public static void main(String[] args) { @I18nFormat({I18nConversionCategory.GENERAL}) String s1 = "{0}"; @I18nFormat({I18nConversionCategory.DATE}) String s2 = "{0, date}"; @I18nFormat({I18nConversionCategory.NUMBER}) String s3 = "{0, number}"; @I18nFormat({I18nConversionCategory.NUMBER, I18nConversionCategory.NUMBER}) String s4 = "{1} {0, date}"; //:: warning: (i18nformat.missing.arguments) s4 = "{0}"; @I18nFormat({I18nConversionCategory.GENERAL, I18nConversionCategory.NUMBER}) String s5 = "{0} and {1, number}"; @I18nFormat({I18nConversionCategory.UNUSED, I18nConversionCategory.NUMBER}) String s6 = "{1, number}"; @I18nFormat({I18nConversionCategory.UNUSED, I18nConversionCategory.DATE}) String s7 = "{1, date}"; @I18nFormat({ I18nConversionCategory.UNUSED, I18nConversionCategory.UNUSED, I18nConversionCategory.NUMBER }) String s8 = "{2}"; @I18nFormat({ I18nConversionCategory.GENERAL, I18nConversionCategory.DATE, I18nConversionCategory.UNUSED, I18nConversionCategory.NUMBER }) String s9 = "{3, number} {0} {1, time}"; @I18nFormat({ I18nConversionCategory.GENERAL, I18nConversionCategory.DATE, I18nConversionCategory.DATE, I18nConversionCategory.NUMBER, I18nConversionCategory.UNUSED, I18nConversionCategory.GENERAL }) String s10 = "{0} {1, date} {2, time} {3, number} {5}"; @I18nFormat({I18nConversionCategory.UNUSED, I18nConversionCategory.DATE}) String s11 = "{1} {1, date}"; @I18nFormat({I18nConversionCategory.UNUSED, I18nConversionCategory.NUMBER}) String s12 = "{1, number} {1, date}"; @I18nFormat({I18nConversionCategory.DATE}) String s13 = "{0, date} {0, date}"; //:: error: (i18nformat.excess.arguments) :: error: (assignment.type.incompatible) @I18nFormat({I18nConversionCategory.GENERAL}) String b1 = "{1}"; //:: error: (assignment.type.incompatible) @I18nFormat({I18nConversionCategory.DATE}) String b2 = "{0, number}"; //:: error: (assignment.type.incompatible) @I18nFormat({I18nConversionCategory.GENERAL}) String b3 = "{0, number}"; //:: error: (assignment.type.incompatible) @I18nFormat({I18nConversionCategory.GENERAL}) String b4 = "{0, date}"; //:: error: (i18nformat.excess.arguments) :: error: (assignment.type.incompatible) @I18nFormat({I18nConversionCategory.DATE}) String b5 = "{0, date} {1, date}"; //:: warning: (i18nformat.missing.arguments) @I18nFormat({I18nConversionCategory.DATE, I18nConversionCategory.DATE}) String b6 = "{0, date}"; } }