Resource declaration and assignment conflicts highlighting

This commit is contained in:
Roman Shevchenko
2011-02-23 21:04:42 +01:00
parent fdbaba14e1
commit 0a17b195bb
7 changed files with 60 additions and 77 deletions
@@ -37,7 +37,8 @@ class C {
void m3(int p) throws Exception {
try (MyResource r = new MyResource()) {
r.doSomething();
/* todo: < error descr="Cannot assign a value to final variable 'r'">r = null</error >;*/
<error descr="Cannot assign a value to final variable 'r'">r = null</error>;
int <error descr="Variable 'r' is already defined in the scope">r</error> = 0;
}
catch (E e) {
<error descr="Cannot resolve symbol 'r'">r</error> = null;
@@ -49,6 +50,10 @@ class C {
try (MyResource <error descr="Variable 'r' is already defined in the scope">r</error> = new MyResource(); MyResource <error descr="Variable 'r' is already defined in the scope">r</error> = new MyResource()) { }
try (MyResource r1 = new MyResource(); MyResource r2 = r1) { }
/* todo: try (MyResource r1 = < error descr="Cannot resolve symbol 'r'">r2</error >; MyResource r2 = r1) { }*/
MyResource r = null;
try (MyResource <error descr="Variable 'r' is already defined in the scope">r</error> = new MyResource()) { }
try (r = new MyResource()) { }
@@ -27,24 +27,14 @@ class C {
System.out.println(r1);
}
try (MyResource r2 = <warning descr="Variable 'r2' initializer 'new MyResource()' is redundant">new MyResource()</warning>) {
r2 = null; // todo: check for NPE
System.out.println(r2);
}
MyResource r2 = null;
System.out.println(r2);
try (r2 = <warning descr="The value 'new MyResource()' assigned to r2 is never used">new MyResource()</warning>) { }
MyResource r3 = null;
System.out.println(r3);
try (r3 = <warning descr="The value 'new MyResource()' assigned to r3 is never used">new MyResource()</warning>) { }
try (MyResource <warning descr="Variable 'r3' is never used">r3</warning> = new MyResource()) { }
try (MyResource <warning descr="Variable 'r4' is never used">r4</warning> = new MyResource()) { }
try (MyResource r5 = new MyResource()) {
System.out.println(r5);
r5 = <warning descr="The value 'new MyResource()' assigned to r5 is never used">new MyResource()</warning>;
}
MyResource <warning descr="Variable 'r6' is never assigned">r6</warning>;
try (MyResource r = <error descr="Variable 'r6' might not have been initialized">r6</error>) {
MyResource <warning descr="Variable 'r4' is never assigned">r4</warning>;
try (MyResource r = <error descr="Variable 'r4' might not have been initialized">r4</error>) {
System.out.println(r);
}
}