Nous utilisons des cookies pour améliorer votre expérience de navigation. En savoir plus
Accepter
to the top

Webinar: Let's make a programming language. Part 1. Intro - 20.02

>
>
>
V3198. The variable is assigned the...
menu mobile close menu
Additional information
toggle menu Contents

V3198. The variable is assigned the same value that it already holds.

01 Avr 2024

The analyzer has detected that a variable is assigned a value that it already holds.

Let's look at the following example:

public long GetFactorial(long it)
{
  long currentValue = 1;

  for (int i = 1; i <= it; i++)
  {
    currentValue = currentValue * currentValue;
  }

  return currentValue;
}

The 'GetFactorial' method should return the factorial value that matches the parameter. However, the method always returns 1. This happens because at each iteration of the loop, the 'currentValue' variable is assigned a value that it already holds.

To fix it, replace one of the multipliers with 'i':

for (int i = 1; i <= it; i++)
{
  currentValue = currentValue * i;
}

Additional diagnostic rule configuration

It is possible to ignore method and property return values for this diagnostic rule. To do this, add the following command to the '.pvsconfig' file:

//V_3198_IGNORE_RETURN_VALUE:NamespaseName.TypeName.MethodName

When the command from the example is used, the diagnostic rule does not issue a warning if the return value of the 'NamespaseName.TypeName.MethodName' method is assigned to a variable.

You can use the same command to mark up properties.

This diagnostic is classified as: