Java control flow: Don't allow extracting method if there's a potential side effect on the local variables in the case of exception thrown (IDEA-79444, IDEA-159916)

This commit is contained in:
Pavel Dolgov
2016-08-24 15:24:43 +03:00
parent 08a18bc8bd
commit 1a3605e4cb
23 changed files with 713 additions and 141 deletions
@@ -0,0 +1,18 @@
class A {
void foo() {
String s = null;
try {
s = "1";
<selection>int invisibleOutsideTry = 1 + 1;
bar();</selection>
s = s + invisibleOutsideTry;
} catch (Exception e) {
System.out.println("ex " + s);
}
System.out.println("ok " + s);
}
private void bar() throws Exception {
throw new Exception();
}
}