Followup 1 to #6469
Imho it looks strange to have a trailing comma, so I'd rather like to be able to check that no trailing comma is ever used. This will be directly competing with ArrayTrailingComma.
Examples:
String[] foo1 = {
"FOO", // OK
"BAR", // violation
};
String[] foo2 = { "FOO", "BAR", }; // violation
String[] foo3 = {
"FOO", // OK
"BAR" // OK
};
String[] foo4 = { "FOO", "BAR" }; // OK
Current Work-Around only for arrays:
<module name="IllegalToken">
<property name="id" value="trailingArrayComma"/>
<property name="tokens" value="COMMA"/>
<message key="illegal.token" value="Do not use trailing array comma."/>
</module>
<module name="SuppressionXpathSingleFilter">
<property name="id" value="trailingArrayComma"/>
<property name="query" value="(
//ARRAY_INIT/*[self::COMMA and not(position() = (last() - 1))],
//COMMA[not(parent::ARRAY_INIT)]
)"/>
</module>
Current Work-Around for arrays and enums:
<module name="IllegalToken">
<property name="id" value="trailingComma"/>
<property name="tokens" value="COMMA"/>
<message key="illegal.token" value="Do not use trailing comma."/>
</module>
<module name="SuppressionXpathSingleFilter">
<property name="id" value="trailingComma"/>
<property name="query" value="(
//ARRAY_INIT/*[self::COMMA and not(position() = (last() - 1))],
//ENUM_DEF/OBJBLOCK/*[self::COMMA and not(position() = (last() - 1))],
//COMMA[not(parent::ARRAY_INIT or parent::OBJBLOCK/parent::ENUM_DEF)]
)"/>
</module>
Followup 1 to #6469
Imho it looks strange to have a trailing comma, so I'd rather like to be able to check that no trailing comma is ever used. This will be directly competing with
ArrayTrailingComma.Examples:
Current Work-Around only for arrays:
Current Work-Around for arrays and enums: