# V3170. Both operands of the '??' operator are identical.

The analyzer has found that both operands used in either the '??'' or '??=' operator are the same. Most likely, this operation is erroneous. Such errors may occur as a result of a typo or inattentive copy-paste.

Consider an example of a similar error that appears when using the '??' operator:

    string SomeMethod()
    {
      String expr1 = Foo();
      String expr2 = Bar();
      ....

      return expr1 ?? expr1;
    }

'SomeMethod' will always return the same value whether the 'expr1' variable is 'null' or not. Therefore, the 'expr1 ?? expr1' expression in 'SomeMethod' does not make sense. Most likely, there was a typo, and the correct version of the expression should look like this:

    return expr1 ?? expr2;

A similar error can be made when using the '??=' operator:

    void SomeMethod()
    {
      String expr1 = Foo();
      String expr2 = Bar();
      ....

      expr1 ??= expr1;
      ....

      DoSmt(expr1);
    }

In this case, an error similar to the one described in the previous example was made. Fixed code:

    expr1 ??= expr2;

This diagnostic is classified as:

CWE-670