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 rule is classified as:
You can look at examples of errors detected by the V6012 diagnostic. |
Was this page helpful?
Your message has been sent. We will email you at
If you do not see the email in your inbox, please check if it is filtered to one of the following folders: