Code inspection: Heuristically unreachable case according to integer analysis
This inspection reports cases of switch
statements that will never be executed according to the results of integer value analysis. The inspection only works if Analyze integer arithmetic is enabled on the page of ReSharper options Alt+R, O.
Here is an example of annotating the method parameter with [NonNegativeValueAttribute] to refine the analysis within the method body. Knowing that the parameter is non-negative, ReSharper can report redundant cases:
void TestSwitch([NonNegativeValue] int input)
{
int newValue;
switch (input)
{
case 0:
newValue = 1;
break;
case -1: // Case is heuristically unavailable
newValue = 0;
break;
default:
newValue = input;
break;
}
}
Last modified: 11 February 2024