Why is this an issue?
The use of non-short-circuit logic in a boolean context is likely a mistake - one that could cause serious program errors as conditions are
evaluated under the wrong circumstances.
Noncompliant code example
if (GetTrue() | GetFalse()) // Noncompliant; both sides evaluated
{
}
Compliant solution
if (GetTrue() || GetFalse()) // true short-circuit logic
{
}