ControlFlowAnalyzer: fix control flow for assert (IDEA-186305)

This commit is contained in:
Tagir Valeev
2018-02-08 11:57:02 +07:00
parent a554398947
commit bf640e78a9
4 changed files with 71 additions and 81 deletions
@@ -92,4 +92,23 @@ class T1 {
(i4) = 1;
(<error descr="Expression expected">)</error>++;
}
}
class T3 {
private final boolean b;
{
assert false : "" + (b = true); // if assignment reachable, assert will not complete normally
b = true; // compiles
System.out.println(b);
}
}
class T3a {
private final boolean b;
{
try {
assert false : "" + (b = true);
}
catch(IllegalArgumentException t) {}
<error descr="Variable 'b' might already have been assigned to">b</error> = true; // red
System.out.println(b);
}
}