Files
openide/java/java-tests/testData/inspection/dataFlow/fixture/BoxingBoolean.java
T
Tagir Valeevandintellij-monorepo-bot 0b3fd46151 Simplify boolean expression improvements
1. Add "may change semantics" when side-effect cannot be extracted
2. Use condition reporting (instead of constant value reporting) for non-short-circuiting & and | (fixes IDEA-216245)
3. Use SimplifyBooleanExpressionFix for boolean constant value instead of replace fix.

GitOrigin-RevId: f3e63a75bd92a7305e36fce58bf9e34bdbb03c51
2019-07-02 06:52:16 +03:00

66 lines
1.8 KiB
Java

class S {
void f(Boolean override) {
if (override == null) {
//doSomething();
} else if (override) { // always false?
//doOverride();
}
}
public void te0(boolean b){
Boolean c = false;
// if (b) c = true;
if (<warning descr="Condition 'c' is always 'false'">c</warning>) {
}
}
public void te1(boolean b){
Boolean c = true;
// if (b) c = true;
if (<warning descr="Condition 'c' is always 'true'">c</warning>) {
}
}
public void te2(boolean b){
Boolean c = false;
if (b) c = true;
if (c) {
}
}
public void te3(boolean b){
Boolean c = Boolean.FALSE;
boolean o = <warning descr="Condition '!c' is always 'true'">!c</warning>;
if (<warning descr="Condition 'o' is always 'true'">o</warning>) {
}
}
public void te4(boolean b){
Boolean c = Boolean.FALSE;
boolean o = c;
if (<warning descr="Condition 'o' is always 'false'">o</warning>) {
}
}
public void te5(boolean b){
Boolean c = Boolean.TRUE;
boolean o = <warning descr="Condition 'b||c' is always 'true'">b||<warning descr="Condition 'c' is always 'true' when reached">c</warning></warning>;
if (<warning descr="Condition 'o' is always 'true'">o</warning>) {
}
}
public void te6(boolean b){
Boolean c = Boolean.TRUE;
boolean o = <warning descr="Condition '!c' is always 'false'">!c</warning>;
<warning descr="Condition 'o' at the left side of assignment expression is always 'false'. Can be simplified">o</warning> |= <warning descr="Condition 'c' is always 'true'">c</warning>&b;
if (o) {
}
}
public void flushOriginal(boolean b){
boolean o;
{
Boolean c = Boolean.FALSE;
o = <warning descr="Condition '!c' is always 'true'">!c</warning>;
}
if (<warning descr="Condition 'o' is always 'true'">o</warning>) {
}
}
}