class A {
public static int counter = 0;
public int nonStaticCounter = 0;
public C c = new C();
public D d = new D();
public class C {
public int counter = 0;
public D d = new D();
}
public static class D {
public static int counter = 0;
public static class E {
public static int counter = 0;
}
}
public static int method() {
return 0;
}
public D d() {
return d;
}
}
class B {
private A first = new A();
private A second = new A();
private A.D third = new A.D();
public A.D d() {
return third;
}
public void noncompliant() {
first.counter ++; // Noncompliant [[sc=5;ec=18]] {{Change this instance-reference to a static reference.}}
second.counter ++; // Noncompliant
second.method(); // Noncompliant
third.counter ++; // Noncompliant
first.d.counter++; // Noncompliant
first.c.d.counter++; // Noncompliant
first.d().counter++; // Noncompliant
d().counter++; // Noncompliant
((A.D) d()).counter++; // Noncompliant [[sc=5;ec=24]]
(d()).counter++; // Noncompliant
A.D[] darray = new A.D[1];
darray[0].counter++; // Noncompliant
}
public void compliant() {
A.counter ++;
A.D.counter ++;
A.D.E.counter ++;
first.nonStaticCounter ++;
first.c.counter ++;
}
}