// final Fields initialization
import java.io.*;
class a {
/**
* javadoc should not be highlighted
*/
final int javaDoced;
static final int sfi1;
static final int sfi2;
final int fi1;
final int fi2;
class inner {
final int fii;
}
final int fi3;
final int fi4;
static final int csfi1 = 0;
static final int csfi2 = csfi1 + 13 / 5;
static final int csfi3;
static {
if (csfi1 < 13) {
csfi3 = csfi2 + (csfi1 == 4 ? 5 : csfi2/13);
}
else {
csfi3 = 0;
sfi2 = 2;
}
}
final int cifi1 = 1;
final int cifi2 = ff();
final int cifi3;
int ff() {
int i = cifi1 + cifi2 + cifi3 + fi3 + fi4;
return i;
}
{
switch (cifi1) {
case 2: cifi3 = 2; break;
case 1: cifi3 = 20; break;
case 0: cifi3 = 21; break;
default: cifi3 = 22; break;
}
}
final int cifi4;
a() {
cifi4 = 4;
int i = fi3;
fi3 = 3;
a ainst = null;
fi4 = ainst.fi4;
}
a(int i) {
this.cifi4 = i;
fi2 = 3;
fi3 = 3;
a ainst = null;
fi4 = ainst.fi4;
}
a(String s) {
this(0);
int i = fi3;
}
}
class Test {
// access from within inner class OK
final boolean FB;
{
class s {
boolean b = FB;
}
FB = true;
}
private final String text;
public Test() {
new Runnable() {
public void run() {
doSomething(text);////
}
};
text = "Hello world";
}
private void doSomething(String value) {
}
}
// multiple initializers
class c1 {
private final String x;
{
x = "Hello";
}
private final String y;
{
y = x;
}
void f() {
String s = x+y;
}
}
class c2 {
static {
}
private static final int limit;
static {
limit = 5;
}
final String s;
int k = s.length();
final String c;
int k2 = c.length();
{
s = "";
}
public c2() {
c = "";
}
int k3 = c.length();
c2(int i) {
this();
}
}
class UninitializedFinal2 {
private final String s;
UninitializedFinal2(){
try {
}
finally {
}
}
}
class UninitedFinalFied {
private final String string;
public UninitedFinalFied() throws IOException {
init();
}
private void init() throws IOException {}
}
class AssertFinalFied {
private final String string;
public AssertFinalFied(boolean b) throws Exception {
assert b;
string = null;
}
}
class a20Exotic {
int n=k=0;
final int k;
final int k2;
int n2 = k==0 ? (k2=9) : (k2=0);
}
class cX {
final int i;
cX() {
this(1);
int k = i;
}
cX(int d) {
i = d;
}
}
// http://www.intellij.net/tracker/idea/viewSCR?publicId=20097
class Lemma {
public Lemma() {
name.hashCode();
}
private final String name;
{ name = "Andy";
}
}
class correct {
void f() {
final Object o;
o = new Object();
new Object() {
{ o.toString(); }
};
}
}
class X {
final int i;
X() {
try {
i = 0;
}
finally {
}
}
}
class Y {
private final int mayBeFinal;
Y() {
(mayBeFinal) = 1;
}
}
class IDEA100237 {
static class Foo {
final int bar;
Foo() {
bar = 1;
}
final Object baz = new Object() {
final int qux = bar.hashCode() + 1;
};
}
static class Outer {
final String a;
class Inner {
String b = a;
}
Outer() {
a = "";
}
}
}
class StaticInitializerUsedInAnotherStaticField {
private static final int ENUMERATION_CACHE_SIZE;
static {
ENUMERATION_CACHE_SIZE = 0;
}
private static final int ourEnumerationCacheConstant = ENUMERATION_CACHE_SIZE;
}
class InitializedInClassInitializerUsedInTheFollowingFieldInitializer {
private final int i;
{
i = 0;
}
private int j = i;
private final int k;
private int l = k;
{
k = 1;
}
}
class AssignInAssert {
private final boolean b;
AssignInAssert() {
assert b = true;
}
}
class DefiniteAssignmentInFinally {
private final String S;
{
try {
try {
} finally {
try {
} catch (Exception e) {
}
}
} finally {
S = null;
}
}
}
class StaticInitializerUsedInAnotherInstanceField {
private final int myEnumerationCacheConstant = ENUMERATION_CACHE_SIZE;
private static final int ourEnumerationCacheConstant = ENUMERATION_CACHE_SIZE;
private static final int ENUMERATION_CACHE_SIZE;
static {
ENUMERATION_CACHE_SIZE = 0;
}
}
class StaticInitializedUsedInAnotherStaticField {
private static final String STRINGS1;
private static final String STRINGS2 = STRINGS1;
static {
STRINGS1 = "";
}
}
class InsideAnAnonymousClass {
static class Foo1 {
private final String _s;
public Foo1(String s) {
_s = s;
}
private final Bar _ss = new Bar(_s) {
};
}
static class Foo2 {
private final String _s;
public Foo2(String s) {
_s = s;
}
private final Bar _ss = new Bar("") {
{
String inInitializer = _s;
}
};
}
static class Foo3 {
private final String _s;
public Foo3(String s) {
_s = s;
}
private final Bar _ss = new Bar("") {
String inField = _s;
void inMethod() {
String inMethodFoo = _s;
}
};
}
static class Foo4 {
private final String _s;
public Foo4(String s) {
_s = s;
}
private final Bar _ss = new Bar("") {
void inMethod() {
String inMethodFoo = _s;
}
};
}
static class Bar {
private final String _s;
public Bar(String s) {
_s = s;
}
}
}