class Foo {
void foo() {
int a;
for (a = 0; a < 42; a++) {
a = 0; // Compliant - limitation
}
for (int b = 0; b < 42; b++) {
b = 0; // Noncompliant [[sc=7;ec=8]] {{Refactor the code in order to not assign to this loop counter from within the loop body.}}
}
for (String c: "aaaa".split("a")) {
c = ""; // Compliant
}
for (int d = 0, e = 0; d < 42; d++) {
d = 0; // Noncompliant
e = 0; // Noncompliant
}
int g;
for (int f = 0; f < 42; f++) {
f = 0; // Noncompliant
g = 0; // Compliant
for (int g = 0; g < 42; g++) {
g = 0; // Noncompliant
f = 0; // Noncompliant
}
f = 0; // Noncompliant
g = 0; // Compliant
}
g = 0; // Compliant
for (int h = 0; h < 42; h++) {
h = // Noncompliant
h = // Noncompliant
0;
}
g++; // Compliant
++g; // Compliant
for (int i = 0; 0 < 42; i++) {
i++; // Noncompliant
++i; // Noncompliant
--i; // Noncompliant
i--; // Noncompliant
}
for (int j = 0; j < 42; j++) { // Compliant
for (int k = 0; j++ < 42; k++) { // Noncompliant
}
}
for (int i = 0; i < 42; i++) {
(int)i; // Compliant
}
for (int i = 0; i < 10; i++) {
for (int k = 0; k < 20; i++) { // Noncompliant
System.out.println("Hello");
}
}
}
}
class MyGenerics {
private T foo;
private <T> MyGenerics() {
T foo; // Compliant
}
public <T> T setFoo(T foo) { // Compliant
this.foo = foo;
}
}