&
, |
, &=
and |=
).
Although the non-short-circuit versions are occasionally useful, in most cases the short-circuit forms (&&
and ||
) are intended and such unintentional usages may lead to subtle bugs.
A quick-fix is suggested to use the short-circuit versions.
Example:
void foo(boolean x, boolean y, boolean z) {
if (x | y) { x |= z; }
}
After the quick-fix is applied:
void foo(boolean x, boolean y) {
if (x || y) { x = x || z; }
}