Примеры ошибок, обнаруженных с помощью диагностики V3157
V3157. Suspicious division. Absolute value of the left operand is less than the right operand.
.NET 7
V3157 The 'year % 100' expression evaluates to the value of the left operand because its absolute value is less than the right operand. GregorianCalendarHelper.cs 536
public int ToFourDigitYear(int year, int twoDigitYearMax)
{
if (year < 0)
{
throw new ArgumentOutOfRangeException(nameof(year),
SR.ArgumentOutOfRange_NeedPosNum);
}
if (year < 100)
{
int y = year % 100; // <=
return (twoDigitYearMax / 100 - (y > twoDigitYearMax % 100 ? 1 : 0))
* 100 + y;
}
....
}
Garnet
V3157 The 'firstClientIndex / 2' expression evaluates to 0 because absolute value of the left operand is less than the right operand. ReplicaFailoverSession.cs 85
private async Task<bool> SendFailoverAuthReq(long requestedEpoch)
{
int firstClientIndex = option == FailoverOption.FORCE ? 1 : 0;
....
int majority = (clients.Length - firstClientIndex / 2) + 1;
....
}