Our website uses cookies to enhance your browsing experience.
Accept
to the top
>
>
>
V6012. The '?:' operator, regardless...
menu mobile close menu
Additional information
toggle menu Contents

V6012. The '?:' operator, regardless of its conditional expression, always returns one and the same value.

May 04 2018

The analyzer has detected a potential error when using the ternary operator ?:. Regardless of the condition's result, one and the same statement will be executed. There is very likely a typo somewhere in the code.

Consider the following example:

int a = b ? c : c;

In either case, the a variable will be assigned the value of the c variable.

Let's consider the example, where it is not that easy to notice such an error:

double calc(Box bx, int angle, double scale) {
  return Math.tan((angle % 2 == 0 ?
         bx.side_x : bx.side_x) * 0.42) * scale;
}

This code has been formatted. In reality, though, it may be written in one line, so it's no wonder that a typo may stay unnoticed. The error here has to do with the member of the side_x class being used both times. The correct version of this code should look as follows:

double calc(Box bx, int angle, double scale) {
  return Math.tan((angle % 2 == 0 ?
         bx.side_x : bx.side_y) * 0.42) * scale;
}

This diagnostic is classified as:

You can look at examples of errors detected by the V6012 diagnostic.