blob: de0f4f0f6d6db5c8a2702cf5a491206c2492bee4 [file] [log] [blame]
// vars double initialization
import java.io.*;
import java.net.*;
public class a21 {
void f1(int i) {
final int j;
j = 2;
<error descr="Variable 'j' might already have been assigned to">j</error> = 2;
}
void f2(int i) {
final int j;
if (i==3) j = 2;
else j = 5;
<error descr="Variable 'j' might already have been assigned to">j</error> = 2;
}
void f3(int i) {
final int j;
if (i==4) j = 2;
<error descr="Variable 'j' might already have been assigned to">j</error> = 2;
}
void f5(int i) {
final int j;
j = 2;
if (i==3) return;
<error descr="Variable 'j' might already have been assigned to">j</error> = 2;
}
void f6(int i) {
final int j;
switch (i) {
case 1: j = 2;
}
<error descr="Variable 'j' might already have been assigned to">j</error> = 2;
}
void f7(int i) {
final int j;
while (i < 4) {
<error descr="Variable 'j' might be assigned in loop">j</error> = 2;
final int ii = 4;
i+=ii;
}
}
void f8(String k) {
if (k != null) {
final String i;
if (k.equals("!")) i = "3";
if (k.equals("!")) <error descr="Variable 'i' might already have been assigned to">i</error> = "2";
}
}
void f9() {
final Object type;
try {
type = null;
}
catch (Exception e) {
<error descr="Variable 'type' might already have been assigned to">type</error> = null;
}
}
void f10() {
final int k;
if (false) {
k=0;
//< error descr="Variable 'k' might already have been assigned to">k< /error>=0;
}
}
class Foo {
final int k;
Foo() {
k=0;
<error descr="Variable 'k' might already have been assigned to">k</error>=0;
}
}
void cf1(int i) {
final int j;
final int j1 = 3;
j = 5;
final int unused;
final int j2;
if (j == 3) j2 = 4;
final int j3;
if (j==4) j3 = 5;
else j3 = 6;
final int j4 = j3 + 6;
final int j5;
while (i != 9) {
if (j == 8) {
j5 = 9;
break;
}
}
}
final boolean FB = true;
void cf2() {
final int k;
if (!FB) {
k = 4;
}
// < error descr="Variable 'k' might already have been assigned to">k< /error>=0;
}
// todo:
// in IDEA Variable 'b' might not have been initialized
// in javac: OK
/*
void f2() {
boolean b;
boolean c = true;
if (c && false) {
c = b;
}
}
*/
}
class A {
final int k;
A() {
for (;;) {
<error descr="Variable 'k' might be assigned in loop">k</error>=0;
}
}
}
class Example {
public int method(boolean b) {
if (b) {
final int indent;
indent = 0;
return 0;
}
else {
new <error>Runnable</error>(){}<EOLError/>
}
<error>}</error>
}