Review Request: 7193406 - Clean-up JDK Build Warnings in java.util, java.io
Rémi Forax
forax at univ-mlv.fr
Fri Aug 31 07:20:15 UTC 2012
On 08/30/2012 04:14 PM, Ulf Zibis wrote:
> Am 30.08.2012 01:20, schrieb Stuart Marks:
>> On 8/29/12 4:36 AM, Ulf Zibis wrote:
>>>> @SuppressWarnings("fallthrough") is put to suppress warnings
>>>> generated by
>>>> another switch/case statements
>>> Can't you move it from method scope to there?
>>>
>>>> while (i >= matchlen && !seencomma) {
>>>> switch(a[i-matchlen]) {
>>>> case ',':
>>>> seencomma = true;
>>>> /*FALLTHROUGH*/
>>>> case ' ': case '\r': case '\n':
>>>> case '\f': case '\t':
>>>> break;
>>>> default:
>>>> throw new IllegalArgumentException(
>>>> "invalid permission: " + actions);
>>>> }
>>>> i--;
>>>> }
>>
>> Unfortunately there is no suitable place to put the annotation.
>> Annotations can only be placed on declarations, and the narrowest
>> enclosing declaration around this switch statement is, unfortunately,
>> the entire method. One might consider refactoring the switch
>> statement into its own method, but that kind of refactoring is too
>> large a change for warnings cleanup.
>
> I can see that it is reasonable/possible to bind a
> @SuppressWarnings("unchecked") to a declaration which contains the
> unchecked assignment, but which declaration should contain a
> fallthrough case?
>
> So shouldn't @SuppressWarnings("fallthrough") better be binded to a
> switch or case statement?
>
> -Ulf
>
You can't put an annotation on a statement and the last time I check JSR
308,
(a long time ago), it was something that was put aside.
Rémi
More information about the core-libs-dev
mailing list